← All posts
·6 min read

How to Calculate MRR from Stripe (The Right Way)

Most founders either ignore MRR or calculate it wrong. Here's exactly how to pull accurate monthly recurring revenue from Stripe — and the common mistakes that make the number useless.

Monthly recurring revenue is the number that tells you whether your SaaS is actually growing. But most early-stage founders either don't track it at all, or they calculate it in a way that makes it meaningless.

This post covers what MRR actually is, the mistakes that inflate or deflate it, and how to calculate it correctly from your Stripe data.

What MRR actually means

MRR is the predictable revenue you can count on collecting each month from active subscriptions. The key word is predictable. It excludes one-time payments, setup fees, and anything that doesn't recur on a regular schedule.

If you have 10 customers each paying $50/month, your MRR is $500. Simple.

It gets complicated when you have:

  • Annual plans
  • Trials that haven't converted
  • Paused subscriptions
  • Refunded charges
  • Customers on different billing cycles

The most common MRR mistakes

1. Counting annual plans at face value

If a customer pays $600 upfront for a year, your MRR from that customer is $50 — not $600. You annualize it by dividing by 12.

Counting the full $600 in the month they pay makes your MRR look great in January and terrible every other month.

2. Including one-time charges

Setup fees, professional services, one-off add-ons — none of these count toward MRR. They're revenue, but they're not recurring revenue. Mixing them in makes your MRR number unreliable as a growth indicator.

3. Counting trials as MRR

A customer on a free trial is not paying you anything. Including them inflates your MRR until they convert or churn, at which point your MRR "drops" even though nothing actually changed in your business.

4. Not accounting for churn

If a customer cancels mid-month, you need to decide on a convention and stick to it. Most tools pro-rate the cancelled period out of MRR. What you shouldn't do is leave cancelled subscriptions in the count because they haven't fully expired yet.

How to calculate MRR from Stripe manually

If you want to do this yourself:

  1. Pull all active subscriptions from Stripe (status = active or trialing if you count trials — most don't).

  2. Normalize each subscription to a monthly amount:

    • Monthly plan: use the amount as-is
    • Annual plan: divide by 12
    • Weekly plan: multiply by 4.33 (weeks per month)
    • Quarterly plan: divide by 3
  3. Sum the normalized amounts. That's your MRR.

  4. Subtract any pending refunds or disputes if you want a conservative number.

You can do this by exporting from Stripe Dashboard → Billing → Subscriptions → Export CSV, then running the calculation in a spreadsheet.

What the Stripe dashboard gets wrong

Stripe shows you revenue figures, but they're not MRR. The "Monthly revenue" figure in your Stripe dashboard is cash collected, not normalized recurring revenue. Annual plan payments show as full amounts in the month collected. One-time charges are included.

This makes Stripe's built-in charts useful for cash flow, not for understanding subscription growth.

Breaking MRR into components

Once you have your base MRR, the more useful number is how it's changing:

  • New MRR — revenue from customers who signed up this month
  • Expansion MRR — revenue from existing customers who upgraded
  • Churned MRR — revenue lost from cancellations
  • Contraction MRR — revenue lost from downgrades
  • Net new MRR — New + Expansion − Churned − Contraction

Net new MRR is the single best indicator of business momentum. If it's positive, you're growing. If it's negative, you're shrinking — regardless of what your absolute MRR number looks like.

What's a healthy MRR growth rate?

For early-stage SaaS (under $10k MRR), 10–20% month-over-month growth is strong. Once you're above $10k MRR, 5–10% monthly is more realistic and still excellent on an annual basis.

These benchmarks are rough — a bootstrapped solo founder and a VC-backed team with a growth budget operate in completely different contexts. What matters more than hitting a benchmark is that your MRR growth is consistent, and that your churned MRR isn't eating into your new MRR.

Doing this automatically

Pulling the data manually works for a sanity check, but you'll want automated tracking as you grow. Recalculating from a Stripe CSV every week gets old fast.

Tools like Metricsly connect directly to your Stripe account via read-only OAuth and compute your MRR, churn rate, LTV, new MRR, and net new MRR automatically — updated daily. No spreadsheet, no manual export, no math.

The calculation logic above is exactly what runs under the hood.

Skip the spreadsheet

Metricsly pulls your MRR, churn rate, LTV and 12-month history directly from Stripe — automatically, every day. 7-day free trial, no credit card required.

Start free trial →