The single number that tells you whether your subscription business is alive, growing, or quietly bleeding out.
Research-based overview. This article synthesizes public documentation, pricing pages, and user reports. How we research.
MRR is the lingua franca of subscription businesses. Investors ask for it. Acquirers underwrite from it. Indie founders use it as a single-number proxy for "am I still in the game?" And yet very few founders calculate it the same way, which is why two SaaS companies with the same Stripe dashboard can quote MRR figures that differ by 30 percent.
The base formula is intentionally simple. Add up the monthly value of every active subscription, normalize annual plans, and ignore everything that is not recurring.
If you have ten customers paying $29 per month and three customers on an annual plan of $290, your MRR is:
Stripe, ChartMogul, and Baremetrics all compute MRR roughly this way, but they differ on edge cases: how to treat coupons, partial-month subscriptions, paused accounts, and refunds. Stripe's own definition is documented at stripe.com/docs/billing/subscriptions/metrics, and it is worth reading once because it explains why your dashboard number may not match your gut count.
Total MRR is a vanity number. The variants below are what tell you what is happening underneath the headline.
| Variant | What it captures | Why it matters |
|---|---|---|
| New MRR | Revenue from brand-new customers acquired this month | Top-of-funnel health and acquisition channel performance |
| Expansion MRR | Existing customers upgrading plans, adding seats, or adding paid add-ons | Whether your product expands with the customer; the leading indicator of negative churn |
| Reactivation MRR | Customers who churned previously and came back | Whether your win-back campaigns and post-cancel emails actually work |
| Contraction MRR | Customers downgrading plans or removing seats but staying as customers | Quiet warning sign — precedes full churn by 30–90 days |
| Churned MRR | Revenue lost from cancellations and failed payments not recovered | The single most predictive metric for whether your SaaS will compound |
| Net New MRR | (New + Expansion + Reactivation) − (Contraction + Churned) | The headline number — this is the one you actually compound from |
If you remember nothing else: net new MRR is the only number that compounds. Two thousand dollars of new MRR is meaningless if you also lost $1,800 to churn. Chart all six lines on the same graph for the past 12 months and you will see truths your Stripe dashboard hides.
Total revenue is what hits your bank account. MRR is what predicts what will hit your bank account next month, and the month after, without you doing anything new. Those are different questions, and conflating them is how founders end up surprised by a bad quarter.
A consulting business with $30,000 in revenue this month has $30,000 in revenue. A SaaS business with $30,000 in MRR has roughly $30,000 next month, $30,000 the month after, plus growth, plus or minus churn. The latter is an asset; the former is a job. This is why SaaS multiples on acquisition are typically 3–6× ARR (annual recurring revenue, just MRR × 12) while service businesses sell for 0.5–1.5× revenue, per Acquire.com and Flippa public listings.
If you are still picking your stack, our tools that matter at $1k MRR guide breaks down which of these tools are worth paying for at each revenue threshold and which you can skip until later.
I have audited the metrics of dozens of bootstrapped SaaS founders. The same five mistakes appear over and over.
If a customer pays $1,200 for an annual plan, your MRR went up by $100, not $1,200. Booking the full $1,200 as one month makes that month look great and the next 11 look terrible.
Stripe says your MRR is unchanged when a card fails because the subscription is technically still active. In practice, around 30–40 percent of failed cards never recover without dunning, per Baremetrics' published benchmarks. Track involuntary churn separately or you will be lying to yourself.
If you sell a $99 plan with a 50% lifetime discount, the customer's MRR contribution is $49.50, not $99. Track gross MRR (sticker price) and net MRR (after discount), and use the second when forecasting.
An AppSumo lifetime deal is a one-time payment with ongoing service costs. Some founders amortize the LTD price over a 36-month assumed life and call it MRR. This is creative accounting at best. Track LTDs in a separate revenue line.
If your pricing has a $50 base plus metered API calls, only the $50 is recurring. The metered portion is best tracked as expansion or as a separate "usage revenue" line.
You do not need a dedicated analytics tool until you have around $5k MRR. Below that, a Stripe dashboard plus a Google Sheet covers everything you need. Above it, the math gets fiddly enough that paying $50–100 per month for purpose-built tracking is worth it.
For the broader stack — not just analytics but auth, billing, hosting — we maintain an opinionated breakdown of the best AI tools for solo SaaS founders that includes which analytics layer pairs well with each billing setup.
From watching hundreds of indie SaaS journeys, certain MRR levels behave as psychological and operational inflection points:
Looking at where to focus next? Our list of micro-SaaS examples profiles real businesses at each of these thresholds and breaks down what changed between them.
No, but they are mechanically related. ARR (annual recurring revenue) is just MRR multiplied by 12. ARR is more common in B2B/enterprise SaaS where contracts are annual; MRR is more common in SMB and indie SaaS where customers pay monthly. Use whichever matches your customer base.
No. A free trial is not yet revenue. You should track trial conversion rate as a separate metric, but until a card is charged successfully, it does not contribute to MRR. ChartMogul, Stripe, and Baremetrics all agree on this.
Use the actual amount they pay. If a $99/mo plan is discounted to $49/mo, that customer's MRR contribution is $49. When the discount expires, MRR will jump — that increase is expansion MRR.
Treat a pause as contraction MRR (revenue temporarily reduced) if the customer is still in your system, or as churn if pauses tend to convert to cancellations in your data. Watch your historical pause-to-cancel rate to decide.
For bootstrapped, solo-founder SaaS, 10–20% month-over-month growth at the $0–$10k MRR stage is strong. Growth slows as the base grows. By $50k MRR, sustaining 7–10% MoM is excellent. Compare to Stripe Atlas's published benchmarks for context.
Yes — this is the most important thing to understand about subscription metrics. If churned MRR plus contraction MRR exceeds new MRR plus expansion MRR, your net new MRR is negative even though new logos are coming in. This is called the "leaky bucket" problem.
Bookings is the dollar value of contracts signed in a period (including future, multi-year value). MRR is the normalized monthly run rate of currently-active subscriptions. A $36,000 three-year contract is $36,000 in bookings but $1,000 in MRR.
MRR is one number that pretends to summarize a subscription business. The honest version is six numbers: new, expansion, reactivation, contraction, churned, and net new. Track all six, plot them on the same chart, and you will see your business clearly. Track only the headline and you will be perpetually surprised.
The stack, prompts, pricing, and mistakes to avoid — for solo founders building with AI.