Your NRR is 108%. Investors are pleased. But one of them asks a follow-up question: "What is your GRR?"
GRR — Gross Revenue Retention — is the number that shows what would happen to your revenue if every existing customer stayed exactly where they are: no upgrades, no seat additions, no usage growth. Just retention versus churn and downgrades.
A business with 108% NRR and 95% GRR has a strong, sticky customer base where expansion is a genuine accelerator on top of solid retention. A business with 108% NRR and 72% GRR has a churn problem being masked by aggressive upselling — and when expansion slows, the underlying decay will be exposed.
This guide explains exactly what GRR measures, how it differs from NRR, how to calculate it correctly from Stripe data, and what good looks like by segment.
What GRR Actually Measures
Gross Revenue Retention measures what percentage of your existing revenue base you kept over a period — counting only churn and downgrades, never expansion. It answers the question: if your customers could only stay or leave (not grow), how much revenue would survive?
This makes GRR fundamentally different from NRR. NRR includes expansion revenue, so it can exceed 100%. GRR never can. It is bounded between 0% and 100% by definition.
GRR captures three things from your existing customer cohort:
- Retained revenue — customers who stayed at the same plan and paid the same amount
- Contraction revenue — customers who downgraded or reduced their plan (negative impact)
- Churned revenue — customers who cancelled entirely (negative impact)
Expansion revenue — upsells, seat additions, usage growth — is deliberately excluded. This exclusion is what makes GRR so revealing: it shows your retention floor without the flattering effect of your upsell motion.
GRR vs NRR: The Key Difference
GRR and NRR measure different things from the same underlying data. Understanding both together gives a complete picture of revenue health that neither metric provides alone.
| Metric | Includes expansion? | Can exceed 100%? | What it reveals |
|---|---|---|---|
| GRR | No | Never | True retention floor |
| NRR | Yes | Yes | Net revenue trajectory |
The most important diagnostic insight comes from comparing GRR and NRR together:
- High GRR + High NRR: Strong retention and strong expansion. The ideal state — both the floor and the trajectory are healthy.
- High GRR + Low NRR: Good retention but weak expansion motion. Customers stay but do not grow. This usually means pricing structure does not have natural expansion paths.
- Low GRR + High NRR: Warning sign. Expansion is masking churn. Customers are leaving but others are upgrading fast enough to compensate. When expansion slows, the underlying decay will be exposed.
- Low GRR + Low NRR: Both retention and expansion are failing. This requires immediate intervention on multiple fronts.
The GRR Formula
GRR is calculated on a cohort of existing customers. The formula caps each customer's contribution at their starting MRR — expansion is excluded by setting the ceiling at the original amount.
GRR = (Starting MRR − Contraction MRR − Churned MRR) ÷ Starting MRR × 100
Or equivalently using the cohort ceiling approach:
Ending capped cohort MRR = sum of min(current MRR, starting MRR) for each cohort customer still active
GRR = Ending capped cohort MRR ÷ Starting cohort MRR × 100
The ceiling is important. A customer who started at $200/month and upgraded to $400/month contributes $200 to the GRR calculation — their starting amount — not $400. Their $200 expansion goes into NRR but not GRR. A customer who started at $200/month and downgraded to $100/month contributes $100. A customer who churned entirely contributes $0.
A Worked Example
Same cohort as our NRR example: 50 customers, $40,000 starting MRR.
| Customer | Starting MRR | Ending MRR | GRR contribution |
|---|---|---|---|
| 38 retained customers | $32,000 | $32,000 | $32,000 |
| 6 upgraded customers | $5,000 | $8,200 | $5,000 (capped) |
| 3 downgraded customers | $1,900 | $1,100 | $1,100 |
| 3 churned customers | $1,100 | $0 | $0 |
| Total | $40,000 | $41,300 | $38,100 |
GRR = $38,100 ÷ $40,000 × 100 = 95.25%
GRR of 95.25% means this business retained 95 cents of every dollar from its existing customer base, ignoring any growth from those customers. The 6 customers who upgraded contributed $3,200 in expansion — but that expansion counts toward NRR, not GRR.
Notice that NRR for this same cohort was 100.75% — positive, suggesting growth. GRR shows the underlying reality: without expansion, this business would be losing 4.75% of its revenue base per period.
Tired of wrangling cohorts in spreadsheets?
Dnoise calculates GRR and NRR automatically from your Stripe billing history — cohort logic included, expansion capped correctly, churn separated by type. Connect in read-only mode and see both metrics in under 2 minutes.
Explore the live demo Connect Stripe — freeGRR Benchmarks by Segment
Like NRR, GRR benchmarks vary significantly by customer segment. Enterprise customers churn less and downgrade less because contracts are longer and switching costs are higher.
SMB SaaS (ACV below $2,400/year)
| Category | Annual GRR |
|---|---|
| Concerning | Below 70% |
| Average | 70–80% |
| Healthy | 80–87% |
| Best-in-class | Above 87% |
Mid-market SaaS (ACV $2,400–$24,000/year)
| Category | Annual GRR |
|---|---|
| Concerning | Below 80% |
| Average | 80–87% |
| Healthy | 87–92% |
| Best-in-class | Above 92% |
Enterprise SaaS (ACV above $24,000/year)
| Category | Annual GRR |
|---|---|
| Concerning | Below 85% |
| Average | 85–90% |
| Healthy | 90–95% |
| Best-in-class | Above 95% |
Based on revenue patterns tracked across Stripe billing data in Dnoise, the single strongest predictor of GRR is contract length. Businesses with predominantly annual contracts see GRR 8–12 percentage points higher than equivalent businesses on monthly billing — not because their product is better, but because customers cannot churn mid-contract. Converting monthly customers to annual contracts is often the fastest structural improvement to GRR available.
How to Calculate GRR from Stripe Data
Calculating GRR from Stripe requires building cohorts correctly and applying the expansion cap. The main challenges are identifying downgrade events accurately and separating voluntary from involuntary churn.
Step 1: Define the cohort
Identify all customers with active subscriptions on the start date. Record their subscription MRR at that moment. This is your cohort and their starting MRR values.
Step 2: Pull ending subscription state for cohort customers
At the end of the period, look up each cohort customer's current subscription status and MRR. Three outcomes are possible: still active at same or different amount, or churned.
Step 3: Apply the expansion cap
For each cohort customer still active, their GRR contribution is:
GRR contribution per customer = min(current MRR, starting MRR)
This caps upgraded customers at their starting MRR. Downgraded customers contribute their lower current MRR. Churned customers contribute zero.
Step 4: Handle involuntary churn separately
In Stripe, subscriptions cancelled due to payment failure show up the same as voluntary cancellations in the raw data — both appear as customer.subscription.deleted events. To separate them, check whether the subscription ended with a past_due or unpaid status before deletion. Involuntary churn from payment failure is recoverable — see the complete Stripe failed payment recovery guide — and should be tracked separately even though it reduces GRR.
Step 5: Calculate GRR
GRR = (sum of all cohort GRR contributions) ÷ Starting cohort MRR × 100
Can't fix what you can't measure.
Before optimizing your GRR, you need to see exactly where revenue is leaving — which customers are downgrading, which are churning voluntarily, and which are failing payments. Dnoise tracks every event directly from your Stripe billing history with the full audit trail.
See Dnoise in action GRR in Metrics Library →How to Improve GRR
GRR has two levers: reduce churn and reduce contraction. Unlike NRR improvement which also involves driving expansion, GRR improvement is purely defensive.
Reduce involuntary churn first
Involuntary churn from payment failure is the fastest win because it is recoverable. A well-optimized dunning system recovers 50–70% of at-risk revenue within the 22-day Stripe retry window. For many SaaS businesses, fixing involuntary churn alone improves GRR by 3–5 percentage points. See the complete guide to Stripe failed payment recovery for implementation details.
Convert monthly customers to annual contracts
Annual contracts structurally prevent monthly churn events. Customers on annual plans can only churn at renewal — giving you 11 months of retained revenue per customer regardless of satisfaction levels. The typical conversion incentive is 15–20% discount for paying annually. At 3% monthly churn, converting customers to annual billing reduces your effective monthly churn exposure by approximately 60%.
Identify and address the highest-churn cohorts
Not all customers churn at the same rate. New customers churn faster in their first 90 days. Customers from certain acquisition channels churn faster. Customers on certain plans churn faster. Identifying which cohorts drive the majority of your GRR drag is the prerequisite to any meaningful retention intervention.
Build downgrade prevention into customer success
Contraction — customers who stay but pay less — is often overlooked relative to churn. A customer who downgrades from $500/month to $100/month reduces your GRR by $400 — the same impact as a $400/month customer churning entirely. Track downgrade events as a separate metric and build CS outreach triggers for customers approaching plan boundaries from below.
Reduce time-to-value for new customers
The highest-risk churn window is the first 30–90 days. Customers who never activate key features or never experience a clear value moment are disproportionately likely to churn at their first renewal. Reducing time-to-value through better onboarding, in-product guidance, and activation milestones has a direct impact on GRR because it addresses churn before it happens.
What Dnoise Shows You
Dnoise calculates GRR from Stripe source events using proper cohort logic — with expansion correctly capped at starting MRR, and churn separated by type.
- Cohort-based GRR. GRR is calculated on defined customer cohorts, not on total MRR movements. The expansion cap is applied per customer, not at the aggregate level.
- GRR alongside NRR. Both metrics are shown together so you can immediately see how much work expansion is doing to compensate for retention gaps. The gap between GRR and NRR tells you how dependent your revenue trajectory is on continued upsell performance.
- Churn type separation. Voluntary churn and involuntary churn are tracked separately in the GRR calculation. This lets you see your true voluntary GRR — what you would retain if all payment failures were recovered — and your blended GRR that includes unavoidable payment losses.
- Contraction tracking. Downgrade events are tracked separately from churn events. You can see how much of your GRR drag comes from customers leaving entirely versus customers staying but paying less.
See also: GRR definition in the Metrics Library, NRR definition, and the complete NRR guide.
See your real GRR and NRR in minutes.
Connect Stripe and Dnoise shows your GRR, NRR, contraction breakdown, and churn by type — with every number traced to source events.
See live demo Connect Stripe — freeSummary
GRR is the retention floor — what your business keeps when customers can only stay or leave, with no expansion counted. It reveals whether your revenue base is durable or structurally dependent on constant upselling to avoid decline.
- GRR is always 100% or below. If you calculate above 100%, there is an error in your cohort logic.
- Healthy GRR by segment: SMB 80–87%, mid-market 87–92%, enterprise 90–95%.
- The gap between GRR and NRR shows how much expansion is compensating for retention losses.
- The fastest GRR improvement is fixing involuntary churn from payment failures — recoverable with a dunning system.
- Annual contracts structurally improve GRR by removing monthly churn opportunities.
Frequently Asked Questions
What is a good GRR for SaaS?
It depends on your segment. For SMB SaaS, 80–87% annual GRR is healthy. For mid-market SaaS, 87–92% is the target. For enterprise SaaS, 90–95% is standard and above 95% is best-in-class. GRR can never exceed 100% because expansion is excluded by definition. Below 70% in any segment means your revenue base is eroding faster than is sustainable without very high new customer acquisition to compensate.
What is the difference between GRR and NRR?
GRR measures only revenue retained without counting expansion — it can never exceed 100%. NRR includes expansion revenue from upsells and upgrades, so it can exceed 100%. GRR is your retention floor. NRR is your net trajectory. A business with 108% NRR and 72% GRR is masking a churn problem with aggressive expansion — dangerous when expansion slows. Both metrics together reveal the true health of the revenue base. See the complete NRR guide for the full comparison.
How do you calculate GRR from Stripe data?
Define a cohort of customers active at the start of a period. Record their starting MRR. At period end, calculate each customer's GRR contribution as the minimum of their current MRR and their starting MRR — this caps upgraded customers at their original amount. Churned customers contribute zero. Sum all contributions and divide by starting cohort MRR. The main Stripe challenge is separating voluntary churn from involuntary payment-failure churn, which requires checking subscription status before deletion events.
Why is GRR important for SaaS investors?
GRR reveals the true retention floor independent of upsell performance. Investors use it to stress-test the business: if expansion slowed tomorrow, how much revenue would survive? A business with 95% GRR has a durable, sticky customer base. A business with 75% GRR is structurally dependent on constant expansion to avoid decline. GRR is also harder to game than NRR, making it a more reliable signal of underlying product stickiness and customer satisfaction.
Can GRR exceed 100%?
No. GRR is always 100% or below because it excludes expansion revenue by definition. If you calculate GRR above 100%, there is an error in your cohort logic — most likely you are including expansion events or new customer revenue in your ending cohort MRR. NRR can exceed 100% because it includes expansion. GRR cannot. This is the fundamental mathematical distinction between the two metrics.