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.
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.
SaaSFlow features CMRR by default — in summary emails, the customer-detail header, and as the default toggle on the Subscriptions and Recurring revenue reports — because 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.