GASP

Gross Margin

Gross Margin: Revenue minus cost of goods sold (COGS), as a percentage of revenue. Measures profitability after direct delivery costs.

Formula

Gross Margin = (Revenue (GAAP) - COGS) / Revenue (GAAP) × 100
GM-O = (Revenue − COGS − Support − CS − Implementation − Onboarding) / Revenue × 100
GM-M = (Revenue − COGS) / Revenue × 100
GM-M = GM-O + (Support + CS + Implementation + Onboarding costs) / Revenue × 100

Computable definition

The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.

(sum(field.revenue) - sum(field.cost where field.cost_function = 'infrastructure')) / sum(field.revenue)

Unit: percent (the formula yields an unscaled ratio)

Operating form (O) (see the dual-lens forms)
(sum(field.revenue) - sum(field.cost where field.cost_function = 'infrastructure') - sum(field.cost where field.cost_function in ('support', 'success_engineering', 'implementation', 'onboarding'))) / sum(field.revenue)
Market form (M) (see the dual-lens forms)
(sum(field.revenue) - sum(field.cost where field.cost_function = 'infrastructure')) / sum(field.revenue)

Notes: COGS is cost_function infrastructure (hosting, compute, payment processing). Canonical Gross Margin equals GM-M; GM-O (contribution margin) also subtracts support, success engineering, implementation and onboarding cost. Revenue is GAAP recognised revenue.

Data requirements

Grain: Monthly aggregate · Frequency: Monthly · Aggregation: aggregate (month) · Staged: no · Main source: Finance / ERP.

Field Dataset Type
cost cost_event decimal
cost_function cost_event string
event_date cost_event date
period_start financials date
revenue financials decimal
Example SQL (Postgres)
SELECT (CAST(((SELECT COALESCE(SUM(revenue), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end) - (SELECT COALESCE(SUM(cost), 0) FROM cost_event WHERE event_date >= :period_start AND event_date <= :period_end AND cost_function = 'infrastructure')) AS DOUBLE PRECISION) / NULLIF((SELECT COALESCE(SUM(revenue), 0) FROM financials WHERE period_start >= :period_start AND period_start <= :period_end), 0)) AS gross_margin

Access: recommended sensitivity tier confidential, access scope unscoped. Guidance your policy engine enforces.

From an agent: with the GASP MCP server, call lookup_metric({ "name": "Gross Margin" }) or generate_query({ "metric": "Gross Margin", "adapter": "<your adapter JSON>" }).

Benchmarks

  • Below 60%: Low, may indicate infrastructure-heavy or services-heavy business
  • 60-70%: Moderate (Seed/Series A acceptable while scaling)
  • 70-80%: Good, typical for SaaS (Most VCs require 70%+ for investment)
  • 75-80%: Series B+ expected, attractive to investors
  • 80-85%: Best-in-class (commands valuation premium)

What It Tells You

How much of each dollar of revenue is available after delivery costs. Higher margins = more scalable business.

Dual-Lens: Operating / Market Forms

Both governed forms are computed from the same Commercial Event Ledger, with Attribution Taxonomy Layer tags deciding which events each form counts.

Operating Form: Contribution Margin (GM-O)

Contribution Margin is revenue minus every variable cost of serving customers. It shows what each customer earns after the costs that grow with the customer base.

CEL Source:
`Revenue_Event`, `Cost_Event`
ATL Inclusion:
`cost_function` ∈ (`infrastructure`, `support`, `success_engineering`, `implementation`, `onboarding`)
GM-O = (Revenue − COGS − Support − CS − Implementation − Onboarding) / Revenue × 100

What it tells you: How much profit each customer generates after every variable delivery cost, which is why it is the operating form.

Market Form: SaaS Gross Margin (GM-M)

SaaS Gross Margin is revenue minus COGS only (hosting, infrastructure and payment processing). It matches financial statement reporting and investor benchmarks.

CEL Source:
`Revenue_Event`, `Cost_Event`
ATL Inclusion:
`cost_function` = `infrastructure`
GM-M = (Revenue − COGS) / Revenue × 100

What it tells you: The market-comparable gross margin that investors expect at 70%+ for SaaS businesses.

Bridge

GM-M = GM-O + (Support + CS + Implementation + Onboarding costs) / Revenue × 100

The delta (GM-M − GM-O) is the **Services Drag:** the cost of running a customer operation that depends on people. A delta that declines over time points to more automation and self-serve adoption. SaaS Capital 2025 guidance on COGS allocation supports both approaches. VCs typically expect 70%+ SaaS gross margin (GM-M) while internal teams should track contribution margin (GM-O) for pricing and unit economics. ---

Connected in the GASP relationship graph.

Downstream: what this drives

Try searching for:

↑↓navigate↵select