Skip to content
Sad Subscription Analytics
Menu

Revenue and MRR

Revenue and MRR is a month-by-month movement table: for every month in the selected range it shows the MRR added and lost, the resulting net change, the month's ending MRR, and separately the one-off cash taken that month.

What the report answers

How did MRR change month by month, and why: new subscriptions, customers who came back, plan changes, cancellations, and one-off (non-subscription) cash. There are no filters, no grouping and no chart on this page; the trend chart and period comparisons live on the Dashboard, which links here.

Summary cards

CardWhat it shows
Net new MRR"The net change in monthly recurring revenue: new + reactivation + expansion, minus contraction and churn." Sum of the Net new MRR column over the range.
Churned MRR"Monthly recurring revenue lost to cancellations over the selected range." Sum of the Churn column.
One-off revenue"Cash from one-time and lifetime purchases, which add no recurring revenue." Sum of the One-off column.
Ending MRR"Total monthly recurring revenue at the end of the range." The Ending MRR of the last month in the range.

The cards are summed from the same rows the table shows, so they can never disagree with it.

Filters

This report has no filter chips and no Group by: only the date range button, a Search box and Export CSV render. Rows are computed in PHP from a monthly engine, so the Search box has no effect here even though it is drawn. See Date ranges, grouping, sorting and search for how the range picker itself works; the default is Last 12 months or the user's saved preset, and this report has no "Showing data since …" caption on All time because it has no date basis.

Columns

ColumnHow it is calculated
MonthFull month name and year, e.g. "September 2026", oldest first.
NewThe amount-at-start of every subscription that started in the month and is not a reactivation. Reconstructed from the earliest recorded price-change event's "from" amount, or the current amount if the price never changed.
ReactivationThe amount-at-start of subscriptions that started in the month whose customer had fully lapsed (an earlier cancellation, and no other subscription active at that start). Single-sourced with the Reactivations report.
ExpansionSum of positive deltas from plan-change and amount-change events recorded in the month. Only events recorded since SSA began storing amounts count ("forward-only").
ContractionSum of negative deltas from the same events.
ChurnThe current monthly amount of every subscription whose cancelled_at falls in the month, across all sources and statuses.
Net new MRRNew + Reactivation + Expansion − Contraction − Churn.
Ending MRRThe stored cross-source MRR snapshot for that month when one exists, otherwise the opening MRR plus the running sum of net new.
Adjustments"The difference between your measured MRR and the movements we can explain. Usually plan changes made before SSA started recording upgrade and downgrade amounts. This shrinks over time." Ending MRR minus previous Ending MRR minus Net new MRR. Hidden on screen when every month is zero, but always present in the CSV.
One-offSigned cash (amount minus refunded amount) of succeeded payments in the month that are not subscription payments.

When MRR already existed before the first month of the range, a leading "Opening balance" row is added; its Ending MRR shows the carried-in MRR and every movement cell shows an em dash placeholder. Every amount is converted to the site's display currency; a currency with no exchange rate is skipped and named in a notice.

Sorting and grouping

No column on this report is sortable and there is no Group by; every month in the range is rendered at once, oldest first. The "Grand total" footer sums New, Reactivation, Expansion, Contraction, Churn, Net new MRR and One-off. Ending MRR (a level, not a flow) and Adjustments are left blank in the footer.

Export