Gross Revenue Retention (GRR)
The Gross Revenue Retention (GRR) report measures the percentage of recurring revenue retained from an existing customer cohort over a specified period, excluding any revenue gained from upgrades or expansion. It is the most conservative measure of revenue health, focusing purely on revenue leakage due to cancellations (Churn) and downgrades (Contraction).
GRR provides the purest signal of product stability and customer success, as it is unaffected by expansion revenue. It is the direct opposite of MRR Churn Rate.
GRR is calculated by taking the Starting MRR of the cohort and subtracting Contraction MRR and Churned MRR, then dividing the result by the Starting MRR.
For an in-depth explanation of GRR as a metric, see the GRR guide in the SaaS Metrics Academy.
Overview

The Gross Revenue Retention (GRR) report includes a timeline chart and a breakdown table. This report is crucial for understanding the base stability of your revenue stream. The breakdown table cells are not clickable and there is no detail table.
Timeline chart
The timeline chart displays a single line:
- Gross Revenue Retention (Blue Line): This is the primary metric, showing the calculated GRR rate for the selected period.
Because GRR excludes expansion revenue, the line will always be at or below 100%. A high GRR, close to 100%, indicates exceptional stability and very low gross revenue leakage.
The report employs a specific time-window convention:
Monthly Aggregation: If you select an Interval of daily, weekly, or monthly, the calculation is performed on a month-to-month basis. This ensures the retained MRR is consistently measured against the cohort MRR (1 or 12 months ago, depending on the trailing window selected), reducing noise.
Quarterly/Yearly Aggregation: If you select quarterly or yearly, the calculation is performed on a quarter-over-quarter or year-over-year basis, respectively.
The currently ongoing period is marked as a dashed line. You can adjust the chart data using the date picker, interval selector, and filters.
Breakdown table
The table underneath the chart displays a cohort-based view for each period, making it explicit that each data point compares today's state to the cohort that existed 1 or 12 months ago (depending on the trailing window selected).
| Metric | Description |
|---|---|
| Original | The MRR contributed by the cohort at the start of the lookback window (1 or 12 months earlier). This is the cohort MRR being measured. |
| Retained | The MRR from those original customers that is still being paid at the end of the period (after contractions, before any expansion). |
| Churned | The MRR lost from original customers who canceled all paid subscriptions during the lookback window. |
| Contraction | The MRR lost from original customers downgrading their subscriptions during the lookback window. |
| GRR Rate | The calculated Gross Revenue Retention Rate for the period ((Original - Contraction - Churned) / Original), displayed as a percentage. |
Customers acquired inside the lookback window are excluded — they were never part of the cohort being measured. Note that GRR deliberately excludes any expansion or reactivation revenue.
The GRR Rate is typically shown in blue or green to visually emphasize revenue success and stability.
Choosing the trailing window
The chart toolbar includes a trailing window selector that lets you switch between two ways of measuring GRR:
Trailing 1 month (default)
Each point compares today's cohort MRR to the cohort MRR 1 month earlier. This matches typical monthly retention reporting and is the right view for operational use — catching recent contractions and churn early.
Trailing 12 months (TTM)
Each point compares today's cohort MRR to the cohort MRR 12 months earlier. TTM is the standard most investors and benchmarks reference when discussing GRR — public SaaS companies almost universally report a trailing-12-month GRR. Use this view for board decks, investor updates, and comparing your numbers to public benchmarks.
In both modes, customers acquired inside the lookback window are excluded from the calculation — they were never part of the cohort being measured against. Because GRR ignores expansion, a customer's contribution to Retained MRR is capped at their starting MRR — even if they upgrade.
A worked example
Suppose you're looking at the trailing 1-month view as of Apr 30, 2026. The cohort is every customer paying on Mar 31, 2026:
| Customer | On Mar 31, 2026 | What happens by Apr 30 | In cohort? | Treated as (GRR) |
|---|---|---|---|---|
| Anna | Paying $100/mo | Still paying $100 | ✓ Yes | $100 retained |
| Ben | Paying $100/mo | Upgrades to $150 | ✓ Yes | $100 retained — capped at original; the +$50 expansion is ignored |
| Cleo | Paying $200/mo | Downgrades to $120 | ✓ Yes | $120 retained (−$80 contraction) |
| Dan | Paying $100/mo | Cancels on Apr 12 | ✓ Yes | $0 retained (−$100 churn) |
| Eli | Not a customer | Signs up Apr 5 at $200 | ✗ No | Excluded — joined inside the window |
| Fiona | Churned back in Jan 2026 | Reactivates Apr 18 at $150 | ✗ No | Excluded — wasn't paying on Mar 31 |
- Original MRR = $500 (Anna + Ben + Cleo + Dan)
- Retained MRR (GRR numerator) = $320 ($100 + $100 + $120 + $0)
- GRR = $320 ÷ $500 = 64%
Notice that Ben's upgrade doesn't help GRR — that's the whole point of the metric. NRR would credit him for the full $150; GRR caps him at $100. Eli and Fiona are real revenue but never enter this cohort.
The trailing 12-month view follows exactly the same logic with a wider window — cohort = everyone paying on May 1, 2025, comparison runs through Apr 30, 2026:
| Customer | On May 1, 2025 | What happens by Apr 30, 2026 | In cohort? | Treated as (GRR) |
|---|---|---|---|---|
| Anna | Paying $100/mo | Doubles to $200 | ✓ Yes | $100 retained — upgrade ignored |
| Greg | Not a customer | Signs up Sep 2025, churns Mar 2026 | ✗ No | Excluded — joined inside the 12-month window |
| Hana | Paying $200/mo | Churns Aug 2025, reactivates Mar 2026 at $200 | ✓ Yes | $200 retained — she's in the cohort and is paying again at the end |
A wider window means more customers join and leave inside it, so more get excluded — but only the starting cohort counts toward Original, Retained, and Churned.
Filters
The report supports a wide range of filters to help you analyze GRR within specific segments. These include:
- Date range
- Interval (Daily, weekly, monthly, quarterly, or yearly)
- Additional filters – plan, region/country, billing frequency, customer age (time since signup), etc. (see all filters)
Filters are applied to both the chart and the table simultaneously.
Exporting the data
You can export the table as a CSV file for offline analysis or reporting by clicking the "Export" icon next to the date picker.
Practical tips
- The 100% Ceiling: Remember that GRR can never exceed 100%. If you see it dipping, it signals an urgent need to address product experience, customer success, or billing issues.
- GRR vs. NRR: Use GRR to understand the quality of your product and service (how well you prevent loss), and compare it to Net Revenue Retention (NRR) to understand the effectiveness of your expansion and upsell strategies.
- Segment for Stability: Use filters to analyze GRR by cohort (e.g., customers who signed up 6 months ago vs. 12 months ago) to see if product maturity or onboarding improvements have stabilized your revenue base.