Understanding MRR movements

A core element of ChartMogul Subscription Analytics is helping you analyze changes to your monthly recurring revenue (MRR). To do this, ChartMogul calculates the monthly recurring revenue for each active subscription and watches for changes (movements) to the subscription’s MRR.

The value of each MRR movement is the net change (difference) in MRR. Summing the value of all previous MRR movements produces a subscription’s current MRR. Read more about 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 Chart Data table and in each customer’s record.

If you're using committed monthly recurring revenue (CMRR), you'll see MRR movements dated in the future that come from scheduled subscription events.

ChartMogul doesn’t create MRR movements for subscription changes that don’t affect the subscription’s MRR nor due to currency fluctuations.

Smart Activity Classification

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 Smart Activity Classification 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, and select integrations may have an import delay of 12 hours or more. For example, App Store Connect and Google Play import subscription-related data once every 24 hours. These delays impact the real-time and daily notifications you receive for email, Slack and webhooks. While you may not be notified of these MRR movements, they are still visible in Chart Data, customer records and your billing system.

Resources and further reading:

TL;DR

When looking at a customer’s subscription and how it changes over time, keep in mind the following:

  1. ChartMogul creates MRR movements for subscription events (changes) that increase or decrease the subscription’s calculated MRR. The value of the movement is the net change in MRR.
  2. There are five MRR movement types: New Business, Expansion, Contraction, Churn, and Reactivation, depending on the nature of the subscription event.
  3. MRR movements types may not always be obvious: for example, ChartMogul classifies the reduction in MRR resulting from a discount as Contraction.
  4. The exact timing of when ChartMogul reports an MRR movement depends on when it receives updated subscription data from your billing system.

MRR Movement Types

ChartMogul categorizes each MRR movement as either:

  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.

  Expansion

When a customer upgrades an existing subscription or purchases an additional subscription, ChartMogul classifies the net increase in subscription MRR as Expansion. Expansion can also result from an expiring discount.

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

When you upgrade a customer’s subscription and wait until the next billing cycle to charge the customer (in arrears) a prorated subscription fee, ChartMogul retroactively revises the MRR for the period to include the prorated upgrade once the customer pays (at the start of the next billing cycle).

  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. Contraction can also result from applying a discount.

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 (which is applied to their next invoice), ChartMogul revises the MRR for the period when it learns about the contraction when the invoice is created (at the start of the next billing cycle).

  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 can churn as a result of your Handling Past-due Subscriptions setting. When a subscription auto-churns, the status of the subscription changes in ChartMogul but not your billing system.

  Reactivation

When a formerly paying customer (who had previously churned) moves back onto a paid plan, ChartMogul classifies the new subscription MRR as Reactivation and changes the customer’s status to Active.

Was this article helpful?

We’re sorry to hear that. Would you like to share more feedback?


Thanks for your feedback!