How it's calculated
Net revenue retention (NRR) asks: of the recurring revenue your customers paid at the start of a period, how much do those same customers pay now? Cancellations and downgrades pull it down; upgrades, add-ons and price increases push it up. Revenue from new customers is left out, so NRR isolates how your existing base grows or shrinks on its own.
Public SaaS companies define it in their annual reports. Datadog takes the ARR of all customers 12 months earlier and compares it with the ARR from the same customers now, including expansion and net of contraction and attrition, excluding new customers.SEC (EDGAR) Snowflake uses product revenue from a customer cohort over two consecutive years.SEC (EDGAR) Gross revenue retention (GRR) is the same measure without expansion: Workday describes it as taking account of revenue lost to churn "but does not account for additional revenue earned from add-ons or net expansions".SEC (EDGAR)
The formula
- NRR = (starting MRR − churned MRR − contraction MRR + expansion MRR) ÷ starting MRR
- GRR = (starting MRR − churned MRR − contraction MRR) ÷ starting MRR
- Annual NRR from a monthly figure = monthly NRR12 (if the monthly rate repeats)
Worked example
$100,000 of starting MRR that loses $2,000 to cancellations and $1,000 to downgrades but gains $4,000 from upgrades has an NRR of 101% for the month and a GRR of 97%. If that month repeats, NRR over a year is 112.7%.
| Line | MRR |
|---|---|
| Starting MRR | $100,000 |
| Churned | -$2,000 |
| Contraction (downgrades) | -$1,000 |
| Expansion (upgrades, add-ons) | $4,000 |
| Same customers' MRR now | $101,000 |
If you enter a full year's figures instead (choose "Year"), the result is directly comparable with the yearly NRR that public companies report.
Assumptions and limitations
- Cohort definitions differ. Companies treat merged accounts, small customers and usage revenue differently; compare like with like.
- Monthly-to-annual conversion assumes a steady rate. A cohort measured over 12 months is more reliable.
- NRR above 100% can hide churn: a few large customers expanding can offset many small ones leaving. GRR shows the losses on their own.