Monthly Recurring Revenue: Definition, Formula, and Changes

Monthly recurring revenue (MRR) is the monthly value of predictable recurring subscription income. It expresses the current recurring base as a monthly amount and supports analysis of subscription performance, growth trends, and forecasting.

monthly recurring revenue: stacked coins, clock, and balance scale left to right, monitor showing an abstract movement chart, unmarked price tag, closed folder, pen, potted plant

MRR is a recurring revenue rate rather than the total money received during a month; Stripe’s support documentation explicitly distinguishes it from invoice totals, immediate cash flow, and GAAP revenue.

How to calculate monthly recurring revenue

Start with a reporting date. A monthly MRR figure commonly represents the subscription base at month-end: ChartMogul’s growth-rate report uses the MRR measured at the end of each reporting period.

Calculate each eligible subscription’s monthly equivalent, then add those values. ChartMogul’s calculation documentation uses the monthly subscription amount for monthly plans and the recurring invoice amount together with the plan’s billing interval for other plans:

MRR = sum of (eligible recurring subscription amount ÷ billing interval in months).

The monthly conversion follows that billing-interval calculation:

Billing intervalMonthly equivalent of the recurring amount
MonthlyRecurring monthly amount
QuarterlyRecurring quarterly amount ÷ 3
AnnualRecurring annual amount ÷ 12

An equivalent customer-level formula in Stripe’s MRR guide is MRR = paying customers × average monthly recurring revenue per customer. The average must reflect recurring monthly amounts across the same paying customer population; multiplying customer count by one advertised plan price only works when that price is the actual monthly amount for every counted customer.

Customer count and subscription count are different: Stripe’s subscriber definition counts a customer with multiple active subscriptions once. Sum eligible subscription amounts before calculating the average per customer.

What to include and exclude

The calculation depends on which subscriptions and charges qualify. Under Stripe’s documented MRR definition, active and past-due subscriptions contribute, while canceled or unpaid subscriptions do not; taxes, free plans, and metered products are excluded.

ItemTreatment in the cited calculation
Recurring subscription chargesIncluded and normalized to a monthly amount
One-time fees and non-recurring invoice itemsExcluded by ChartMogul
Subscription taxesExcluded by Stripe
Free plansExcluded by Stripe
Items in a free trialExcluded by Stripe while the trial applies
Metered usage chargesExcluded from Stripe’s standard MRR calculation

For item-level trials, Stripe excludes only the trialing items; other eligible items in the same subscription can still contribute. A legacy subscription-level free trial excludes the entire subscription during the trial.

A failed payment does not automatically remove MRR: Stripe’s payment-status explanation says the recurring amount can remain counted while the subscription is past due. This is why an MRR balance does not establish that all corresponding payments have been collected.

Discounts and refunds

In Stripe’s discount settings, recurring and one-time discounts have configurable treatment, while permanent recurring discounts are always deducted.

Refund rules vary: Stripe says a one-off refund does not change MRR unless the plan price changes, whereas ChartMogul deducts refunds for its Stripe integration but not for its other billing integrations. Record the discount and refund settings used by the report before comparing its totals with another system.

The types of MRR movement

The MRR movements defined by ChartMogul measure each subscription change by the difference it produces in recurring revenue:

Under ChartMogul’s classifications, adding another subscription to an existing paying customer’s account can be expansion, while canceling one of several subscriptions can be contraction. Applying or ending a discount can also produce contraction or expansion; these categories therefore do not establish that product usage changed.

Reconcile opening MRR with closing MRR

Use the period’s movements to connect its opening balance to its closing balance. Stripe’s MRR growth definition gives the reconciliation:

Closing MRR = opening MRR + new MRR + expansion MRR + reactivation MRR − contraction MRR − churn MRR + FX impact.

In this formula, contraction and churn are positive loss amounts that are subtracted; FX impact is a signed adjustment. Keep currency effects visible: ChartMogul separates exchange-rate impact from expansion and contraction because converted MRR can change without a subscription changing in its original currency.

For invoice-based subscriptions, ChartMogul’s currency method converts MRR at the service period’s start date and cash transactions at the transaction date. The dates help explain differences between converted subscription and cash reports.

Also distinguish individual events from a customer’s net movement over the month. ChartMogul’s Net MRR Movements report combines each customer’s changes within the reporting interval into one net classification, while its individual movement view retains the separate subscription events. Those views summarize the same activity differently, so compare category totals using the same aggregation method.

Timing affects the month in which a loss appears. ChartMogul’s churn-recognition settings can record cancellation when the billing system marks the subscription canceled or at the end of its final service period. Keep the recognition rule consistent between the opening snapshot, the movement report, and the closing snapshot.

For a reconciliation that does not balance, compare the underlying records, reporting dates, recognition settings, and currency conversions before interpreting the difference as customer growth or loss.

Calculate MRR growth and distinguish it from retention

The period-to-period growth formula documented by ChartMogul is:

MRR growth rate = ((closing MRR − opening MRR) ÷ opening MRR) × 100%.

A positive result means the recurring base increased; a negative result means it decreased. The calculation requires a nonzero opening balance. From a zero opening balance, report the absolute amount added because percentage growth is undefined. These interpretations follow directly from the formula.

Growth and retention answer different questions. Stripe defines net revenue retention (NRR) around the customers present at the start of the period, excluding revenue from newly acquired customers. For that opening customer group, its formula is:

NRR = ((opening MRR + expansion MRR − contraction MRR − churn MRR) ÷ opening MRR) × 100%.

Expansion, contraction, and churn in this calculation must belong to the opening group. Revenue from customers who had already churned before the period and subsequently return belongs outside that group’s retention calculation.

Gross revenue retention (GRR) excludes expansion from the same calculation:

GRR = ((opening MRR − contraction MRR − churn MRR) ÷ opening MRR) × 100%.

The formulas explain why total MRR can grow while the opening customer group loses recurring revenue, and why expansion can offset losses in NRR while those losses remain visible in GRR.

MRR versus ARR, invoices, cash, and accounting revenue

According to Stripe’s MRR and ARR guide, annual recurring revenue is the annualized value of current recurring contracts, assuming the customer base, prices, and contracts stay unchanged:

MeasureWhat it represents
MRRThe current recurring subscription amount expressed per month.
ARRThe same recurring base annualized: MRR × 12.
Invoice totalAmounts billed, which cannot simply be added to calculate MRR.
Cash flowTransactions reported separately from subscription MRR.
Recognized revenueAccounting revenue; MRR is not GAAP revenue.

Annualization is a calculation based on the current rate. It does not incorporate future acquisitions, cancellations, or pricing changes, so it is not a complete forecast of the next year’s revenue.

One person. A whole marketing team.

Invite only