Short answer
GRR retains the initial base after churn and contraction; NRR adds expansion from those same customers. Both require a fixed cohort and comparable monetary basis. New customers acquired during the period are excluded. NRR above one hundred percent can coexist with customer losses and deteriorating gross retention.
Key verification: The starting customer list remains fixed and each movement explains the difference between opening and closing amounts.
Sources and limitationsAn agency grows billing through new accounts while losing older contracts. The total increases without answering how much of its original portfolio remains. This guide uses comparable monthly recurring amounts, keeping full annual invoices and overdue cash receipts out of the recurring revenue comparison.
Fictional revenue bridge
| Starting portfolio movement | Monthly amount EUR |
|---|---|
| Starting base | 10000 |
| Churn | 1000 |
| Contraction | 500 |
| Expansion | 2000 |
| Closing cohort amount | 10500 |
GRR = (10000 − 1000 − 500) / 10000 = 85%. NRR = (10000 − 1000 − 500 + 2000) / 10000 = 105%. An additional 3000 EUR from new customers helps total growth but is excluded from these numerators. With a zero starting base, the divisions are undefined; do not publish an invented percentage.
Fix definitions before comparing
The ChartMogul definitions distinguish retention with and without expansion: NRR includes expansion from existing customers and GRR excludes it, to show only how much prior revenue is retained. Our example is fictional arithmetic rather than an industry benchmark. Define period, currency and treatment of pauses or reactivations consistently. A currency movement alone does not establish a contracted expansion.
| Observed result | What may be happening |
|---|---|
| GRR and NRR both high and close together | A stable portfolio with little churn and little expansion |
| Low GRR and high NRR | Significant churn or contraction exists; expansion from a few accounts is masking it in the total without resolving it |
| Low GRR and low NRR | Broad erosion of the portfolio with not enough expansion to offset it |
Preparing the data with Riibase
Riibase presents CRM, pipelines and reporting. When evaluating it for this task, request a demonstration of account identifiers and exportable dated movements; we do not claim a native NRR report without verification, because the page describes pipeline, automation and sales analytics rather than that specific calculation. A spreadsheet can solve the example. Reconstruct closing amounts customer by customer and check that no new account entered the cohort. Keep both GRR and NRR so a large expansion does not hide churn.
Rebuild the cohort customer by customer
Before using the earlier total, reproduce this fictional breakdown in a worksheet. All four accounts were active at the start. Amounts represent comparable monthly recurring revenue, not bank balances. New account N is shown to expose accidental inclusion and is excluded from both indicators.
| Account | Opening EUR/month | Closing EUR/month | Classification in this exercise |
|---|---|---|---|
| A | 1000 | 0 | Churn: 1000 |
| B | 3000 | 2500 | Contraction: 500 |
| C | 4000 | 6000 | Expansion: 2000 |
| D | 2000 | 2000 | Unchanged |
| N, new | 0 | 3000 | Outside the cohort |
For GRR, sum the smaller opening or closing amount for each account: 0 + 2500 + 4000 + 2000 = 8500. For NRR, sum closing revenue for the starting accounts: 0 + 2500 + 6000 + 2000 = 10500. Dividing each by 10000 reproduces 85% and 105%. Incorrectly including N would increase NRR to 135%. Total company closing revenue is 13500, answering a different question.
Edge case: if all four accounts churned completely, GRR and NRR would both be 0%, a defined though extreme result; that differs from a zero starting base, which leaves the division undefined. Between those extremes, a single dominant account like C can carry the whole cohort's NRR: before presenting the indicator, check how much of the expansion comes from just one account.
What NRR above 100% can hide
Three of the four starting accounts remain: customer retention = 3 / 4 = 75%. C's expansion offsets revenue losses but does not recover account A. Publish cohort size and both kinds of retention so one large account cannot obscure commercial dependence. Neither 75% nor 105% is a recommended target in this article.
Common mistakes and how to spot them
| Mistake | Symptom | Check |
|---|---|---|
| Including new customers in the numerator or denominator | GRR or NRR exceed 100% without any real expansion | Verify every account in the calculation was active at the start of the period |
| Calculating with a zero starting base | The result is a huge percentage or a division error | Check that the cohort had recurring revenue at the start |
| Mixing currencies without separating the exchange effect | The apparent expansion matches an exchange-rate movement | Recalculate with a fixed exchange rate and show the difference separately |
| Comparing periods of different length without normalising | A quarter and a month appear in the same table with no notice | Normalise every amount to the same time unit before comparing |
| Confusing revenue retention with customer retention | A high NRR is presented as if no customer had left | Publish the count of accounts still active alongside the indicator |
Checks before comparing months
- Retain a stable customer identifier through name or account-owner changes. Two contracts for one account do not necessarily represent two customers.
- Normalise annual contracts to the chosen monthly unit. A uniform recurring service costing EUR 12000/year would be EUR 1000/month; exclude a EUR 500 one-off setup fee from this exercise. State clearly whether amounts include or exclude VAT, and apply the same rule to every account in the cohort.
- Write down how pauses and reactivations are treated. This calculation compares two snapshots; it cannot detect churn followed by a return between them. Investigating that sequence requires a movement log.
- For multiple currencies, use a comparable policy and show currency effects separately. Do not credit the team with expansion caused solely by exchange-rate movements.
Retain the opening export alongside the calculation and explain subsequent corrections. The indicator can then be reconstructed when someone asks which customer caused the difference.
From the author's experience
On projects where I've had to reconcile sales and billing data, the disagreement I see most often between sales and finance over what counts as "expansion" from an existing customer is failing to properly separate a recurring increase, a one-off service and a brand-new account; I get that classification agreed in writing before calculating any retention. When an agency tells me its CRM calculates NRR automatically, the first things I check are the starting cohort, the period and which components are included, and I recalculate a sample against actual billing to validate the figure before trusting it.
When an agency presents an NRR above 100%, the first question I ask is what GRR and what customer churn accompany that number, because significant expansion in a handful of accounts can offset losses elsewhere and hide them in the total. When reviewing recurring billing data, the mixing mistake I see most often is adding up amounts without separating currencies or service periods; amounts need converting with a documented, comparable method across cut-offs before anything gets summed.
When I try to reconstruct, months later, which customer caused a difference in the portfolio, what's usually missing is a stable customer identifier and a breakdown of movements by account. Without both, an aggregated portfolio difference is nearly impossible to explain accurately after the fact.
Sources and limitations
Documentary review: . Content type: Documentation-based guide with original exercise.
Linked sources describe the terms and capabilities each provider publishes. Examples that use fictional data are labelled in the text.
Scope: Documentation reviewed on 16 October 2026. Examples are fictional and tests are proposed; CallsIQ has not performed product tests.
- ChartMogul definitionshelp.chartmogul.com
- CRM, pipelines and reportingwww.riibase.com
Check current terms
Consider these options if they solve the problem described. Confirm features, limits and availability in your country.
Riibase CRMAffiliate linkThe labelled commercial links may earn CallsIQ a commission or referral reward. Our commercial policy.
Official sources, explained calculations and clearly labelled examples. Read about our methodology and use of AI in writing.