Net revenue retention (NRR) is the share of recurring revenue you keep from existing customers over a period, after upgrades, downgrades and losses. Start with what those customers paid at the beginning, add expansion, subtract contraction and churn, then divide by the starting figure. Above 100% means existing customers are worth more than before. Below 100% means less.
By Avi Vatsa, CEO, Exchange Four Agency. Avi leads the team that installs and runs AI-leveraged revenue systems for owner-led companies. His background spans law, technology, and marketing; he also co-founded Dialora, an AI voice-agent platform for automated lead capture and booking. (Marketer of the Day #1411)
What is net revenue retention?
It is a measure of what happens to the customers you already have. It ignores everyone you sign this period. It asks one question: of the recurring revenue we started with, how much is still here, and is it more or less than before?
ChartMogul describes its version of the report this way: "The Net MRR Retention (NRR) report shows the percentage of recurring revenue you keep from existing subscribers each period"
Stripe gives the wider definition: "Net revenue retention is a metric that reflects a company’s ability to retain and grow revenue from its existing customer base over a given time period."
You will also see it called the net retention rate. The two names mean the same thing. The word "net" matters. It tells you that growth from existing customers is allowed to offset losses from them. That one word is the source of both the metric's value and its main weakness, which we return to below.
What is the net revenue retention formula?
ChartMogul states it in full: "(Starting MRR + Expansion MRR + Reactivation MRR − Contraction MRR − Churn MRR) ÷ Starting MRR"
MRR here means monthly recurring revenue. The same logic works for any recurring figure, and for any period you choose, as long as you use one period throughout. Each input has a plain meaning:
| Input | What it is | Effect on NRR |
|---|---|---|
| Starting revenue | Recurring revenue from existing customers on the first day of the period | The base you divide by |
| Expansion | Extra recurring revenue from those same customers: upgrades, added scope, price rises | Raises it |
| Reactivation | Revenue from customers who had left and came back | Raises it, where the formula counts it |
| Contraction | Recurring revenue lost when a customer stays but pays less | Lowers it |
| Churn | Recurring revenue lost when a customer leaves | Lowers it |
A note on accuracy. ChartMogul's formula includes reactivation. Stripe's version of the metric does not treat reactivation as a separate input. Neither is wrong. They are two definitions, and two reports using different ones will not agree on the same data. Whoever sends you a number should tell you which one they used.
What does a worked example look like?
This is an illustrative example with made-up numbers, not a real company and not a benchmark. Take a firm with recurring retainers and subscriptions. At the start of the month, existing customers pay a combined $100,000 a month. During the month:
- Some customers add scope or upgrade, worth $15,000 a month in total.
- Some customers cut back but stay, worth $5,000 a month in total.
- Some customers leave, worth $8,000 a month in total.
- No former customers return.
The calculation, using the formula above:
- Start: $100,000
- Add expansion: $100,000 + $15,000 = $115,000
- Subtract contraction: $115,000 − $5,000 = $110,000
- Subtract churn: $110,000 − $8,000 = $102,000
- Divide by the starting figure: $102,000 ÷ $100,000 = 1.02, or 102%
Now suppose $3,000 a month of former customers had also come back. Under ChartMogul's formula the total would be $105,000, so NRR would be 105%. Under a definition that leaves reactivation out, it stays at 102%. Same business, same month, two answers. This is why the definition has to travel with the number.
How is net revenue retention different from gross revenue retention?
Gross revenue retention (GRR) runs the same calculation without the gains. It starts with the revenue you had, subtracts contraction and churn, and divides by the starting figure. Expansion never enters it. Because it only subtracts, it cannot go above 100%.
In the example above, the gross figure is ($100,000 − $5,000 − $8,000) ÷ $100,000 = $87,000 ÷ $100,000, which is 87%. The net figure is 102%. The 15 points between them are the expansion.
Stripe draws the same line: gross retention says more about the stability of the core, and net retention says more about how the customer base compounds. Gross retention tells you how well you hold on to what you sold. Net retention tells you how much more those customers become worth. Read together, they separate a leaky business that sells upgrades well from a steady one that rarely loses anyone. Gross vs net retention is not a choice between two metrics. You want both on the page.
How do you read NRR above and below 100%?
Above 100%, your existing customers pay you more in total than they did at the start. ChartMogul says it plainly: "An NRR above 100% means your existing customers generate more revenue over time"
Stripe adds the reason: "An NRR over 100% suggests that growth from upsells and expansions exceeds lost revenue, signaling a strong position."
Below 100%, the base is shrinking. Stripe describes that case in these words: "This indicates that churn and downgrades are outpacing any additional revenue from upsells or expansions."
Below 100% is not an emergency on its own, but it sets a hard limit. Every period, new sales have to refill a base that is draining before they can grow it. A business with an NRR under 100% can still grow. It just has to work harder to do so.
What does an NRR of 100% hide?
A lot. Take two firms, both starting the period at $100,000 a month.
Firm A has no expansion, no contraction and no churn. Nothing changed. NRR is $100,000 ÷ $100,000, which is 100%. GRR is also 100%.
Firm B has $20,000 of expansion, $8,000 of contraction and $12,000 of churn. NRR is ($100,000 + $20,000 − $8,000 − $12,000) ÷ $100,000 = $100,000 ÷ $100,000, which is 100%. GRR is ($100,000 − $8,000 − $12,000) ÷ $100,000 = $80,000 ÷ $100,000, which is 80%.
The headline number is identical. The businesses are not. Firm B lost a fifth of its starting revenue and replaced it with sales to the customers who stayed. That can be a healthy pattern if the expansion is broad and repeatable. It is a fragile one if a single large customer produced all of the $20,000, because one decision on their side would move the whole result.
So a flat NRR tells you the total held. It does not tell you what moved underneath, and that is where the risk sits.
What are the common mistakes?
Counting new customers. NRR covers existing customers only. If a customer who joined during the period is added, the number rises for the wrong reason. In the example above, adding $10,000 of revenue from brand-new customers would turn $102,000 into $112,000 and the result into 112%. That figure measures sales, not retention.
Mixing periods. The starting figure, the expansion and the losses must all come from the same window. Count a full year of expansion at $1,500 a month, which is $18,000, against only one month of churn at $8,000, and NRR on a $100,000 base reads ($100,000 + $18,000 − $8,000) ÷ $100,000 = 110%. Nothing in that sum is false. The periods simply do not match. Pick monthly, quarterly or annual, and keep every line inside it.
Hiding churn behind expansion. This is the Firm B problem. A report that shows only the net figure lets large upgrades from a few customers cover a steady loss of the rest. Ask for gross retention beside it.
Counting revenue that is not recurring. A one-off project fee is not recurring revenue. If it sits in the starting figure and then disappears, it looks like churn. If it appears as an add-on, it looks like expansion. Decide up front what counts as recurring, and keep to it. Prepaid billing raises a related question about timing, which the piece on deferred revenue covers.
Changing the definition between reports. If last quarter's report counted reactivation and this quarter's does not, the trend line is meaningless. Hold the definition fixed, or restate the earlier numbers.
What should a services business or agency client ask for in a report?
If you buy services on a retainer, or you sell them, the metric still applies. The recurring revenue is the retainers. Expansion is added scope. Contraction is a reduced retainer. Churn is a lost client. Ask for these items on one page:
- The period and the start date. For example, the first of the month to the last of the month.
- The starting revenue. This should reconcile to invoices. A revenue run rate can supply a starting point, but check what period it was built from.
- Each movement on its own line. Expansion, contraction, churn and reactivation, shown separately, not folded into one net figure.
- Both retention figures. Net and gross, side by side.
- The definition. Whether reactivation is counted, and whether one-off fees are excluded.
- Where the expansion came from. How many customers produced it, and whether one customer produced most of it.
A report that cannot give you these is showing you a result without its working. That is the pattern behind the dashboards that never tie to a dollar. The aim is a number you can trace.
It also helps to place NRR next to the other numbers an owner runs the business on. Retention measures revenue, not profit, so read it alongside revenue versus profit. To see where the base itself comes from, the revenue formula breaks down how leads become recurring revenue. And net revenue covers the figure that sits beneath all of them.
What is the short version?
Net revenue retention is one calculation: start, plus expansion, plus reactivation if your definition allows it, minus contraction, minus churn, divided by start. It is simple to compute and easy to flatter. State the period, state the definition, keep new customers out, and always show gross retention beside it. A number above 100% is good news only when the gross figure underneath it is also sound.
