
SaaS Billing Metrics That Actually Run the Business: MRR, Churn, LTV & NRR (and How to Pull Them From Stripe) (2026)
The metrics that run a SaaS are MRR and its components (New + Expansion − Contraction − Churned), churn (logo vs revenue, gross vs net), LTV (ARPA / churn, aim 3:1 LTV:CAC) and NRR (>100% means your base grows itself). Pull them from Stripe Billing Analytics, and Stripe Sigma for custom SQL cuts.
Which SaaS metrics actually run the business?
Four numbers run a subscription business: MRR (and its components), churn, LTV, and NRR. Everything else on your Stripe dashboard is either supporting cast or vanity. The danger in SaaS metrics was never a lack of data — Stripe hands you hundreds of charts. The danger is fooling yourself with the wrong ones: celebrating a great month that was actually a one-time setup fee, or panicking over logo churn while your revenue quietly compounds.
So that’s my opinionated short list. In this post I’ll define each of the four correctly — because most teams get the definitions subtly wrong — then show you how to pull them out of Stripe Billing honestly, using its Analytics dashboard and Stripe Sigma. And I’ll keep coming back to one practical truth: some of these metrics you can’t move much, but involuntary churn from failed payments is a number you can actually move, this quarter.
What is MRR really — and what are you NOT allowed to count?
MRR is normalized monthly recurring revenue. Three words doing a lot of work.
Recurring is the first filter. You are not allowed to count one-time setup fees, professional services, or any non-recurring charge. If a customer pays you $5,000 to onboard, that is real cash — it is not MRR. Counting it inflates the number and lies to you about the trend the moment that fee doesn’t repeat next month.
Normalized is the second. An annual plan billed at $1,200 once a year is $100 of MRR — annual divided by 12 — not $1,200 in the month it bills and zero the other eleven. Book the whole year in one month and your MRR chart looks like a heartbeat monitor.
Then there’s the structure underneath the headline number. MRR isn’t one figure; it’s a flow with four components:
The MRR identity
New is fresh logos. Expansion is existing customers upgrading or buying more seats. Contraction is downgrades. Churned is the MRR that walked out the door. The headline MRR number tells you where you are; these four components tell you why — and which lever to pull.
Early-stage, a common target is roughly 10–20% month-over-month MRR growth, though benchmarks vary wildly by motion and stage, so don’t anchor too hard on one number. The discipline that matters more than the growth rate: don’t let a usage spike or a setup fee masquerade as recurring revenue.
Churn: logo vs revenue, gross vs net — which one should scare you?
“Churn” is four metrics wearing one name, and confusing them is how teams end up arguing past each other.
Customer (logo) churn = customers lost in the period ÷ customers at the start. It counts heads.
Revenue churn = MRR lost ÷ starting MRR. It counts dollars. Losing ten $20 customers and losing one $2,000 customer are the same logo churn but wildly different revenue churn.
Then each splits again into gross and net. Gross churn is pure loss. Net churn subtracts expansion from your existing base — so net revenue churn can even go negative if your upgrades outrun your losses. They tell different stories, and you need both.
Rough monthly benchmarks, cited and varying by segment:
Rough monthly churn benchmarks by segment
Here’s the gut-punch that should change how you prioritize: 5% monthly churn means losing roughly 46% of your customers over a year. Compounding is unforgiving. That math is exactly why involuntary churn — customers who didn’t choose to leave, their card just expired or got declined — is worth chasing. It’s the rare churn you can recover with Stripe’s Revenue Recovery and dunning.
My opinion: watch gross revenue churn to see the true size of the leak. Net retention is the better headline metric, but if you only ever look at net, expansion can paper over a bucket that’s draining badly underneath. Track both, and never let the optimistic one hide the honest one.
LTV and LTV:CAC — how much is a customer actually worth?
LTV — lifetime value — has a clean back-of-envelope form:
LTV ≈ ARPA ÷ churn rate.
ARPA is average revenue per account. Divide it by your churn rate and you get the expected revenue from a customer over their lifetime. Simple. The catch is hiding in the denominator.
The decision rule is what makes LTV useful: aim for an LTV:CAC ratio of at least 3:1. If a customer is worth $900 and costs $600 to acquire, your acquisition math is broken. At 3:1 or better, you can afford to spend to grow.
But notice that churn sits in the denominator of LTV. That means a small error in your churn number swings LTV violently. Measure churn at 2% when it’s really 4%, and you’ve just claimed each customer is worth twice what they actually are — and you’ll happily overspend on acquisition based on a fantasy. LTV is only ever as honest as your churn number.
So my practical take: don’t over-engineer LTV cohorts before product-market fit. I’ve watched founders build elaborate cohort LTV models on top of a churn figure they hadn’t even defined consistently. Get churn honest first. LTV follows. The fancy modeling can wait until the inputs are trustworthy.
NRR: why crossing 100% changes everything
Net Revenue Retention is the one number I’d keep if I could only keep one.
NRR = (Starting MRR + Expansion − Contraction − Churned) ÷ Starting MRR × 100.
Note what’s not in that formula: new logos. NRR measures only what your existing base does over time. And that’s the whole point. Above 100% means your current customers generate more revenue this period than last — even if you acquired zero new customers. Your base grows itself. Best-in-class is north of 120%.
This is why looking at gross churn alone can mislead you:
Gross churn alone vs Net Revenue Retention
Gross churn only
- Counts only what you lost
- A base losing logos looks like it's shrinking
- Says nothing about upgrades or seat growth
- Can trigger panic on a healthy business
Net Revenue Retention
- Nets expansion against contraction + churn
- Above 100% = base compounds with zero new logos
- Above 120% = best-in-class
- Reveals whether expansion is outrunning churn
NRR is also the metric that usage-based pricing moves most directly. When customers pay by consumption, growing accounts expand automatically as they use more — that expansion lands straight in your NRR. It’s one of the strongest arguments for a usage component in your pricing.
The trap to avoid: obsessing over logo churn while ignoring expansion. If you only track customers lost, you miss the entire growth story playing out inside your existing base.
How do you pull these from Stripe without fooling yourself?
Now the how-to. You don’t need to build any of this from scratch — Stripe gives you two paths.
Path one: Billing Analytics. Go to Dashboard → Billing → Analytics. Stripe computes MRR, churn, and growth for you. The part everyone skips is configuration. You must decide how discounts and trials are treated. A conservative setup subtracts both recurring and one-time discounts from MRR, and counts a subscriber as active only when the first payment is received — not the moment a trial starts. Configure it conservatively once, and the dashboard stops flattering you.
Path two: Stripe Sigma for custom cuts. Sigma lets you write SQL directly against your Stripe data, which is how you answer questions the dashboard won’t, like MRR broken out by plan:
-- Illustrative: Active MRR by plan, normalized to monthly.
-- Confirm exact table/column names in Sigma's schema browser.
select
pr.name as plan,
sum(
case price.recurring_interval
when 'year' then price.unit_amount / 12.0
else price.unit_amount
end
) / 100.0 as mrr
from subscriptions s
join subscription_items si on si.subscription = s.id
join prices price on price.id = si.price
join products pr on pr.id = price.product
where s.status = 'active'
group by pr.name
order by mrr desc;
This query is illustrative of the normalization pattern, not a guaranteed copy-paste — Sigma’s actual schema naming differs, so confirm the table and column names in Sigma’s schema browser before you run it. But the shape holds: filter to active subscriptions, divide annual prices by 12 (the same normalization discipline from the MRR section, now in SQL), and sum.
The one line you must not cross: recognized revenue is not MRR, and neither is cash. Recognized revenue follows accrual accounting (ASC 606) — it’s what your accountant cares about, and Stripe handles it separately through Revenue Recognition. MRR is a forward-looking operating metric. Your Stripe payout is cash. Three different numbers, three different purposes. Mixing them is the most common way finance and product end up reporting different “revenue” and trusting neither.
Pulling the metrics from Stripe
- Configure Billing AnalyticsDashboard → Billing → Analytics; set discount/trial treatment, count active on first payment
- Use Sigma for custom cutsWrite SQL for what the dashboard won't show — e.g. MRR by plan, normalized to monthly
- Keep revenue concepts separateMRR is not cash and is not recognized revenue (ASC 606); Revenue Recognition handles accrual
For the official references, see Stripe’s essential SaaS metrics guide and the Stripe Sigma docs.
FAQ: MRR, churn, LTV and NRR in Stripe
Should I count annual plans in MRR? Yes — normalized to monthly, so annual ÷ 12. Never book the full year as a single month’s MRR; it distorts every trend line you draw afterward.
Is MRR the same as the revenue on my Stripe payout? No. Your payout is cash that settled. MRR is normalized recurring revenue, a forward-looking operating metric. And recognized revenue (ASC 606) is a third thing again. Don’t conflate the three.
Do I subtract refunds and discounts from MRR? Configure it explicitly in Billing Analytics. A conservative setup subtracts both recurring and one-time discounts so MRR isn’t overstated. Pick a treatment and keep it consistent.
What’s a good churn rate? It depends on segment: enterprise roughly 0.5–1% a month, mid-market 1–2%, SMB 3–5%. These are rough cited ranges and vary by motion and definition — measure your own trend rather than chasing a benchmark.
Why does NRR matter more than logo churn? NRR captures expansion, which logo churn ignores entirely. Above 100% means your existing base compounds without new customers; best-in-class is above 120%. It’s the truest single read on whether your business grows itself.
Can failed payments inflate my churn? Yes — that’s involuntary churn, and it’s recoverable. Recovery rates vary: Stripe cites around 55%, and independent data is often lower, so confirm against your own numbers. It’s the one churn lever you can pull with dunning and Revenue Recovery.
The metrics that earn a place on your dashboard
Pin four numbers and let the rest fall away. MRR with its components, so you know why it moved. Churn in the right flavor — gross revenue churn to see the leak, net to see the truth. LTV with a target of at least 3:1 against CAC. And NRR, where crossing 100% means your base compounds on its own.
One discipline holds the whole thing together: never confuse cash, recognized revenue, and MRR. Normalize annual plans. Exclude one-time fees. If you only enforce one rule, enforce that one.
Then act. Configure Billing Analytics conservatively this week. Write one Sigma query for MRR by plan so you stop guessing. And once your numbers are honest, go move the one you actually can — recovering involuntary churn from failed payments. That’s where the honest metrics turn into recovered revenue, and it’s the same unit economics that justify the build in the first place.