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.

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 interval | Monthly equivalent of the recurring amount |
|---|---|
| Monthly | Recurring monthly amount |
| Quarterly | Recurring quarterly amount ÷ 3 |
| Annual | Recurring 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.
| Item | Treatment in the cited calculation |
|---|---|
| Recurring subscription charges | Included and normalized to a monthly amount |
| One-time fees and non-recurring invoice items | Excluded by ChartMogul |
| Subscription taxes | Excluded by Stripe |
| Free plans | Excluded by Stripe |
| Items in a free trial | Excluded by Stripe while the trial applies |
| Metered usage charges | Excluded 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:
| Movement | Meaning |
|---|---|
| New MRR | Recurring revenue from a customer’s first paid subscription. |
| Expansion MRR | An increase in an existing paying customer’s recurring amount. |
| Reactivation MRR | Recurring revenue restored when a previously churned customer returns. |
| Contraction MRR | A decrease in recurring revenue while the customer retains a paid subscription. |
| Churn MRR | Recurring revenue lost when the customer’s last paid subscription is canceled. |
| Neutral movement | A subscription change with no change in MRR. |
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:
| Measure | What it represents |
|---|---|
| MRR | The current recurring subscription amount expressed per month. |
| ARR | The same recurring base annualized: MRR × 12. |
| Invoice total | Amounts billed, which cannot simply be added to calculate MRR. |
| Cash flow | Transactions reported separately from subscription MRR. |
| Recognized revenue | Accounting 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.