Metrics
How Fusionmetrics calculates MRR
Understand the recurring revenue included in MRR, how billing intervals and discounts are normalized, and how MRR growth is calculated.
Last updated
Monthly recurring revenue (MRR) is the recurring run-rate Fusionmetrics observes for an App at a point in time. It is not cash collected during the selected date range. Gross earnings can include one-time charges and other activity that does not change MRR, while an annual subscription contributes only its monthly equivalent to MRR.
MRR formula
At each point in time, Fusionmetrics calculates:
MRR = monthly subscription MRR
+ annual subscription value / 12
+ usage charges from the trailing 30 days
The calculation uses active, non-test subscription state and the active Merchant relationship observed in the imported billing data. Trial contracts remain outside MRR until their paid recurring term becomes effective.
For fixed recurring subscription items, Fusionmetrics uses the effective price for the current billing cycle when that source data is available. Fixed-amount and percentage discounts are applied before the amount enters MRR. A discount cannot reduce an item below zero.
Monthly and annual plans
Monthly fixed charges contribute their effective monthly amount. Annual fixed charges are divided by 12, so a $1,200 annual subscription contributes $100 MRR rather than producing a $1,200 spike in one month.
Fusionmetrics prefers an explicit billing period from the billing source. When older Shopify activity lacks that field, the reconstruction can use the charge and billing schedule to identify an annual term.
Usage revenue
Usage MRR is the sum of non-test usage charges observed during the trailing 30 days. It is a rolling run-rate, so it can change even when no fixed subscription starts, ends, or changes plan.
Discounts and zero-dollar contracts
An effective recurring discount reduces fixed MRR for the covered billing cycles. A fully discounted contract can therefore remain an active subscription contract while contributing $0 to MRR.
This distinction is intentional: subscription counts answer how many contracts are active, while MRR answers how much recurring revenue those contracts currently represent. See how subscription population affects churn for the separate churn control.
How the historical MRR curve is reconstructed
Fusionmetrics imports subscription lifecycle activity such as activations, cancellations, plan changes, freezes, unfreezes, and reactivations. It combines those movements with current subscription observations to reconstruct historical point-in-time MRR.
The latest MRR is anchored to the latest supported subscription state. Earlier points are reconciled through the movement ledger so the curve changes when recurring value changes, rather than when an import happens. A refreshed import can revise historical points when the source supplies better billing-period, discount, trial, or lifecycle evidence.
Test charges and Merchants explicitly excluded in App settings do not contribute. Fusionmetrics also avoids counting a large future-billed recurring increase as confirmed MRR when the available payment evidence does not yet support it.
MRR movements
Movements explain why MRR changed:
| Movement | Effect on MRR |
|---|---|
| New | A first paid recurring subscription adds MRR. |
| Expansion | A plan or price increase adds MRR. |
| Contraction | A plan or price decrease removes MRR. |
| Churn | A paid recurring subscription ends and removes MRR. |
| Reactivation | A previously ended paid subscription returns and adds MRR. |
| Frozen / unfrozen | A temporary subscription-state change is tracked separately for churn modeling. |
When multiple lifecycle events describe one replacement at the same time, Fusionmetrics reconciles them as one recurring-value change instead of double-counting both contracts.
MRR growth rate
The MRR summary compares current MRR with the opening MRR for the selected dashboard range:
MRR growth rate = (current MRR - opening MRR) / opening MRR × 100
For example, a move from $10,000 to $10,500 is 5% MRR growth. If opening MRR is zero, Fusionmetrics reports 0% rather than dividing by zero.
The chart is a pointwise series. Each plotted growth value compares the MRR at that point with its preceding comparison point, while the headline summary compares the endpoints of the selected range. The two therefore answer different questions and do not need to show the same percentage.
MRR and gross earnings are different
MRR is a recurring run-rate. Gross earnings are transactions recorded inside a period. The values commonly differ because:
- annual cash is normalized to a monthly amount in MRR;
- usage MRR uses a trailing 30-day window;
- one-time and setup charges can affect gross earnings without affecting MRR;
- discounts can reduce recurring value before it enters MRR;
- refunds, adjustments, and transaction timing affect earnings independently of subscription state.
Use the dashboard’s number reconciliation view when you need to bridge Shopify transaction gross, completed-day MRR, and the latest dashboard MRR for a specific App.