What is net revenue retention, and does it matter?
Last updated: July 23, 2026
From the SoleOS answers series — written about our own product space; grounded in published definitions and documented behavior, never invented numbers.
Net revenue retention (NRR) measures whether the customers you already had a period ago are paying you more or less today. Expansion and upgrades count in your favor; contraction and churn count against you; any customer who signed up since then doesn't count at all. Above 100% means your existing base is growing on its own, before a single new signup — which is why it's called the holy grail of SaaS metrics, though for a simple single-tier indie product it's mostly a nice-to-know.
This guide is published by SoleOS, a portfolio dashboard for solo founders running multiple subscription apps, as a plain-English explainer — not a sales pitch.
What NRR actually measures
Take every customer who was paying you at the start of a period, say the beginning of last month. Ignore everyone who signed up since — they don't exist for this calculation. Now look at that same group one period later. Some upgraded or added seats (expansion). Some downgraded (contraction). Some canceled (churn). NRR is what's left of that cohort's revenue after all three net out.
This separates two different growth engines: new-customer acquisition, and retention-plus-expansion of people you've already convinced. A business can have weak new-customer growth and still compound nicely if NRR sits comfortably over 100%, because the existing base refills and grows its own revenue every period without any sales effort at all.
The formula, with a worked example
NRR = (Starting MRR + Expansion − Contraction − Churn) / Starting MRR
New-customer revenue is deliberately excluded from both sides of the fraction — that's a separate metric (new bookings), not retention.
Say your existing customers were paying a combined $10,000 MRR at the start of the month. Over the month: $500 in expansion (a few upgraded or added seats), $300 in contraction (a few downgraded), and $800 in churn (a few canceled).
NRR = (10,000 + 500 − 300 − 800) / 10,000 = 9,400 / 10,000 = 94%
That cohort is worth 6% less than a month ago, even with zero new customers in the picture. If expansion had been $1,200 instead of $500, the math flips: (10,000 + 1,200 − 300 − 800) / 10,000 = 110% — same churn, same contraction, but the base grows on its own. That's the entire point of the metric: does upsell outrun attrition?
Gross revenue retention vs. net revenue retention
Gross revenue retention (GRR) uses the same cohort but drops expansion entirely:
GRR = (Starting MRR − Contraction − Churn) / Starting MRR
With the numbers above: GRR = (10,000 − 300 − 800) / 10,000 = 8,900 / 10,000 = 89%. Because GRR only ever subtracts, it can never exceed 100% — a perfect story caps out at "we lost nobody." NRR can exceed 100% because upgrades get added back in. The two are usually reported together: GRR shows how sticky the product is on its own, NRR shows how much expansion offsets whatever stickiness is missing. A gap between the two — 89% gross, 94% net here — is the size of your expansion motion. No gap at all just means there's no upsell path, which is the normal state for plenty of simple indie tools.
Why NRR is such a big deal for investor-backed SaaS
For a venture-funded SaaS company, NRR is often the single most-watched number in the business: it's a leading indicator of durable, compounding growth that doesn't depend on the sales engine continuing to perform. A company with strong NRR can survive a bad quarter of new-customer acquisition because the existing base keeps expanding regardless. It's also the reason almost every B2B SaaS product ships tiered, seat-based, or usage-metered pricing — that structure exists largely to create the expansion path NRR requires. Investors price growth-stage rounds partly off this number because it predicts long-term retention economics better than logo counts or even monthly churn rate alone.
Why it matters a lot less for a simple indie product
Here's the part most SaaS content skips: if you run a single-tier, flat-monthly indie app with no seats, no usage tiers, and no upgrade path, NRR isn't measuring anything new. A customer paying $9/month either stays at $9/month or churns — there's no expansion to net against contraction, so NRR is mechanically identical to your gross retention (100% minus your churn rate). Computing it separately just reproduces a number you already have.
Be honest with yourself here: most tiny indie products don't need to obsess over NRR, and building a retention dashboard for a metric that can't diverge from churn is wasted effort. If your pricing is one plan, one price, no upgrade button, just track churn and move on. NRR earns its keep once there's a real expansion mechanism to measure — before that, it's a recalculation of a number you already track.
How to get expansion revenue if you want NRR to work for you
If you want NRR to become a real growth lever rather than a synonym for churn, existing customers need something to buy more of:
- Seats. Any multi-user or team angle lets per-seat pricing grow an account's bill as their team grows, with no new-customer work required.
- Tiers. A higher plan unlocking more projects, storage, integrations, or limits gives customers a reason to upgrade as they grow into their current plan's ceiling.
- Usage-based add-ons. Metered charges on top of a base subscription (extra credits, extra API calls, extra generated output) scale revenue with actual usage, without you selling anything.
None of these are free — each adds pricing-page complexity and support burden. Expansion revenue only shows up where the product has natural room to grow with the customer; forcing a tier ladder onto a genuinely single-purpose tool usually just adds friction. Weigh that against your current MRR structure before restructuring pricing purely to manufacture an NRR number.
How to actually calculate and track it
- Snapshot starting MRR for the cohort that existed at the start of the period — only customers who were already paying, not anyone who joined since.
- Tag every plan change in that cohort as expansion (upgrade, added seats, higher usage tier) or contraction (downgrade), and total each.
- Tag every cancellation in that cohort as churn, and total it.
- Plug the numbers into the formula. Run it on the same cadence as your billing cycle so the comparison is apples-to-apples.
If your billing provider tracks subscription history, most of this is a query away — the hard part is remembering to exclude new customers, the single most common mistake when people compute this by hand. A portfolio metrics view that separates existing-customer revenue movement from new-customer revenue avoids that mistake automatically, though a spreadsheet with a "cohort start date" column works fine too. SoleOS is one option for this, not the only one, and won't be the right fit for every founder's stack.
Frequently asked questions
Is 100% NRR good?
Exactly 100% means expansion is precisely canceling out contraction and churn — the cohort is flat. Whether that's good depends on your model: for a land-and-expand business, 100% might be disappointing. For a simple flat-rate tool with no upgrade path, 100% would be unusually strong, since it implies zero churn.
What counts as a "good" NRR number?
There's no universal benchmark worth repeating, and be skeptical of any guide that hands you one. What's good depends on your pricing model (multi-tier B2B with seats has far more room than a single-tier $9/month tool), your customer segment, and your stage. The only meaningful comparison is your own NRR against your own prior periods, and against your GRR — a widening gap means expansion is working; a shrinking gap means it isn't.
Do I need to track NRR if I only have one pricing plan?
Not really. With one plan and no upgrade path, NRR is mathematically identical to your gross retention rate, so calculating it separately adds a metric without adding information. Track churn directly, and revisit NRR if you ever introduce tiers, seats, or usage pricing.
How is NRR different from churn rate?
Churn rate measures the percentage of customers (or revenue) lost in a period, full stop. NRR asks a broader question of the same cohort: after both losses and upgrade gains, is the group worth more or less? A business can have real churn and still post NRR over 100% if expansion from the customers who stayed outweighs it.
Can NRR be negative?
No — a cohort's MRR can't go below zero, so NRR floors at 0% (everyone churned, no expansion to offset it). It can still be very low, which is functionally the same warning sign as a high churn rate: whatever's driving cancellations is outrunning any upgrade activity.