ARR (Annual Recurring Revenue): The annualized value of recurring revenue. ARR represents the yearly run rate of subscription revenue.
Also known as: ARR
Formula
ARR = MRR × 12ARR-O = (MRR − TTM_Pricing_Adjustment_MRR − TTM_Recontracting_MRR) × 12ARR-M = MRR × 12ARR-M = ARR-O + TTM_Pricing_Adjustment_MRR × 12 + TTM_Recontracting_MRR × 12 Computable definition
The canonical formula in the GASP formula grammar. The MCP server compiles it to SQL over the datasets listed below.
metric.mrr * 12 Unit: currency
- Operating form (O) (see the dual-lens forms)
(metric.mrr - window(sum(field.mrr_change where field.expansion_classification in ('pricing_adjustment', 'recontracting')), 12 month)) * 12 over cohort(field.customer_id, period_end)- Market form (M) (see the dual-lens forms)
metric.mrr * 12
Breakdowns
by_segment: one row persegmentvalue
Notes: ARR-M equals this formula. ARR-O subtracts the MRR change tagged pricing_adjustment or recontracting in the trailing 12 months for customers active at period end, so ARR-M minus ARR-O is the Durability Gap (core.md), a growth decomposition measured over the trailing year. by_segment returns one row per customer segment through MRR.
Data requirements
Grain: End-of-month snapshot · Frequency: Monthly · Aggregation: snapshot (month) · Staged: no · Main source: Billing.
| Field | Dataset | Type |
|---|---|---|
mrr | subscription | decimal |
snapshot_date | subscription | date |
subscription_status | subscription | string |
Example SQL (Postgres)
SELECT (((SELECT COALESCE(SUM(mrr), 0) FROM subscription WHERE snapshot_date = :period_end AND subscription_status = 'active')) * 12) AS arr 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": "ARR (Annual Recurring Revenue)" }) or generate_query({ "metric": "ARR (Annual Recurring Revenue)", "adapter": "<your adapter JSON>" }).
What It Tells You
The scale of the business on an annual basis. Used for valuation, planning and investor reporting.
Common Mistakes
- Calculating from annual contracts directly without normalizing (leads to timing mismatches)
- Treating ARR as cash (it's a run rate, not collected revenue)
- Mixing definitions without declaring which one you're using
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: ARR-O
ARR-O measures organic recurring revenue by excluding MRR changes that come from mechanical pricing or contract restructuring rather than genuine customer expansion.
- CEL Source:
- `Revenue_Event`, `Amendment_Event`
- ATL Inclusion:
- All `expansion_classification` values **except** `pricing_adjustment` and `recontracting`
ARR-O = (MRR − TTM_Pricing_Adjustment_MRR − TTM_Recontracting_MRR) × 12 What it tells you: The run rate of revenue that customers created by adopting and expanding, with price rises and recontracting taken out. It is the part of ARR most likely to last.
Market Form: ARR-M
ARR-M is total reported ARR including all sources of recurring revenue change. This is the number investors see and public comparables use.
- CEL Source:
- `Revenue_Event`, `Amendment_Event`
- ATL Inclusion:
- All `expansion_classification` values included
ARR-M = MRR × 12 What it tells you: The scale of the business as reported to the market. The number used in valuation multiples and investor benchmarks.
Bridge
ARR-M = ARR-O + TTM_Pricing_Adjustment_MRR × 12 + TTM_Recontracting_MRR × 12 The delta (ARR-M − ARR-O) is the **Durability Gap.** Because ARR-O subtracts only the trailing 12 months of tagged MRR change for customers active at period end, the Durability Gap is a trailing-year growth decomposition: it shows how much of reported ARR growth came from pricing and contract changes rather than organic customer expansion. A growing gap means ARR growth that may not last. KeyBanc tracks it implicitly in its annual SaaS survey. Public SaaS companies report total ARR (ARR-M), while internal planning teams strip out pricing actions to see the growth the product earned. ---
Related Metrics
Connected in the GASP relationship graph.
Upstream: what drives this
- MRR component of ARR (Core)
Downstream: what this drives
- ARR component of Magic Number (Finance)
- ARR component of Revenue per Employee (Finance)
- ARR component of Rule of 40 (Core)
- ARR measures Subscription (Entity)