Visualizers · Visualizer

MRR Movement Waterfall Visualizer

Visualize how Beginning MRR becomes Ending MRR through New, Expansion, Reactivation, Contraction, and Churn.

Balance check tolerance

Balance Check

Ending MRR = Beginning MRR + New + Expansion + Reactivation - Contraction - Churned.

How It Works

Monthly Recurring Revenue doesn't move in one direction — it goes up from new customers and expansion, and down from contraction and churn, all in the same month. A single MRR number hides that movement. This waterfall shows it: it takes your Beginning MRR and walks it forward, bar by bar, through each component, until it lands on your Ending MRR.

This is a visualizer, not a calculator — it doesn't compute MRR for you. You supply the six components, and the chart makes the bridge between Beginning and Ending MRR visible so you can see where the change actually came from.

Enter Beginning MRR (the MRR you started the period with) and Ending MRR (the MRR you ended with), along with the four components that explain the difference: New MRR, Expansion MRR, Reactivation MRR, Contraction MRR, and Churned MRR.

The chart draws Beginning and Ending MRR as full bars, and each component as a floating bar that steps the running total up (New, Expansion, Reactivation) or down (Contraction, Churned) between them.

A balance check compares Beginning + New + Expansion + Reactivation − Contraction − Churned against the Ending MRR you entered, and flags the difference if it falls outside a tolerance you control.

How to Read the Chart

  • The first and last bars (Beginning MRR, Ending MRR) start from zero — their height is the full MRR value.
  • The bars in between are floating: each one starts where the running total left off and moves up or down by that component's amount. Green bars (New, Expansion, Reactivation) push the total up. Red bars (Contraction, Churned) pull it down.
  • If your inputs balance exactly, the top of the last floating bar (after Churned) lines up with the top of the Ending MRR bar. A visible gap between them is the balance check catching a mismatch.

Example

Worked example

<built-in method values of dict object at 0x7537a996b580>

Ending MRR = $50,000 + $8,000 + $4,000 + $1,000 − $2,000 − $3,000 = $58,000

Interpretation

  • Net New MRR (New + Expansion + Reactivation) shows how much MRR was added before any losses.
  • Gross Churned + Contraction shows how much MRR was lost, independent of how much was gained.
  • Net MRR Change (Ending − Beginning) is the actual movement for the period — comparing it against Net New MRR shows how much of your gross growth was offset by losses.
  • These are factual readouts of the numbers you entered — the chart does not infer causes (e.g. why churn happened) or predict what next month will look like.

Methodology

The chart uses a standard cascading waterfall: Beginning and Ending MRR are drawn as full bars from zero, and each component bar spans from the running total before it to the running total after it. The balance check computes Beginning + New + Expansion + Reactivation − Contraction − Churned and compares that to your entered Ending MRR. You choose the tolerance — either a fixed dollar amount or a percentage of Ending MRR — and the exact check being applied is shown next to the result so nothing is hidden.

Limitations

This visualizer only displays the six components you enter — it does not calculate MRR from billing data, does not forecast future MRR, and does not explain why any component moved. Contraction and Churned MRR should be entered as positive magnitudes (the amount lost); the chart subtracts them. The balance check only confirms internal consistency between your six numbers — it cannot tell you whether any individual component is itself correct. Manual entry only in this version; CSV/file upload, PNG/SVG export, and embed are not yet available.

Frequently Asked Questions

What's the difference between this and an MRR calculator?

A calculator computes MRR from raw subscription or billing data. This visualizer doesn't compute anything — you already have the six components, and it builds the bridge chart showing how they connect Beginning MRR to Ending MRR.

Why do my numbers not balance exactly?

Small mismatches are common with manually entered or rounded figures — that's why the balance check has an adjustable tolerance instead of demanding an exact match. A large mismatch usually means a component is missing, double-counted, or miscategorized (for example, a contraction booked as churn).

Should Contraction and Churned MRR be entered as negative numbers?

No — enter them as positive amounts (how much MRR was lost). The chart subtracts them automatically; entering a negative number would double-subtract.

What counts as Reactivation MRR versus New MRR?

This tool doesn't define your categorization — it visualizes whatever numbers you enter. Most SaaS businesses treat Reactivation as revenue from a customer who had fully churned and returned, and New as revenue from a customer who never had an active subscription before, but the exact line is a business decision you make before entering data here.

Can I compare multiple months at once?

Not in this version — each waterfall shows one period's bridge from Beginning to Ending MRR. Comparing several months side by side would be a separate view.

Does this account for currency or multi-currency businesses?

No — enter all six values in a single consistent currency and unit. If you bill in multiple currencies, convert to one reporting currency before entering values here.

Want this tracked automatically from real data?

Connect Stripe in read-only mode and Dnoise tracks your SaaS metrics automatically every month.

Connect Stripe — free →
Back to Visualizers