Home / Blog / Net Revenue Retention Formula
How-to · 2026

Net Revenue Retention Formula: NRR, GRR and Net Revenue Churn

Four formulas cover revenue retention, and three of them are the same number seen from different sides. The arithmetic is easy. Deciding what counts, and saying which period you used, is where the numbers people quote stop matching.

By · Published November 3, 2026 · 8 min read

Net revenue retention (NRR) = (starting recurring revenue + expansion − contraction − churned revenue) ÷ starting recurring revenue. It measures what the customers you had at the start of a period pay at the end of it, including upgrades, and it leaves out every new customer. Net dollar retention is the same calculation under another name. Gross revenue retention (GRR) is the same formula without the expansion term, and net revenue churn is one minus NRR. Below are all four, a worked example, the spreadsheet formulas, and the Stripe details that change the answer.

The four formulas

MetricFormulaCan it pass 100%?
Net revenue retention (NRR), also net dollar retention (NDR)(Starting + Expansion − Contraction − Churned) ÷ StartingYes
Gross revenue retention (GRR)(Starting − Contraction − Churned) ÷ StartingNo
Net revenue churn(Churned + Contraction − Expansion) ÷ Starting = 1 − NRRCan go below zero
Gross revenue churn(Churned + Contraction) ÷ Starting = 1 − GRRNo

All four use recurring revenue, usually MRR. Starting is what the starting group paid on the first day. Expansion is extra revenue from those same customers: upgrades, added seats, add-ons. Contraction is downgrades and removed seats from customers who stayed. Churned is the full revenue of customers who cancelled.

A worked example

Take the customers who were paying on January 1, 2025 and follow them to January 1, 2026. The figures are illustrative.

Starting MRR, Jan 1 2025 (that group only)   50,000
+ Expansion                                    6,000
- Contraction                                 -1,500
- Churned                                     -2,500
Same customers' MRR, Jan 1 2026              52,000

New customers signed during 2025               9,000   (not in any formula below)

NRR                 52,000 / 50,000 = 104.0%
GRR                 46,000 / 50,000 =  92.0%
Net revenue churn    (2,500 + 1,500 - 6,000) / 50,000 = -4.0%
Gross revenue churn  (2,500 + 1,500) / 50,000         =  8.0%

The company lost 8% of its starting revenue and still ended the year with 4% more from the same customers, because expansion covered the losses. Total MRR grew more than that, but the 9,000 from new customers is growth, not retention. The gap between 104% and 92% is the part worth discussing: it says how much the retention figure depends on upgrades.

What counts, and the choices you have to state

The formulas in Excel or Google Sheets

Monthly, from an MRR bridge

If you already track MRR movements by month, put one month per row: A Month, B Opening MRR, C Expansion, D Contraction, E Churned. Then:

NRR                F2:  =(B2+C2-D2-E2)/B2
GRR                G2:  =(B2-D2-E2)/B2
Net revenue churn  H2:  =(D2+E2-C2)/B2

Format F to H as percentages and fill down. The same formulas work in Excel and Google Sheets. Keep new MRR in its own column if you track it, and never in these three.

A 12-month cohort, from customer-level MRR

The figure investors ask for is usually the cohort version. Make one row per customer: A Customer, B MRR on the starting date (0 if they were not yet a customer), C MRR on the end date (0 if they left). Add a helper column D with =MIN(B2,C2), which caps each customer at their starting revenue so expansion drops out. Then:

NRR  =SUMIFS(C2:C500,B2:B500,">0")/SUM(B2:B500)
GRR  =SUMIFS(D2:D500,B2:B500,">0")/SUM(B2:B500)

The ">0" condition keeps only customers who were paying on the starting date, so new customers drop out without being deleted from the sheet.

Why monthly and annual NRR disagree

Multiplying twelve monthly NRR figures together does not give the 12-month cohort NRR. Each monthly figure starts from whoever was paying that month, including customers signed in March or June, while the cohort follows only January's customers all year. If newer customers churn faster in their first months, as they often do, the compounded monthly figure comes out lower than the cohort figure. If they expand faster, it comes out higher.

Neither number is wrong. They answer different questions. Use monthly NRR to spot a bad month, and quote the cohort figure when someone asks what your NRR is, with the dates next to it.

If your subscriptions are in Stripe

Asking for NRR from your Stripe data

The Quiriz Stripe connector imports Subscriptions, MRR by month, Subscription snapshots and Customers, and it has metrics for each line of the bridge: MRR, New MRR, Expansion MRR, Contraction MRR, Churned MRR and Reactivation MRR. Add NRR to Company Context once, as opening MRR plus expansion, minus contraction and churned MRR, divided by opening MRR, and every question uses that definition. In Quiriz for Google Sheets you can ask from a cell:

=QUIRIZ("net revenue retention and gross revenue retention by month this year", "table")

In Excel, with the Excel add-in, the same question uses the dotted spelling:

=QUIRIZ.ASK("net revenue retention by month this year", "table")

The answer shows the opening MRR and the movements it used, so you can check it against the formulas above.

What it does not decide for you. Whether reactivations count, and whether you quote a monthly or a cohort figure, are your choices. Write them into the definition. A broader tour of the connector is in Stripe AI: ask your payments data questions, and if NRR goes on a slide in a monthly business review, put the definition in the appendix.

NRR from Stripe without the export

Try the questions on sample company data with no signup, then connect Stripe and ask for your own retention by month.

Try Quiriz free →

Frequently asked questions

Is net dollar retention the same as net revenue retention?
Yes. Net dollar retention (NDR) and net revenue retention (NRR) are two names for the same calculation: what a starting group of customers pays at the end of a period, including expansion, divided by what it paid at the start.
Can net revenue retention be above 100%?
Yes. Above 100% means the customers you started with pay more in total at the end, because upgrades and added seats outweighed downgrades and cancellations. Gross revenue retention cannot go above 100%, because it ignores expansion.
Does NRR include new customers?
No. NRR only follows customers who were paying at the start of the period. Revenue from customers who joined during the period goes into growth, not retention. Including it is the most common way an NRR figure ends up too high.
What is a good NRR?
There is no single bar. Companies selling to larger customers usually report higher NRR than those selling to small businesses, because large accounts expand more and cancel less. Two more useful checks are whether your own number is improving, and how far apart NRR and GRR are: a wide gap means expansion is hiding churn.
Should I report NRR monthly or annually?
Track it monthly to catch problems early, and quote the 12-month cohort figure externally, labeled as such. The two are calculated on different groups of customers, so a compounded monthly figure is not the annual figure.
What is the difference between net revenue churn and gross revenue churn?
Gross revenue churn is revenue lost to cancellations and downgrades as a share of starting revenue. Net revenue churn subtracts expansion from that loss. Net revenue churn below zero, often called negative churn, is the same thing as NRR above 100%.