Unit economics
Reconcile new, expansion, resurrected, contracted and churned MRR.
- Category
- Unit economics
- Signup
- None
- Your data
- Stays in your browser
- Also in
- Claude, via MCP
How do you build an MRR bridge?
Start with opening MRR, add new, expansion and reactivated (resurrected) MRR, then subtract contraction and churned MRR to reach closing MRR. Net new MRR is the sum of the five movements. Growth rate = net new ÷ opening MRR, and gross MRR churn = (contraction + churn) ÷ opening MRR. The closing figure must match your billing system.
MRR moved from $420,000 to $448,000, $28,000 net new (6.7%). New and expansion are outpacing churn. Watch the 7.1% gross churn line, it’s the leak that caps this number.
The MRR bridge is the cleanest growth narrative for a board: it shows not just that MRR grew, but exactly which of the five movements drove it.
About this calculator
A single "MRR went up" or "MRR went down" statement tells a board almost nothing about why. This planner reconciles all five MRR movements, new, expansion, resurrected, contraction and churn, into a clean bridge from starting to ending MRR, so the growth story is explicit about which lever actually drove the change.
How to use it
- Enter your starting MRR.
- Enter new MRR (from new customers), expansion MRR (upsells to existing customers), and resurrected MRR (customers who came back after churning).
- Enter contraction MRR (downgrades from existing customers) and churned MRR (customers who canceled).
- Read net new MRR, ending MRR, month-over-month growth, and gross MRR churn.
Methodology
Net new MRR is new plus expansion plus resurrected, minus contraction and churned, all five movements combined into a single figure. Ending MRR is starting MRR plus net new MRR.
Month-over-month growth is net new MRR divided by starting MRR, expressed as a percentage, the standard growth-rate view of the same bridge. Gross MRR churn is contraction plus churned MRR, divided by starting MRR, isolating just the loss side of the bridge regardless of how much new business offset it.
The tool tones ending results by whether net new MRR is positive or negative, and separately flags gross MRR churn as healthy at 1% a month or less, a warning up to 3% and high above that. For context, SaaS Capital's 2025 retention benchmarks imply median gross revenue churn of roughly 0.4% to 0.9% a month depending on contract size, so 3% a month (about 31% a year) is well above typical.
This bridge covers a single period end to end, it doesn't track trend across multiple months on its own. Run it each period and compare the five components month over month to see whether, for instance, churn is worsening even while new MRR growth masks it in the net figure.
MRR bridge formulas this planner uses
Net new MRR = New + Expansion + Resurrected − Contraction − Churned Ending MRR = Starting MRR + Net new MRR MoM growth % = Net new MRR ÷ Starting MRR × 100 Gross MRR churn % = (Contraction + Churned) ÷ Starting MRR × 100 Quick ratio (by hand) = (New + Expansion + Resurrected) ÷ (Contraction + Churned)
- New MRR
- MRR from customers paying for the first time in the period.
- Expansion MRR
- Increases from existing customers: upgrades, extra seats, add-ons, and discounts expiring.
- Resurrected MRR
- MRR from customers who had churned and started paying again (ChartMogul and Stripe call this reactivation).
- Contraction MRR
- Decreases from customers who stay: downgrades, fewer seats, partial cancellations, new discounts.
- Churned MRR
- MRR lost when a customer cancels their last subscription or stops paying.
Definitions should match your billing or analytics tool so the bridge reconciles. ChartMogul classifies a reduction from a discount as contraction and does not create movements from currency changes. Stripe Billing analytics excludes taxes, free plans and metered usage from MRR, normalises annual plans to a monthly value, and adds an FX adjustment line to MRR growth. This planner has no FX line, so for multi-currency revenue either convert at a fixed rate or treat the FX effect as a sixth movement by hand. ChartMogul's net MRR churn rate nets expansion and reactivation against churn and contraction; gross MRR churn here does not, and includes contraction; Stripe's "churned revenue" metric is defined the same way.
Worked example: a SaaS company at ₹40 lakh MRR
An Indian B2B SaaS company opens the month at ₹40 lakh MRR. During the month it adds ₹3.6 lakh from new customers, ₹1.4 lakh from upgrades and ₹30,000 from returning customers. It loses ₹40,000 to downgrades and ₹1 lakh to cancellations.
- Net new MRR = 3.6 + 1.4 + 0.3 − 0.4 − 1.0 = ₹3.9 lakh
- Ending MRR = ₹40 lakh + ₹3.9 lakh = ₹43.9 lakh
- MoM growth = 3.9 ÷ 40 = 9.75%, shown as 9.8%
- Gross MRR churn = (0.4 + 1.0) ÷ 40 = 3.5%, above the tool's 3% line, so it shows as a warning
- Annualised gross churn at that monthly rate = 1 − (1 − 0.035)^12 ≈ 34.8% of opening MRR
- Quick ratio (by hand) = (3.6 + 1.4 + 0.3) ÷ (0.4 + 1.0) = 5.3 ÷ 1.4 ≈ 3.8
- Existing-customer view: expansion ₹1.4 lakh exactly offsets losses of ₹1.4 lakh, so revenue from the opening base is flat
Growth of 9.8% in a month is strong, but the bridge shows it comes entirely from new logos: the existing base is flat because expansion only just covers losses. At 3.5% monthly gross churn, about a third of opening MRR would leak away over a year if nothing changed. The board story is "acquisition is working, retention needs work", which the closing number alone hides. The SaaS quick ratio engine gives the 3.8 as a single efficiency read, and the net revenue retention forecaster projects the existing-base trend.
Median annual gross revenue retention by ACV, with the monthly gross churn it implies
| ACV | Median GRR (annual) | Median NRR (annual) | Implied average monthly gross MRR churn |
|---|---|---|---|
| Less than $12k | 90% | 98% | 0.87% |
| $12k–$25k | 91% | 103% | 0.78% |
| $25k–$50k | 91% | 102% | 0.78% |
| $50k–$100k | 90% | 104% | 0.87% |
| $100k–$250k | 91% | 102% | 0.78% |
| More than $250k | 95% | 106% | 0.43% |
What does a healthy MRR bridge look like?
Look at the shape of the bridge, not just the closing number:
- Gross MRR churn well below new MRR. If losses take more than half of what new sales add, growth depends on acquisition spend that has to keep rising.
- Expansion that covers losses. When expansion plus resurrected MRR exceeds contraction plus churn, the existing base grows on its own, which is what NRR above 100% means.
- Monthly gross churn in line with your segment. In SaaS Capital's 2025 data, median annual GRR of 90% to 95% across ACV bands works out to roughly 0.4% to 0.9% a month. This planner's 3% "good" line is far looser than that; 3% a month is about 31% of MRR lost in a year.
A decision rule: if gross MRR churn has risen for three months in a row, put retention ahead of new acquisition spend even if net new MRR still looks fine. The churn cohort visualiser shows whether newer cohorts are the cause, and the marketing board report template shows how to present the bridge.
MRR bridges in India vs the US
Exclude GST from every movement, as Stripe does with taxes, or MRR is overstated by the tax rate. Failed UPI AutoPay mandates and card renewals can show up as churn followed by resurrection a few days later; decide whether a recovered payment within a grace period counts as churn at all, and apply the rule every month. Indian SaaS companies billing US customers in dollars should hold the exchange rate fixed for the bridge and report FX separately. If billing data is spread across Razorpay, a CRM and spreadsheets, a RevOps audit is the usual first step to a bridge that reconciles.
US SaaS companies on annual contracts should normalise annual invoices to monthly MRR (annual value ÷ 12), as Stripe does, so a renewal does not show as a spike. Churn on annual contracts lands at renewal dates, so monthly gross churn can look lumpy; review the bridge on a trailing three-month basis as well as monthly. Investors usually ask for the bridge alongside NRR and GRR, so keep the definitions identical across all three. For SaaS revenue teams, see the RevOps agency for B2B SaaS page.
Common MRR bridge mistakes
- Counting one-off fees, implementation charges or usage overages as new MRR.
- Recording an annual invoice as twelve months of MRR in the month it is billed.
- Booking a customer who cancels one of several subscriptions as churn instead of contraction.
- Counting returning customers as new MRR, which overstates acquisition and hides win-back results.
- Letting exchange-rate changes appear as expansion or contraction for foreign-currency customers.
- Not reconciling ending MRR with the billing system, so the bridge drifts from reality month by month.
Sources
- Understanding MRR movements, ChartMogul Help Center. Accessed 2026-10-18.
- Chart: Net MRR Churn Rate, ChartMogul Help Center. Accessed 2026-10-18.
- Billing analytics, Stripe Docs. Accessed 2026-10-18.
- 2025 B2B SaaS Retention Benchmarks (Research Brief 32), SaaS Capital. Accessed 2026-10-18.
FAQ
Contraction is revenue lost from customers who stayed but downgraded, fewer seats or a lower tier. Churned MRR is revenue lost from customers who canceled entirely. Keeping them separate matters because they call for very different fixes, contraction often points to a packaging or usage problem, churn to a fundamental value or fit problem.
Resurrected MRR is revenue from customers who previously churned and came back. It's tracked separately from new MRR because win-back customers behave differently, they already know the product, so their retention and expansion patterns are usually better studied on their own than lumped in with brand-new logos.
Net new MRR can look healthy purely because new business volume is high, masking a serious churn problem underneath. Gross MRR churn isolates the loss side on its own, so you can tell whether growth is durable (low churn, strong new business) or fragile (high churn, papered over by even higher new business).
The quick ratio compresses the same five movements into a single ratio (gained ÷ lost) for a fast efficiency read. This bridge planner keeps all five movements visible individually and shows the dollar-for-dollar reconciliation from starting to ending MRR, better suited for board reporting where the "why" behind the number matters.
They are the same analysis presented differently. A bridge is usually a table from opening to closing MRR; a waterfall chart shows each movement as a bar rising or falling from the opening value. Both use the same five movements and must reconcile to the same closing figure.
Stripe lets you choose, and calls subtracting discounts the more conservative approach; permanent recurring discounts are always subtracted. ChartMogul treats a new discount as contraction and an expiring one as expansion. Pick one policy, document it and keep it consistent.
Net MRR churn = (contraction + churned − expansion − reactivation) ÷ starting MRR, which is how ChartMogul defines it. A negative result means expansion and win-backs more than cover losses, so the existing base is growing. In the worked example above, net MRR churn is slightly negative once resurrected MRR is included.
No. New MRR comes from first-time paying customers; resurrected or reactivated MRR comes from customers who paid before, churned and returned. Stripe excludes reactivated customers from its new subscriber count for the same reason. Keeping them apart shows whether acquisition or win-back is driving growth.
Monthly, at month end, reconciled to billing. Review each movement as a trend over at least six months, because a single month can be distorted by one large customer, an annual renewal date or a pricing change.
Numbers looking off?
If the model says one thing and the pipeline says another, that gap is usually where the revenue is. A 30-minute call finds it.
It starts with a 30-minute call. Pick a time below.