Understanding MRR movements
MRR movements are records ChartMogul creates to track changes to your monthly recurring revenue (MRR) — the total recurring revenue your active subscriptions generate each month. ChartMogul calculates MRR for each active subscription and records a movement every time that value changes.
Each movement's value is the net change in MRR. Add up all previous movements and you get a subscription's current MRR. See the lifecycle of a subscription in ChartMogul.
ChartMogul generates MRR movements from invoice data and manual subscriptions and uses them as the basis for nearly all metrics and analytics. You'll find them throughout ChartMogul, including in the Report Data table and in each customer's profile. In MRR movements drilldowns, you can also use the Explain this button to get an AI-generated explanation of the movement directly in ChartMogul.

If your billing system sends this data, you'll see MRR movements dated in the future that come from scheduled subscription events.
ChartMogul doesn’t create MRR movements for subscription changes due to currency fluctuations.
How reclassification groups subscription activity
By default, ChartMogul groups MRR movements for certain subscription changes (activities) that take place within a specified period of time (e.g., 60 minutes) of each other. This does not impact the value of reported MRR.
For example, when a new customer purchases multiple new subscriptions at the same time, ChartMogul classifies them both as a New Business MRR movement (vs. New Business followed by Expansion).
Learn more about reclassification of subscription activity and how it affects the classification of New Business, Churn, and Reactivation MRR.
Real-time MRR movements
ChartMogul generates an MRR movement when it receives data. Some integrations have an import delay. For example, App Store Connect and Google Play import subscription data once every 24 hours. Delays longer than one day affect the real-time and daily notifications you receive for email, Slack, and webhooks. You won't receive a notification for these MRR movements, but they're still visible in Report Data, customer profiles, and your billing system.
Further Reading on MRR
- Metric: Monthly Recurring Revenue (MRR)
- The Monthly Recurring Revenue Guide for 2021
- A Simplified Method for Forecasting MRR Growth
- Make Metrics Meaningful: how each team relates to MRR
Key Things to Know About MRR Movements
When looking at a customer’s subscription and how it changes over time, keep in mind the following:
- ChartMogul creates MRR movements for subscription events (changes) such as buying or canceling a subscription or changing the number of seats. The value of the movement is the net change in MRR.
- There are six MRR movement types: New Business, Expansion, Contraction, Churn, Reactivation, and Neutral movement, depending on the nature of the subscription event.
- MRR movement types may not always be obvious: for example, ChartMogul classifies the reduction in MRR resulting from a discount as Contraction.
- The exact timing of when ChartMogul reports an MRR movement depends on when it receives updated subscription data from your billing system and your Invoice handling setting.
- Pausing a subscription may or may not create MRR movements, depending on your When a subscription is paused setting. See Paused subscriptions below.
How ChartMogul Classifies MRR Movements
ChartMogul categorizes each MRR movement as one of the following:
:new-biz~yellow: New Business
When a customer with a lead status (a non-paying customer) purchases their first subscription, ChartMogul classifies the subscription MRR as New Business and changes the customer’s status to Active.
:upgrade~blue: Expansion
When a customer's overall MRR increases, ChartMogul classifies this as Expansion — a movement type that captures revenue growth from existing customers. This can be due to upgrading an existing subscription or purchasing an additional subscription. Expansion can also result from an expiring discount (a temporary price reduction that, when it ends, raises the effective MRR).
| Prorated upgrade and instant charge | When you upgrade a customer’s subscription while also prorating the subscription fee for the remaining time in the current billing cycle, ChartMogul registers the Expansion MRR immediately. |
| Upgrade and charge at next billing cycle | When you upgrade a customer’s subscription and wait until the next billing cycle before charging them the higher subscription fee, ChartMogul registers the Expansion MRR at the start of the next billing cycle. |
| Instant, prorated upgrade with delayed charge | By default, if you upgrade a customer’s subscription but delay the prorated charge until the next billing cycle, ChartMogul revises the historic MRR to reflect the upgrade after the customer pays. Depending on your Invoice handling setting, the upgrade may be reflected immediately. |
:downgrade~red: Contraction
When a customer downgrades an existing subscription or cancels one or more (but not their last) subscription, ChartMogul classifies the net decrease in subscription MRR as Contraction — a movement type that captures revenue lost from existing customers who haven't fully churned. Contraction can also result from applying a discount (a temporary price reduction on a subscription).
| Contraction through cancellation | When you cancel one or more (but not the last) of a customer’s subscriptions, ChartMogul registers the Contraction MRR either right away—or at the end of the service period, depending on your Churn Recognition setting. |
| Contraction with prorated downgrade | When you add a prorated credit to the customer’s account in your billing system, and they don’t immediately issue an invoice, ChartMogul revises the MRR for the period when it learns about the contraction (when the invoice is created). |
:churn~red: Churn
When a customer cancels their last (or only) subscription, ChartMogul classifies the lost subscription MRR as Churn and changes the customer’s status to Cancelled.
When a customer cancels their subscription and then purchases a new, more expensive one, ChartMogul reports the cancellation as Churn and the new subscription as Reactivation. If you prefer to have ChartMogul report this as Expansion, connect the two subscriptions.
Adjust the Churn Recognition setting to recognize churn when the subscription ends in your billing system or at the end of the final service period.
Customers may also show as churned because of your Handling Past-due Subscriptions setting. When a subscription auto-churns, ChartMogul updates the subscription status — but your billing system doesn't.
:reactivation~yellow: Reactivation
When a previously churned customer — one whose last subscription was cancelled — moves back onto a paid plan, ChartMogul classifies the new subscription MRR as Reactivation and sets the customer's status to Active.
:plan-switch~blue: Neutral
When a customer changes their subscription but their MRR stays the same, ChartMogul classifies this as a Neutral movement. Examples include:
- Switching between equally priced plans
- Increasing or decreasing subscription quantity with no MRR impact
You'll see Neutral movements in these places:
- The MRR Entering/Leaving Segment rows of the Report Data table after applying a plan filter
- The Subscription History table on a customer profile
- A separate row in the Report Data table for accounts with free subscription support
Paused subscriptions
How a pause shows up in MRR movements depends on the When a subscription is paused option in Data Settings:
- Set status to Paused and keep MRR unchanged (default) — no MRR movement. The subscription’s status changes to Paused, but its MRR stays the same.
- Set status to Paused and MRR to $0 — the pause is recorded as Churn, and the resume as Reactivation, restoring the previous MRR. If the customer has other paid subscriptions that keep going, the pause is Contraction and the resume is Expansion instead.
- Set status to Cancelled and record churn — the pause is recorded as Churn. There’s no movement when the subscription resumes; ChartMogul records Reactivation when the first invoice after the resume arrives, so MRR stays at $0 until then.
Learn more about handling paused subscriptions.