Carry MRR: The part of beginning MRR that existing customers kept paying in the period: beginning MRR less churned and contraction MRR, before any expansion.
Formula
Carry MRR = Beginning MRR - Churned MRR - Contraction MRR Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
metric.mrr at period_start - metric.churned_mrr - metric.contraction_mrr Unit: currency
Data requirements
Grain: Per event, aggregate monthly · Frequency: Daily sync · Aggregation: aggregate (month) · Staged: no · Main source: Billing.
| Field | Dataset | Type |
|---|---|---|
event_date | revenue_event | date |
event_type | revenue_event | string |
mrr | subscription | decimal |
mrr_change | revenue_event | decimal |
snapshot_date | subscription | date |
subscription_status | subscription | string |
Example SQL (Postgres)
SELECT ((((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = :period_start AND subscription_status = 'active')) - ((-(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 carry_mrr From an agent: with the GASP MCP server, call
lookup_metric({ "name": "Carry MRR" }) or generate_query({ "metric": "Carry MRR", "adapter": "<your adapter JSON>" }).
What It Tells You
How much of last period's revenue base is still in place. Carry MRR is Gross Revenue Retention (GRR) in dollar terms: divide it by beginning MRR and you get GRR.