·9 min read

How to Calculate MRR (with Real Examples)

Knowing how to calculate MRR correctly is one of those skills that seems trivial until you actually try it with a real customer base. Monthly Recurring Revenue looks like simple arithmetic, and for a single monthly subscriber it is. But once annual plans, mid-cycle upgrades, discounts, and cancellations enter the picture, the naive calculation quietly breaks. This guide walks through how to calculate MRR the right way, using concrete numbers at every step.

We will start with the simplest case and build up to a realistic mixed customer base, then cover the edge cases that trip most people up.

The Core MRR Calculation

The most reliable way to calculate MRR is to sum the normalized monthly value of every active subscription:

MRR = the sum of each subscription’s monthly value

For a quick estimate you can also use:

MRR = Number of customers × Average Revenue Per Account (ARPA)

Both give the same answer when your pricing is uniform. The subscription-sum method is more accurate once pricing varies, which it always does in practice. If you need the conceptual background before diving into the math, our overview of what MRR is is a good starting point.

Example 1: A Simple Monthly Base

Suppose you have three customers, all on monthly plans:

  • Customer A pays $50 per month
  • Customer B pays $100 per month
  • Customer C pays $150 per month

Your MRR is simply $50 + $100 + $150 = $300. No normalization needed, because everyone already pays monthly. This is the clean case, and unfortunately it rarely lasts.

Example 2: Normalizing Annual Plans

Now add a fourth customer who pays $1,200 per year. The single biggest mistake in calculating MRR is recording that $1,200 in the month it was billed. Instead, divide the annual price by twelve to get the monthly equivalent:

$1,200 ÷ 12 = $100 per month

So Customer D contributes $100 to MRR every month for the life of the contract. Your total MRR is now $300 + $100 = $400. The cash arrived all at once, but the MRR is spread evenly, which is exactly what makes MRR a smooth, comparable metric.

The Same Rule for Any Interval

Normalize every billing interval to a month. A quarterly plan divides by three; a semi-annual plan divides by six. A $600 quarterly plan is $200 of MRR. Apply the rule consistently and every subscription becomes comparable.

Try StripeReport Free

Get your Stripe revenue every morning

Yesterday’s revenue, MRR, churn, and today’s renewals, delivered to your inbox and Slack daily. Plus a full revenue dashboard. 3-day free trial.

Start Your Free Trial →

Example 3: Handling Discounts and Coupons

MRR should always reflect what the customer actually pays, not the list price. Say Customer B, on the $100 plan, has a permanent 25 percent discount. Their real MRR contribution is:

$100 × (1 − 0.25) = $75 per month

Recalculating our base with the discount applied, MRR becomes $50 + $75 + $150 + $100 = $375. Ignoring the discount would overstate MRR by $25, and those small overstatements add up quickly across a real customer base.

Example 4: Upgrades, Downgrades, and Churn

MRR is a snapshot, but the interesting part is how it changes month to month. Suppose over one month:

  • Customer A upgrades from $50 to $80 (expansion of $30)
  • Customer C downgrades from $150 to $120 (contraction of $30)
  • Customer D cancels (churn of $100)
  • A new Customer E signs up at $90 (new MRR of $90)

Starting from the $375 base above, the calculation is:

$375 + $90 (new) + $30 (expansion) − $30 (contraction) − $100 (churn) = $365

Ending MRR is $365. Note the crucial detail on the upgrade: expansion is the $30 increase, not Customer A’s full new $80. The original $50 was already in the base, so counting the whole $80 would double-count it. This connects directly to your churn rate, since the $100 cancellation is exactly the churned MRR that feeds that calculation.

Edge Cases That Break MRR Calculations

Real Stripe data introduces wrinkles that the tidy examples above do not. Watch for these.

  • Proration. When a customer upgrades mid-cycle, Stripe prorates the charge. That one-time proration amount is not MRR; only the new recurring rate counts toward MRR going forward.
  • One-time fees. Setup charges, implementation fees, and usage overages are not recurring and must be excluded entirely.
  • Failed payments. A subscription in a failed or past due state is a judgment call. Many teams keep it in MRR briefly during dunning, then remove it if recovery fails.
  • Free trials. Trial users have not paid, so they contribute zero MRR until they convert.

Calculating Your MRR Growth Rate

Once you can calculate MRR for a single month, the next step is measuring how it changes. MRR growth rate is the percentage change from one month to the next:

MRR growth rate = (Ending MRR − Starting MRR) ÷ Starting MRR × 100

Using our worked example, MRR moved from a $375 base to $365, so the growth rate is ($365 − $375) ÷ $375 × 100, which equals about −2.7 percent. That is a small contraction for the month, driven by the churned customer outweighing the new signup and net expansion. Tracking this rate month over month is how you tell whether your business is genuinely accelerating or just treading water.

Net New MRR Tells the Fuller Story

Alongside the growth rate, calculate Net New MRR, which is new plus expansion plus reactivation, minus contraction and churn. In our example that is $90 + $30 − $30 − $100 = −$10. Seeing the components laid out this way immediately shows that churn, not weak acquisition, was the problem this month, a level of insight the single MRR total can never provide.

Turning MRR Into ARR

Once you can calculate MRR, annualizing it is trivial. Annual Recurring Revenue is simply:

ARR = MRR × 12

Our $365 MRR base equals $4,380 in ARR. The two metrics describe the same engine at different time scales, and which you lead with depends on your billing model and stage. For the full comparison, see what ARR is.

Try StripeReport Free

Get your Stripe revenue every morning

Yesterday’s revenue, MRR, churn, and today’s renewals, delivered to your inbox and Slack daily. Plus a full revenue dashboard. 3-day free trial.

Start Your Free Trial →

Calculating MRR From Stripe Automatically

Working through these examples by hand is the best way to understand MRR, but doing it every month across hundreds of live subscriptions is a different story. Proration events, mixed billing intervals, coupons, and the subtle difference between a downgrade and a cancellation make manual MRR fragile exactly as your business gets more complex.

StripeReport connects to your Stripe account with a read-only key and calculates MRR for you, correctly normalizing every plan, applying discounts, and separating new, expansion, contraction, and churn. You get a daily email and Slack report plus related metrics like ARR and ARPU. If you want to build the calculation yourself first, our detailed guide to calculating MRR from Stripe walks through querying the raw subscription data.

Key Takeaways

  • Calculate MRR by summing the normalized monthly value of every active subscription, not by recording payments as they land.
  • Always normalize annual and quarterly plans to their monthly equivalent, and reflect discounts at the price customers actually pay.
  • On upgrades, count only the increase as expansion; the original amount is already in the base.
  • Exclude one-time fees, proration amounts, and trials from MRR; handle failed payments deliberately.
  • For a live customer base, an automated tool like StripeReport keeps the MRR calculation accurate and consistent.