MRR calculation
How MRR is calculated
Monthly Recurring Revenue (MRR) represents the normalized monthly value of your recurring subscriptions. PaymentKit calculates MRR from invoice data and tracks how it changes over time through movement events.
Data source
MRR is calculated from invoice line items that meet these criteria:
- Invoice status is
paidoropen - Pricing type is
recurring(one-time charges are excluded) - Period length is greater than zero (excludes prorations and adjustments that don’t represent ongoing revenue)
Normalization formula
All billing intervals are normalized to a standard 30.5-day month. This ensures consistent comparison across different billing frequencies.
Example: A $1,200/year subscription with interval count = 1 will contribute $100 MRR.
Movement types
PaymentKit classifies MRR changes into movement types to help you understand revenue dynamics:
The relationship between these movements can be expressed as:
When a subscription is restructured (e.g., split into multiple subscriptions), the net MRR change is classified as expansion or contraction based on whether total MRR increased or decreased. This reflects the customer’s perspective: they didn’t leave, they changed plans.
Special cases
Prorations
Prorated charges are normalized using the actual period length rather than the billing interval. This ensures mid-cycle changes are accurately reflected in MRR.
Refunds
- Full refunds: The MRR contribution period is truncated to the refund date. This is treated as early churn since the customer didn’t retain value for the full period.
- Partial refunds: Do not affect MRR. The subscription is still active at the original price.
Currency conversion
All MRR values are converted to USD using exchange rates effective at the time of the invoice event. This uses an as-of join against the exchange rate table to ensure historical accuracy.
Intra-month netting
Multiple movements within the same month for the same subscription are netted together. For example, if a customer upgrades and then downgrades within the same month, only the net change is reported.
This prevents double-counting and provides a cleaner view of actual revenue changes.
Dashboard metrics
The MRR dashboard shows:
- Current MRR: Total normalized monthly revenue from all active subscriptions
- MRR movements chart: Breakdown of new, expansion, contraction, churn, and reactivation over time
- Net MRR change: Sum of all movements for the selected period
Use date range filters to analyze MRR trends. Compare month-over-month to identify growth patterns or seasonal effects.