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
| Card | What 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
| Column | How it is calculated |
|---|---|
| Month | Full month name and year, e.g. "September 2026", oldest first. |
| New | The 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. |
| Reactivation | The 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. |
| Expansion | Sum 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"). |
| Contraction | Sum of negative deltas from the same events. |
| Churn | The current monthly amount of every subscription whose cancelled_at falls in the month, across all sources and statuses. |
| Net new MRR | New + Reactivation + Expansion − Contraction − Churn. |
| Ending MRR | The 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-off | Signed 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.