Gross Revenue Retention Is the Honest Number NRR Keeps Hiding
churn and retention data analytics conversion analytics SaaS growth saas metrics SaaS analytics revenueanalytics user behavior analytics subscription analytics

Your NRR says 115%. The board loves it. Everyone relaxes.
Meanwhile customers are walking out the back door, and the headline number never flinches. That's the trouble with net revenue retention on its own. It blends two very different stories into one happy figure, and the happy figure wins the meeting.
Gross revenue retention won't let you do that. It strips out the good news and shows you the floor. What share of your revenue actually survived, before a single upsell dressed it back up? Most teams never look but they should.
NRR and GRR are not the same story
Quick refresher. NRR takes your starting revenue, adds expansion, subtracts churn and downgrades, then gives you a net figure. Expansion can push it past 100%. That's why net revenue retention became the number boards obsess over.
Gross revenue retention plays by stricter rules. It counts churn and downgrades only. No expansion allowed in. So GRR caps at 100%, and it answers a colder question. Of the revenue you started with, how much did you keep?
Here's why the gap matters. A company can post 115% NRR and 80% GRR at the same time. The NRR looks elite. The GRR says one in five revenue dollars is leaking, and expansion from a few big accounts is quietly covering the mess. Same company. Two completely different health reports. One benchmark analysis puts it plainly, warning that a business like this "may look strong at first because expansion is offsetting churn." That's the trap in one line.
The benchmarks, and why they slipped
Numbers ground this. The median SaaS gross revenue retention rate fell to around 84% in 2025, down several points from the year before. A good GRR sits at 85% or higher. Best-in-class durability starts around 90%.
Look how tight that band is. The distance between fine and fragile is a few points. And because GRR ignores expansion, a slipping GRR is pure bad news. You can't spin it. That's exactly what makes it worth watching.
Why you probably can't see your real GRR
Now the uncomfortable part. Most teams can't calculate a clean gross revenue retention number even when they want to. The data is scattered across tools.
Cancellations sit in one place. Downgrades hide in your billing platform. Failed payments live in your payment processor, filed as something else entirely. To get a true GRR you stitch all of that together by hand, every month, and pray nobody miscategorised a thing.
GRR is the number teams trust least, because it's the number they can least easily produce. NRR comes straight out of a billing tool in one click, so that's the one that ends up on the slide. The honest number takes three exports and an afternoon of reconciliation, so it gets skipped or guessed. The flattering figure wins by being convenient, and the leak it hides keeps running in the background. Ian Naylor, Founder of SaaSToolkit.
So teams default to NRR. It's right there, and it looks good. The harder, colder number gets left in a drawer.
The leak GRR exposes that NRR hides
Here's where it gets practical. A weak GRR is nearly always a churn problem you haven't fully seen. And a big slice of that churn isn't customers choosing to leave at all.
Failed payments count against gross revenue retention just like a cancellation does. A card expires, the charge bounces, the subscription lapses, and your GRR takes the hit from a customer who never meant to go. That's the failed-payment leak most teams never fight, and it drags GRR down while expansion masks it upstairs in the NRR line.
"When you finally measure GRR properly, the first shock is how much of the loss was recoverable. It's not all angry customers rage-quitting. A lot of it is expired cards, quiet downgrades, and accounts that faded weeks before they cancelled. Every one of those had a window where a nudge would have worked. You just couldn't see the window, because the signal was in one tool and the customer was in another. Close that gap and your gross retention climbs without winning a single new logo. Becky Halls, Strategist at SaaSToolkit.ai
What a strong GRR actually takes
Protecting gross retention is less glamorous than chasing expansion. It's also where durable growth comes from. You keep more of what you already won.
Three moves do most of the work. Measure GRR on its own, apart from NRR, so you can't hide behind expansion. Split churn into voluntary and involuntary, because the failed-payment slice is winnable when you catch it fast. And watch the accounts fading before they cancel, not after the money's gone.
Where SaaSToolkit fits
We built SaaSToolkit so your real gross revenue retention stops being a manual stitching job. Product usage, billing and retention tie to one customer identity from a single snippet. Cancellations, downgrades and failed payments all land against the same account, so GRR becomes a live number instead of a monthly reconstruction.
That means you see the leak while you can still plug it. An expiring card next to an active, happy account becomes a task, not a mystery churn you discover a quarter later. Stop letting expansion paper over the holes. See your real retention, free.
FAQ
What is gross revenue retention? Gross revenue retention measures how much recurring revenue you keep from existing customers over a period, counting only churn and downgrades. It excludes expansion, so it caps at 100%. GRR shows the true floor of your revenue base, before any upsells make the picture look better than it is.
How is GRR different from NRR? NRR includes expansion revenue, so it can exceed 100% and often looks impressive. GRR excludes expansion and counts only losses, so it reveals how much you're leaking. Reading them together is the point. A high NRR with a low GRR means expansion is covering real churn.
What is a good gross revenue retention rate? A GRR of 85% or higher is considered good, and 90% or above is best-in-class for B2B SaaS. The 2025 median slipped to around 84%, so a lot of teams are sitting right at the edge. Because GRR ignores expansion, even small drops signal a genuine retention problem.
Why is my GRR hard to calculate? Because the data lives in separate tools. Cancellations, downgrades and failed payments sit in different systems, so building a clean GRR usually means manual exports and reconciliation every month. That friction is why most teams track NRR instead, even though GRR is the more honest number.
How does SaaSToolkit help with gross revenue retention? It ties billing, product usage and retention to one customer identity from a single snippet, so churn, downgrades and failed payments all land against the same account. Your GRR becomes a live figure you can act on, and you catch leaks while they're still fixable. Try it free.