Blog · Board and management reporting · SaaS
How a SaaS finance or revenue team computes net revenue retention per signing cohort from the subscription ledger, the four movements that make it up, expansion, contraction, churn and reactivation, the identity that ties every cohort's movements back to the ARR bridge, and why a single company NRR figure hides the cohort that is quietly failing.
Net revenue retention is one number on a board slide. Underneath it are cohorts, and they do not behave alike. The subscription ledger, with each customer's signing date, shows them. This guide sets out NRR per cohort, its four movements, and the identity that ties the cohort table to the ARR bridge.
Per cohort, per period:
NRR = ARR now from the cohort's customers ÷ ARR twelve months ago from the same customers
Decomposed:
ARR now = ARR then + expansion − contraction − churn + reactivation
Customer identifiers only.
Σ cohorts' expansion = bridge expansion, and the same for contraction, churn and reactivation Σ cohorts' ARR now + new business = closing ARR
A customer whose ARR changed with no cohort, which is a customer missing a signing date, fails it and is listed.
Trailing twelve months.
| Cohort | Customers | ARR then | Expansion | Contraction | Churn | ARR now | NRR | Gross |
|---|---|---|---|---|---|---|---|---|
| 2024 Q1 | 41 | $3.1m | $1.2m | $0.1m | $0.3m | $3.9m | 126% | 87% |
| 2024 Q3 | 58 | $4.4m | $0.9m | $0.3m | $0.6m | $4.4m | 100% | 80% |
| 2025 Q1 | 63 | $4.0m | $0.4m | $0.4m | $0.7m | $3.3m | 82% | 72% |
| All | $11.5m | $2.5m | $0.8m | $1.6m | $11.6m | 101% | 79% |
Company NRR is a hundred and one percent, which is fine. The 2025 Q1 cohort is at eighty-two, with gross retention at seventy-two. Something changed in how that quarter's customers were sold or onboarded, and the company figure could not have said so.
| Bridge line | From the bridge | Σ cohorts | Match |
|---|---|---|---|
| Expansion | $2.5m | $2.5m | Yes |
| Contraction | $0.8m | $0.8m | Yes |
| Churn | $1.6m | $1.6m | Yes |
| New business | $3.2m | not a cohort movement |
The cohort table is the bridge, sliced. When the two disagree, one of them has a customer the other does not, and the failed identity lists it.
Cohorts redefined. A customer moved to a new cohort on upsell. Cohorts are fixed by first signing.
Company NRR only. The failing cohort is invisible.
Not reconciled to the bridge. Two versions of retention at the board.
Reactivation mixed into new business. A churned customer returning is a cohort movement, not a new logo.
Mapped once, the subscription ledger and the customer master produce the cohort table, the decomposition and the reconciliation every quarter. Covirage builds this from the exports as they are. The SaaS page describes the setup, and the whitespace guide covers the expansion opportunity measured against the same ARR.
The customers who first signed in the same period, usually a quarter. A cohort is fixed: a customer belongs to its signing quarter forever, and new customers are never added to an old cohort.
Gross retention excludes expansion: it is ARR retained from the starting customers, capped at 100 percent, and only churn and contraction reduce it. NRR includes expansion and can exceed 100. Both are reported per cohort; gross says how leaky, net says how much the base grows itself.
Because the bridge is what the board sees, and a cohort table that does not sum to it is a second version of the truth. Every dollar of expansion, contraction and churn in the bridge belongs to exactly one cohort, and the identity proves it.