Subscriptions & retention14 min readUpdated October 14, 2026

How to Calculate MRR: The Formula, What Counts and Worked Examples

The MRR formula, what to leave out (taxes, shipping, one-time fees), how to normalize annual and 4-weekly plans, and new, expansion and churn MRR.

Article summary

TL;DR

To calculate MRR, convert every active subscription to its monthly value and add them up. A monthly plan counts at its price, an annual plan at its price divided by 12. Leave out taxes, shipping, one-time charges and trials. 100 subscribers at 100 USD a month plus 50 at 600 USD a year make 12,500 USD of MRR.

  • MRR = the sum of the monthly-normalized value of all active subscriptions. Customers × average revenue per customer is a shortcut that only works when everyone pays the same way.
  • Normalize every billing interval to a month: annual ÷ 12, quarterly ÷ 3, every 4 weeks × 13 ÷ 12. An every-4-weeks plan counted as monthly understates MRR by about 7.7%.
  • Taxes, one-time charges, setup fees, trials and metered usage stay out in Stripe, Chargebee and Recurly. Discounts, failed renewals and pauses depend on settings, so write down your choices.
  • Explain each month's change with five movements: new, expansion, reactivation, contraction and churned MRR. Starting MRR plus the movements must equal ending MRR.
  • ARR is MRR × 12. MRR is not revenue in your accounts, not cash collected and not bookings.
Want to go further? AskChatGPTClaudePerplexityGrok
On this page

MRR (monthly recurring revenue) is the monthly value of the subscriptions you have right now. The formula is short, but every billing tool makes choices about what counts: discounts, failed payments, pauses, cancellations scheduled for later. This guide gives the formula, shows how Stripe, Chargebee and Recurly treat each case, and works the numbers through for a subscription ecommerce brand.

What is MRR?

Monthly recurring revenue is the predictable, recurring part of your income, expressed per month. Stripe defines it as the sum of the monthly-normalized value of all active and past-due subscriptions.1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue) Chargebee calls it the predictable recurring revenue earned from subscriptions in a specific period.3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)

MRR is a management metric, not an accounting figure. Recurly says it plainly: MRR isn't equivalent to GAAP revenue.5Recurly Docs, Monthly recurring revenue Four numbers get confused with it:

  1. MRR

    The monthly value of the subscriptions active today. A 600 USD annual plan counts as 50 USD every month.

  2. Revenue

    What your accounts recognize once the service or goods are delivered. See revenue recognition and deferred revenue.

  3. Cash collected

    What reached your bank: the full 600 USD in the month the annual plan was paid, plus taxes, shipping and one-off orders.

  4. Bookings

    The value of contracts signed. The annual plan is a 600 USD booking and a 50 USD addition to MRR.

The MRR formula

MRR = sum of the monthly value of every active subscription

The monthly value is the recurring price, converted to a month, minus recurring discounts, without taxes. When every customer pays the same monthly price, the formula becomes a shortcut: number of paying customers × average monthly revenue per customer. With several plans, calculate each plan and add them up. Stripe's documentation gives this example:1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)

  1. List the plans. Plan A costs 100 USD per month. Plan B costs 600 USD per year.
  2. Count active subscribers on each plan. 100 on Plan A, 50 on Plan B.
  3. Convert each price to a month. Plan A: 100 USD. Plan B: 600 ÷ 12 = 50 USD.
  4. Multiply and add. (100 × 100 USD) + (50 × 50 USD) = 10,000 + 2,500 = 12,500 USD of MRR.

Example from Stripe's Billing analytics documentation.

The customers × average shortcut breaks as soon as people pay on different intervals or at different prices: you need the average per customer, and computing it already requires the per-subscription monthly values. Stripe works it the other way round: average revenue per user is total MRR divided by active subscribers.1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)

Normalizing billing intervals

Every interval has to be brought back to one month. Recurly normalizes all charges to a monthly value; Chargebee gives the example of a 1,200 USD annual payment, normalized as 100 USD per month.5Recurly Docs, Monthly recurring revenue3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics) The conversion is arithmetic:

Billing intervalMonthly valueExample: 30 USD per cycle
MonthlyPrice30.00 USD
Every 2 monthsPrice ÷ 215.00 USD
QuarterlyPrice ÷ 310.00 USD
Every 6 monthsPrice ÷ 65.00 USD
AnnualPrice ÷ 122.50 USD
WeeklyPrice × 52 ÷ 12130.00 USD
Every 2 weeksPrice × 26 ÷ 1265.00 USD
Every 4 weeksPrice × 13 ÷ 1232.50 USD
Every 6 weeksPrice × 52 ÷ 6 ÷ 1221.67 USD

The every-4-weeks row is the one that catches ecommerce brands. Four weeks is not a month: a year holds 13 four-week cycles, not 12. Count a 30 USD every-4-weeks plan as 30 USD of MRR and you understate it by about 7.7%.

What counts in MRR, and what doesn't

The three big billing platforms agree on the core and differ at the edges. Here is what their documentation says, item by item:

ItemStripe BillingChargebeeRecurlyOur rule
Recurring plan price and recurring add-onsIncluded1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Included4Chargebee Docs, What is included/excluded in the MRR calculationIncluded5Recurly Docs, Monthly recurring revenueInclude
TaxesExcluded1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Excluded4Chargebee Docs, What is included/excluded in the MRR calculationExcluded5Recurly Docs, Monthly recurring revenueExclude
One-time charges, setup feesExcluded: one-off invoice items don't predict future revenue2Stripe Support, Understanding Monthly Recurring Revenue (MRR)Excluded; non-recurring add-ons only if you turn them on4Chargebee Docs, What is included/excluded in the MRR calculationExcluded if the line has no start and end date5Recurly Docs, Monthly recurring revenueExclude
Recurring discountsYour setting; permanent recurring discounts always subtracted1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Recurring coupons subtracted3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)Coupon discounts: your setting5Recurly Docs, Monthly recurring revenueSubtract
One-time discounts (first order)Your setting1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Excluded unless configured3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)Your setting5Recurly Docs, Monthly recurring revenueLeave out of MRR
Metered or usage-based chargesExcluded1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Your setting4Chargebee Docs, What is included/excluded in the MRR calculationExcluded5Recurly Docs, Monthly recurring revenueExclude, track apart
Free trialsExcluded1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Excluded4Chargebee Docs, What is included/excluded in the MRR calculationNot documentedExclude until the first paid cycle
Free plansExcluded1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)Counted as Free to Paid MRR when they convert3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)Not documentedExclude
ShippingNot documentedNot documentedNot documentedExclude, or report on its own line
One-off refundsNoEffect unless the plan price changed2Stripe Support, Understanding Monthly Recurring Revenue (MRR)Not documentedRefunds of a subscription amount included5Recurly Docs, Monthly recurring revenueNoEffect

Shipping is your call, so make it once

None of the three platforms documents how shipping fees affect MRR. Shipping charged to the customer mostly pays the carrier, so including it makes MRR move with delivery costs and free-shipping promotions. Our recommendation: keep it out of MRR, or show it as a separate line, and never switch between the two from one month to the next.

Discounts deserve a second look. Stripe calls subtracting them "a more conservative approach" because it reflects what customers actually pay.1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue) A subscribe-and-save price that never expires is a permanent recurring discount: Stripe always subtracts it, and so should you. A 25% off first order is one-time: it changes one invoice, not the monthly run rate.

When a subscription enters and leaves MRR

The status of a subscription decides whether it counts. The sequence below follows Stripe's statuses; Chargebee's are close.

Fig. 1From trial to churn: what counts

  1. TrialingNot in MRR
  2. ActiveIn MRR, even if the first invoice is unpaid
  3. Past dueRenewal failed, still in MRR while retries run
  4. Unpaid or canceledOut of MRR: churned MRR

MRR follows the status, not the payment

Simplified sequence based on Stripe Billing statuses. Chargebee keeps subscriptions in dunning as Active until the dunning period ends.

The rules behind each step:

So the same customer who clicks "cancel" on the 5th, effective on the 30th, leaves MRR on the 5th in Stripe and on the 30th in Chargebee. Neither is wrong. If you compare a dashboard with a spreadsheet, check this rule first.

MRR is also measured at a point in time. Stripe's monthly report gives the MRR of each subscriber at the end of each month, and Recurly's monthly view shows data for the last day of the period.1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)5Recurly Docs, Monthly recurring revenue Pick the same snapshot day every month: the last day is the usual choice.

The MRR components: new, expansion, contraction, churn, reactivation

Total MRR tells you where you are. The components tell you why it moved. Billing tools split the change into five movements:

ComponentWhat creates itEffect
New MRRA first paid subscription, including a trial that converts+
Expansion MRRAn existing subscriber pays more: higher plan, larger quantity, recurring add-on, smaller discount+
Reactivation MRRA former subscriber who had churned starts paying again+
Contraction MRRAn existing subscriber pays less, but more than zero: cheaper plan, fewer items, longer interval−
Churned MRRA subscription is canceled, ends unpaid, or drops to zero−

These definitions follow Stripe.2Stripe Support, Understanding Monthly Recurring Revenue (MRR)1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue) Chargebee groups things differently: it puts reactivation and free-to-paid inside expansion MRR, and adds pause MRR to downgrades and cancellations to form gross MRR churn.3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics) Stripe adds a sixth line, an FX adjustment, when subscriptions in other currencies change value against your reporting currency; Chargebee shows exchange-rate effects as their own category too.1Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)

The formulas:

Net new MRR = new MRR + expansion MRR + reactivation MRR − contraction MRR − churned MRR

Ending MRR = starting MRR + net new MRR (± FX adjustment)

MRR growth rate = net new MRR ÷ starting MRR × 100

Here is one month for a subscription brand, worked through. Illustrative example: on March 1, MRR is 40,000 USD. During March, 120 new subscribers add 4,200 USD. Existing subscribers move to larger boxes for 600 USD. Fourteen former subscribers return for 350 USD. Others switch to smaller boxes or longer intervals for 450 USD. Cancellations and renewals that ended unpaid remove 2,100 USD.

Fig. 2One month of MRR movements

LineAmount
Starting MRR, March 140,000 USD
+ New MRR4,200 USD
+ Expansion MRR600 USD
+ Reactivation MRR350 USD
− Contraction MRR450 USD
− Churned MRR2,100 USD
Ending MRR, March 3142,600 USD

Start + movements = end

Illustrative example. The numbers are invented to show the method.

2,600 USD

Net new MRR: 4,200 + 600 + 350 − 450 − 2,100

6.5%

MRR growth rate: 2,600 ÷ 40,000

511,200 USD

ARR: 42,600 × 12

The bridge is also a control. Add up the monthly value of every active subscription on March 31: if it doesn't come to 42,600 USD, some status changes weren't classified, and one of the five lines is wrong by that amount.

Two classification rules keep the components clean:

  1. Record each change once, in one category. An upgrade is expansion, not churn of the old plan plus new MRR on the new one. A returning subscriber is reactivation, not new.
  2. Use the change in run rate, not the invoice. A mid-cycle upgrade from 30 to 45 USD a month is 15 USD of expansion MRR, whatever the prorated invoice says. Stripe's MRR doesn't move with one-off refunds; Recurly, which builds MRR from invoiced charges, does count proration credits from upgrades and downgrades.2Stripe Support, Understanding Monthly Recurring Revenue (MRR)5Recurly Docs, Monthly recurring revenue

The movements feed your retention metrics. Churned and contraction MRR divided by starting MRR is gross revenue churn; the formulas and their pitfalls are in how to calculate churn rate. Comparing what the starting base kept, with and without expansion, is the subject of gross vs net retention.

Inside Tagada

Build the funnel once, route every customer to the right offer

Checkout, upsells and subscriptions on one flow, with conditions per country, order or customer.

Start free

MRR vs ARR

Annual recurring revenue is the same run rate over a year: Stripe defines ARR as MRR × 12.2Stripe Support, Understanding Monthly Recurring Revenue (MRR) In the March example, 42,600 USD of MRR is 511,200 USD of ARR.

ARR is not a forecast of next year's revenue. It assumes every current subscription keeps paying today's price for twelve months, with no churn and no new customers. For a business on monthly plans that churns a few percent a month, the next twelve months will look different. Use ARR when you need an annual figure, and MRR to follow what changes month to month.

Don't build ARR by adding up annual plans at their full price and monthly plans × 12 separately with different rules. Calculate MRR once, with every interval normalized, and multiply.

MRR in subscription ecommerce: boxes, skips and shipping

Billing documentation is written with software subscriptions in mind. A physical subscription raises questions the docs don't answer: boxes whose content and price change, skipped deliveries, shipping on every order, add-ons bought once. Here is one subscriber, valued by the rules above:

Subscriber · coffee boxEvery 4 weeks, subscribe-and-save price
Box price, after the permanent 10% subscriber discount
32.00 USD
Shipping per box
5.95 USD, excluded
Sales tax
Excluded
25% off the first box
One-time, excluded
Mug added once to the next box
14.00 USD, one-time, excluded
MRR
32.00 × 13 ÷ 12 = 34.67 USD

Illustrative record.

The cases that need a written rule:

SituationWhat the docs sayHow to count it
Variable box (customer swaps products, price changes)Billing tools value a subscription at its current recurring price and quantityUse the price of the next scheduled order. Price changes are expansion or contraction
Customer skips one deliveryNot covered by Stripe, Chargebee or RecurlyKeep the subscription in MRR at its normal value. Track skip rate apart: repeated skips often come before a cancellation
Customer pauses for two monthsStripe counts a pause as churn; Chargebee reports pause MRR on its own line2Stripe Support, Understanding Monthly Recurring Revenue (MRR)3Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)Take paused subscriptions out of MRR and show paused MRR next to it. A resume is reactivation
Customer changes from every 4 weeks to every 8 weeksLower monthly valueContraction MRR, even though the box price didn't change
Prepaid plan (3 boxes paid upfront, then renews)Normalized like any multi-month intervalPrice ÷ number of months covered
Gift subscription that doesn't renewChargebee keeps non-renewing subscriptions in MRR until they end4Chargebee Docs, What is included/excluded in the MRR calculationCount it while active; expect churned MRR on its end date
One-off order by a subscriberOne-time chargeExclude. It's revenue, not recurring revenue

A pause with no end date

If customers can pause indefinitely, paused MRR becomes a parking lot for cancellations. Cap the pause length, and when a pause runs past the cap, move its MRR to churned. Report paused subscribers next to MRR, so a growing pause count can't hide behind a stable total.

Repeat buyers who reorder without a subscription don't create MRR at all, however regular they are. Measure them with repeat-purchase and customer lifetime value metrics instead.

How to calculate MRR in a spreadsheet

Export your subscriptions (one row per subscription, not per customer or per invoice) and add one column that computes the monthly value.

ColumnContentFormula (row 2)
ASubscription IDsub_0412
BStatus on the snapshot dayactive
CRecurring price per cycle, after recurring discounts, without tax or shipping32.00
DInterval unitweek
EInterval count4
FMonthly value=IF(D2="week", C2*52/E2/12, IF(D2="year", C2/(12*E2), C2/E2))
GCounts in MRR?=IF(OR(B2="active", B2="past_due"), 1, 0)

Then MRR = =SUMPRODUCT(F2:F5000, G2:G5000). Row 2 gives 32 × 52 ÷ 4 ÷ 12 = 34.67 USD.

Take a snapshot on the same day each month, keep the old files, and compare two snapshots subscription by subscription to classify the movements: an ID present only in the new file is new or reactivated, an ID that dropped out is churned, an ID whose monthly value changed is expansion or contraction. If you decide that past_due subscriptions don't count, change column G and say so next to the number.

Common MRR calculation mistakes

  1. MRR jumps in the month annual plans are sold, then sagsAnnual payments are counted in full when collectedDivide every annual price by 12, every month
  2. MRR is higher than recurring sales in your processorTrials, unpaid subscriptions or one-time charges are countedFilter by status and exclude non-recurring lines
  3. MRR moves with free-shipping promotionsShipping is includedExclude shipping or show it on its own line
  4. Every-4-weeks subscribers look smaller than they areTheir price is counted as a monthly valueMultiply by 13 and divide by 12
  5. Starting MRR plus movements doesn't equal ending MRRSome status changes aren't classifiedCompare snapshots subscription by subscription
  6. Dashboard and spreadsheet disagree by a stable amountDifferent rules for discounts, past due or scheduled cancellationsAlign the settings and write them down

Three more that don't show up as a pattern:

  • Using processor payouts or invoice totals as MRR. Payouts reflect settlement timing, refunds and disputes; invoices mix recurring and one-time lines, tax and shipping. MRR comes from subscriptions, not from money movements.
  • Counting a failed renewal as churn the day it fails. Most renewals are retried. The subscription stays in MRR while it's past due and leaves it only if recovery fails. Why renewals fail, by decline code, is in subscription payment failures; the recovery process is in what is dunning.
  • Changing definitions without restating history. If you start subtracting one-time discounts in June, MRR before and after June isn't comparable. Restate past months, or mark the break on the chart.

Write your rules down in one place: snapshot day, interval conversion, discounts, past-due treatment, pauses, scheduled cancellations, shipping. Anyone recomputing the number should land on the same figure.

Where Tagada fits

How Tagada helps

Renewals that keep charging

Tagada runs subscriptions (trials, billing cycles, dunning and automatic retries) next to the checkout. Payments can be routed across Stripe, Adyen and Tagada's own processor, TagadaPay, with one set of rules and a cascade on decline. The card vault moves customers between merchant accounts without collecting their cards again, so running subscriptions keep charging. That works on the part of churned MRR that comes from failed renewals rather than cancellations. Pricing is on the pricing page.

Whatever tool computes it, MRR is the same calculation: active subscriptions only, every interval brought to a month, taxes, shipping and one-time charges left out, and each month's change explained by new, expansion, reactivation, contraction and churned MRR.

Nick Bonnassies

CMO at Tagada

CMO at Tagada. Before Tagada, Nick built direct-to-consumer brands that generated over $115M in sales, raised over $25M in crowdfunding and sold two of them. He also works as a fractional CMO on marketing operations and AI systems.

Frequently asked questions

How do you calculate MRR?

List every active subscription. Convert its recurring price to a monthly value: divide an annual price by 12, a quarterly price by 3, and multiply an every-4-weeks price by 13 then divide by 12. Leave out taxes, shipping, one-time charges and subscriptions still in a free trial. Add the monthly values together. The total is your MRR.

What is the MRR formula?

MRR = the sum of the monthly-normalized recurring price of every active subscription. When all customers pay the same monthly price, it simplifies to number of paying customers × average monthly revenue per customer. With several plans, calculate each plan separately: subscribers on the plan × its monthly value, then add the plans together.

Do annual plans count in MRR?

Yes, at one twelfth of their price, every month of the year. A 600 USD yearly plan adds 50 USD of MRR, even though the customer paid 600 USD on day one. Counting the whole 600 USD in the month it was paid inflates that month and makes the next eleven look like a collapse.

Are taxes, shipping and one-time fees included in MRR?

No for taxes and one-time charges: Stripe, Chargebee and Recurly all leave them out. Setup fees and one-off add-ons don't recur, so they don't belong. None of the three documents shipping, so decide yourself; we recommend excluding shipping charged to cover delivery, or reporting it on its own line, and keeping that choice every month.

What is the difference between MRR and ARR?

ARR is annual recurring revenue: MRR × 12, the same run rate expressed over a year. Neither is a forecast. ARR assumes that every current subscription keeps paying at today's price for twelve months, with no churn and no new customers. Use MRR to follow monthly movements and ARR when you need a yearly figure.

What is net new MRR?

Net new MRR is the change in MRR over a month: new MRR + expansion MRR + reactivation MRR − contraction MRR − churned MRR. Starting MRR plus net new MRR gives ending MRR. Divide net new MRR by starting MRR to get the MRR growth rate. A negative result means losses outweighed gains that month.

Sources

Checked October 14, 2026
  1. Stripe Docs, Billing analytics: metric definitions (MRR, MRR growth, active subscribers, ARPU, churned revenue)
  2. Stripe Support, Understanding Monthly Recurring Revenue (MRR)
  3. Chargebee Docs, Monthly Recurring Revenue (Billing 2.0, reports and analytics)
  4. Chargebee Docs, What is included/excluded in the MRR calculation
  5. Recurly Docs, Monthly recurring revenue
  6. Chargebee Docs, What is Pause MRR and Cancellation/Churn MRR

Tagada

Keep renewals collecting, keep MRR in place

Funnels, one-click upsells, subscription billing and payment routing, on one customer record.

  1. 01Create your free account
  2. 02Connect your store or build a checkout
  3. 03Launch funnels, upsells and subscriptions