GASP
Core Efficiency Metrics Efficiency

LTV (Customer Lifetime Value)

LTV (Customer Lifetime Value): The gross profit expected from a customer over their lifetime. Also known as CLV (Customer Lifetime Value) or CLTV.

Also known as: LTV, CLV, CLTV

Formula

LTV = (ARPA × Gross Margin) / Revenue Churn Rate
LTV-O = (ARPA × Contribution Margin) / Revenue Churn Rate
LTV-M = (ARPA × Gross Margin) / Revenue Churn Rate
LTV-M − LTV-O = Variable Service Costs per Customer × Customer Lifetime

Computable definition

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

metric.arpa * metric.gross_margin / metric.revenue_churn_rate

Unit: currency

Operating form (O) (see the dual-lens forms)
metric.arpa * metric.gross_margin.O / metric.revenue_churn_rate
Market form (M) (see the dual-lens forms)
metric.arpa * metric.gross_margin / metric.revenue_churn_rate

Notes: LTV-M equals this formula. LTV-O uses contribution margin (gross_margin.forms.O) in place of gross margin.

Data requirements

Grain: Monthly aggregate · Frequency: Monthly · Aggregation: aggregate (month) · Staged: no · Main source: Billing.

Field Dataset Type
cost cost_event decimal
cost_function cost_event string
customer_id customer string
customer_status customer string
event_date cost_event date
event_date revenue_event date
event_type revenue_event string
mrr subscription decimal
mrr_change revenue_event decimal
period_start financials date
revenue financials decimal
snapshot_date customer date
snapshot_date subscription date
subscription_status subscription string
Example SQL (Postgres)
SELECT (CAST((((CAST(((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = :period_end AND subscription_status = 'active')) AS DOUBLE PRECISION) / NULLIF(((SELECT COUNT(DISTINCT customer_id) FROM customer WHERE snapshot_date = :period_end AND customer_status = 'active')), 0))) * ((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 DOUBLE PRECISION) / NULLIF(((CAST((((-(SELECT COALESCE(SUM(mrr_change), 0) FROM revenue_event WHERE event_date >= :period_start AND event_date <= :period_end AND event_type = 'churn'))) + ((-(SELECT COALESCE(SUM(mrr_change), 0) FROM revenue_event WHERE event_date >= :period_start AND event_date <= :period_end AND event_type = 'contraction')))) AS DOUBLE PRECISION) / NULLIF(((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = :period_start AND subscription_status = 'active')), 0))), 0)) AS ltv

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": "LTV (Customer Lifetime Value)" }) or generate_query({ "metric": "LTV (Customer Lifetime Value)", "adapter": "<your adapter JSON>" }).

What It Tells You

The upper bound of what you should spend to acquire a customer.

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 LTV (LTV-O)

LTV-O uses contribution margin: revenue minus every variable cost, including implementation, onboarding, support and customer success. It is the profit a customer contributes over their lifetime.

CEL Source:
`Revenue_Event`, `Cost_Event`
ATL Inclusion:
All variable `cost_function` values per customer
LTV-O = (ARPA × Contribution Margin) / Revenue Churn Rate

What it tells you: The realistic lifetime profit from a customer after all variable delivery costs. The number to use for pricing and unit economics decisions.

Market Form: Gross Margin LTV (LTV-M)

LTV-M uses SaaS gross margin, revenue minus COGS only. This is the formula already defined above and matches investor benchmarks (the 3:1 LTV:CAC threshold uses this form).

CEL Source:
`Revenue_Event`, `Cost_Event`
ATL Inclusion:
`cost_function` = `infrastructure` only (COGS)
LTV-M = (ARPA × Gross Margin) / Revenue Churn Rate

What it tells you: The investor-comparable lifetime value. The number used in LTV:CAC ratios reported to the board and in fundraising materials.

Bridge

LTV-M − LTV-O = Variable Service Costs per Customer × Customer Lifetime

The delta (LTV-M − LTV-O) is the **Contribution Leakage.** Large leakage means the business model depends on services that erode unit economics. It points to services that could be productised or onboarding that could be self-serve. The canonical LTV formula in investor contexts uses gross margin (LTV-M). This is what a16z, Bessemer and SaaS Capital reference. Contribution margin LTV (LTV-O) is recommended by growth equity investors for deeper unit economics analysis. ---

Connected in the GASP relationship graph.

Upstream: what drives this

Downstream: what this drives

Try searching for:

↑↓navigate↵select