SaaSFlow
Reports

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.

MetricPeriod assigned byWhat it answers
CMRR (default)The committed time — when the change was contractually agreed"How is the business growing based on what's been booked?"
MRRThe 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.

On this page