Gross Revenue Retention (GRR): The Metric You Defend, Not Just Measure
Gross revenue retention (GRR) measures the percentage of recurring revenue kept from existing customers after cancellations and downgrades, excluding expansion, capping it at 100% and revealing base-level churn that a healthy NRR can hide.

Gross revenue retention (GRR) is the percentage of recurring revenue you keep from existing customers over a period. It shows whether your revenue base is shrinking even when net revenue retention looks fine.
I've built cancel flows for SaaS clients and dunning for my own business, and the same mistake shows up in both. Teams treat every cancelling customer the same, GRR slides, and a few big upsells keep the headline number flat.
Key takeaways
- Calculate GRR as starting revenue minus cancellations and downgrades, over starting revenue.
- Read GRR as the percentage of starting revenue that survived the period.
- Watch the NRR gap, since widening spread means expansion is covering churn losses.
What is gross revenue retention?
Gross revenue retention measures the share of your starting recurring revenue that survives cancellations and downgrades, with expansion left out entirely.
Say your GRR is 90%, meaning you held onto 90 cents of every dollar of monthly recurring revenue (MRR) you started with.
The exclusion is the whole point. Net revenue retention folds expansion MRR, the upsells, seat adds, and price increases, back in, but GRR counts none of it. So you get a clean read on how sticky the product is and how well your save flows work.
The gross number and net revenue retention answer different questions, which is why most teams track both. GRR is what your base keeps on its own, and the net number is whether expansion covers the losses. Run only one and you see half the picture.
GRR on monthly snapshots can read higher than GRR on annual cohorts, because a mid-month cancel counts differently depending on the window. Pick a measurement window, write it down, and hold it steady. Consistency matters more here than which benchmark you chase.
How gross revenue retention is calculated
You start with the recurring revenue your existing customers were paying at the start of the period. Then you subtract two things, churned MRR and contraction MRR.
Churned MRR is what you lose when a customer cancels outright and takes their whole subscription. Contraction MRR is what you lose when a customer stays but pays less, by dropping to a cheaper plan, removing seats, or cutting usage.
Expansion never enters the math, because you only count how much of what you started with you actually kept.
Suppose you started the quarter with $100,000 in MRR, lost $8,000 to cancellations and $1,000 to downgrades, giving you a 91% GRR. The number holds even if you upsold another $15,000 on top that quarter.
What is a good gross revenue retention rate?
The median GRR across SaaS companies is 91%, so for a typical SaaS company, dropping below the mid-80s means cancellations and downgrades are taking more than they should.
Most businesses cluster within a few points of that median, which is why it tells you something. Treat it as a starting line and adjust from there.
A flat median only gets you so far, because GRR shifts with your price point and how you sell.
Imagine two businesses posting the same 88% GRR, one a high-priced B2B product on annual contracts and the other a low-priced consumer subscription. They mean completely different things by it. That's why the segment ranges below matter more than the headline median.
Why a healthy NRR can hide a GRR problem
When expansion revenue grows fast enough to cover your cancellations, NRR stays flat or rises even as GRR drops underneath it. The healthier-looking number is the one hiding the trouble.
NRR adds expansion to the numerator before dividing, and GRR does not. So when fresh upsell revenue outweighs what cancellations take, the net number rises in the same period the gross number falls.
Picture a business losing 12% of its starting revenue to cancellations while adding 20% in upsells, reporting an NRR near 108% on a GRR of 88%.
To hold the net number even, it needs 20 cents of fresh expansion every period. When expansion slows, NRR drops toward that gross figure fast, because nobody fixed the losses underneath.
A GRR that sits below NRR is normal and expected, not a warning on its own. The real warning is a GRR-NRR gap that widens over several periods. A widening gap means your upsells are growing just to cover churn that is also climbing.
In the Churn.io dataset, the most common pattern is cancellations climbing while expansion holds the net number steady, hiding the slide until expansion slows. The gross vs net revenue retention breakdown maps that decline step by step.
The GRR Defense Playbook: three levers
GRR moves on three levers, and each one maps to a product surface you can wire up this week:
- Cancellation Recovery: shrinks churned MRR by saving customers who start to cancel.
- Downgrade Save: shrinks contraction MRR by turning a downgrade into a smaller, kept plan.
- Billing Recovery: stops failed payments from becoming cancellations.
Cancel flows and dunning are the two surfaces that pull all three. The levers run in order of how much revenue each protects per save, from a full cancellation down to a recovered charge.
Lever 1: Cancellation Recovery
Cancellation recovery is the work your cancel flow does to keep a customer who has decided to leave. It protects the largest slice of GRR, because a cancellation takes the whole subscription. The metric to watch is save rate, the share of customers who start a cancel flow and end up staying.
Save rate moves when you stop treating every cancelling customer the same. Someone leaving over price needs a different offer than someone who never activated, and a generic "are you sure?" screen serves neither.
So segment the exit by reason, then route each reason to the offer that fits:
- Offer a pause for a temporary problem.
- Offer a plan change for a budget problem.
- Offer a setup call for an activation problem.
Assume your cancel-flow save rate is 20% and you take it to 30% on a base losing 12% of starting MRR to cancellations each period. That recovers roughly 2 points of would-be churn, a direct GRR gain from one product change.
Watch reactivation to confirm it stuck. A save that only delayed the exit shows up there as weak reactivation, even when the save rate looks higher.
The pitfall is buying saves with friction. Make cancelling hard and this month's save rate climbs while next year's reactivation collapses, because a customer who had to fight to leave doesn't come back. Recover the saveable customers, and let the rest leave cleanly.
Lever 2: Downgrade Save
A downgrade save turns a customer who was about to cancel into one who stays on a smaller plan. That trades a full churned-MRR loss for a partial contraction-MRR loss. It protects less revenue per save than a cancellation recovery, but it catches customers the all-or-nothing cancel screen would have lost entirely.
A downgrade save works because a downgrade is a signal. A customer asking to pay less is telling you the value is real, but the price or tier is wrong for them right now. Meet that with a plan-change offer inside the cancel flow and you hold the account.
Ignore it and you hand them a binary choice between full price and the door.
Pretend a customer on a $200 plan accepts a move to $90. You book contraction MRR rather than full churn, keeping revenue a cancel-only flow would have lost. The check is whether downgrade offers hold accounts that exit surveys flagged as price-sensitive.
The trap is offering the downgrade too early, to customers who would have stayed at full price. So trigger the plan-change offer only on a real cancel intent. Offer it to a quiet account you assume is unhappy and you train profitable customers to pay less.
Lever 3: Billing Recovery
Billing recovery catches the customers who never meant to leave, the ones whose card simply failed. An unrecovered failed payment counts against GRR as a full cancellation. This is involuntary churn, and dunning is the retries and reminders that win those payments back before the subscription lapses.
Billing recovery works on timing, because a failed payment opens only a narrow window. Smart retries spaced to a customer's payment patterns, with a clear reminder to update the card, close most of that gap.
Take a customer whose $150 subscription fails on an expired card. Recover the charge within the retry window and the revenue stays in GRR untouched. Let it lapse and you record a full cancellation that had nothing to do with the product.
Confirm it with a recovery rate tracked separately from voluntary save rate.
Push this too hard and the customer reads a string of failed-charge emails as a reason to reconsider the subscription. So recover the payment quietly.
To see all three levers at work, Churn.io's cancel flow software recovers cancellations and downgrades alongside failed payments in one place.
These three levers improve GRR only up to the limit your product-market fit sets. Save flows recover customers who were churnable but saveable. They can't hold a customer whose real reason for leaving is an unmet core need.
Run exit surveys alongside the playbook to tell the two apart, because tuning save flows against a product problem just delays the losses.
GRR vs NRR
GRR and NRR run the same calculation, except NRR adds expansion back in, so NRR can exceed your starting base and GRR never can. GRR is a churn-quality read, while NRR layers growth on top.
That single difference in the formula is why the two numbers do different jobs. Because GRR stops before expansion and NRR does not, GRR can only ever report losses, while NRR blends losses and gains into one net figure.
Read them together and you separate a base that is genuinely healthy from one that expansion is propping up.
The gap between them shows the effect. In an ordinary SaaS business the two run about ten points apart, which is expansion doing its work on top of the losses. Companies with mature expansion motions open a far wider gap.
Atlassian disclosed cloud NRR above 120% in its FY2024 filing, on a GRR that stayed under the 100% cap like everyone else's.
The gap also depends on your model. A flat-rate consumer subscription has no upgrade path, so the two metrics converge and GRR becomes the only health number that matters. For a seat-based B2B product, the two numbers running level signal the opposite problem, that no expansion is happening at all.
What counts as a healthy gap shifts by stage, from seed to public. The stage-by-stage NRR benchmarks lay that out.
GRR benchmarks by segment
One healthy band applied to every SaaS business sets the wrong target for a low-priced consumer product. The right GRR target shifts with your average revenue per account and your business model, so it's rarely the industry-wide median.
Stripe's same benchmarks frame 85-95% as decent and 95% or higher as excellent for many SaaS businesses. Read your own number against that band.
Structure shapes GRR as much as your save flow does. High-priced B2B accounts come with annual contracts, a success team, and a high cost to switch, all of which raise GRR independent of your cancel flow.
Low-priced consumer subscribers face no switching cost and can cancel anytime, so cancel-flow and dunning work pays off most there.
The published segment numbers, some split by annual recurring revenue (ARR) stage, show the spread:
Those ChartMogul top-quartile figures look low against the "90% is healthy" standard, because the sample includes many businesses without dedicated account management. The lesson is to read your number against companies built like yours.
So treat benchmarks as inputs to a target, and let your model decide the verdict. Consider a consumer subscription at 85% GRR with a sharp cancel flow, still healthy. Or consider a B2B business at 92% on lock-in, possibly under-investing in retention.
FAQ
Can GRR exceed 100%?
No. GRR can never exceed your starting base, because its formula only subtracts losses and adds nothing back. Any retention figure that exceeds the starting base is net revenue retention, which folds expansion into the same calculation.
What is the difference between GRR and ARR?
ARR measures how big your recurring revenue is, while GRR measures what percentage of it you keep. So a business can carry large ARR and still post weak GRR, because one tracks size and the other tracks survival.
How do I know if my GRR problem is a cancel-flow problem or a product problem?
Look at why customers say they're leaving. When the reasons cluster around confusion, friction, or "I forgot I was paying," a better cancel flow can recover them. If they cluster around missing features or a competitor that does more, the product has to move, and no save flow will hold them.
Does GRR include contraction MRR from downgrades?
Yes. A downgrade books contraction MRR, and the formula subtracts that alongside churned MRR from your starting revenue. Teams often forget the downgrade term and report a GRR that looks better than reality.