MRR & subscriptions
Recurring revenue over time, change events, breakdowns by product and customer, and the CMRR / MRR toggle.
The Subscriptions report (sidebar → Subscriptions) and the Recurring revenue report cover everything subscription-related.
What the report shows
- Recurring revenue over time — per period.
- Change events — new, expansion, contraction, reactivation, and churn for each period, with the impact on recurring revenue.
- By product — current recurring revenue broken down by product.
- Per customer — every customer's current recurring revenue, sorted descending. Click into a customer to see their event history.
- Top countries: recurring revenue and customer count by country, as a table or a world map shaded by revenue. Click a country for the customers behind its number. Countries without a shape on the map (a few city-states) appear in the table view only.
CMRR vs MRR
The report has a toggle for CMRR (Committed MRR, the default) and MRR (the traditional metric). They use the same underlying subscription events; what changes is which timestamp decides the period a change lands in.
| Metric | Period assigned by | What it answers |
|---|---|---|
| CMRR (default) | The committed time: when the change was contractually agreed | "How is the business growing based on what's been booked?" |
| MRR | The effective time: when the change took financial effect | "How much recurring revenue did we actually recognise in this period?" |
For most changes the two dates are the same and CMRR equals MRR. They diverge for contracts where the commit and the start of revenue recognition fall in different periods: typically annual contracts signed in advance, mid-month plan swaps with end-of-cycle billing, and similar.
Time-limited Stripe coupons are another case. A plan at €39 with €10 off for the first 12 months counts as €39 of CMRR from signup, because the customer has already agreed to the full price. MRR starts at €29 and rises by €10 when the discount ends. Permanent coupons lower both; a coupon on a single invoice lowers neither.
SaaSFlow features CMRR by default in summary emails, the customer-detail header, and as the default toggle on the Subscriptions and Recurring revenue reports. It reflects the commercial picture (what's been won, what's been lost) more directly than the cash-effective view.
Where the data comes from
Subscription events are created from your integrations:
- Stripe — every subscription change, item swap, and invoice becomes a SaaSFlow subscription event with the right type (new / change / cancel).
- HubSpot — commerce subscriptions and contracts.
- You can also add subscription events manually from the customer's detail page — useful for off-Stripe contracts.
See subscriptions for the underlying data model.