Sign in

Blog · Board and management reporting · Software

MRR dashboard: new, expansion, contraction, and churn

An MRR dashboard explains how recurring revenue changes from one month to the next. Build a customer movement table from subscription exports, calculate the bridge in Excel, and prove it matches closing MRR.

The short answerAn MRR dashboard shows opening monthly recurring revenue, new business, expansion, contraction, churn, and closing recurring revenue. Build it from customer subscription balances on consistent month-end dates. Classify each customer's change, sum the movements, and check that opening MRR plus increases minus decreases equals closing MRR. Separate returning customers and currency changes when present.

An MRR dashboard reconciles opening monthly recurring revenue with closing MRR through new business, expansion, contraction, and churn. Start with customer subscription balances, classify the change for each customer, and require the movement bridge to balance before interpreting growth.

The useful question is which customers changed the recurring base, and why. A higher invoice total can reflect annual billing or a setup fee without increasing that base at all.

Set the recurring revenue boundary

Use monthly normalized recurring subscription value rather than cash receipts. Stripe's MRR definition describes monthly normalization and distinguishes the components of MRR growth. Your company's reporting policy should state which subscription statuses, discounts, and charges qualify, and retain that policy across periods.

For example, a recurring annual contract worth $12,000 contributes 12,000 / 12 = $1,000 of MRR. Its payment date does not make all of that annual value recurring revenue for a single month. Exclude implementation fees, sales tax, and other nonrecurring items from this subscription bridge.

Write the reporting date, currency, and cutoff beside the dashboard. For a US company reporting in USD, use the same treatment of unpaid subscriptions and recurring discounts at both month ends. If a policy changes, recalculate the comparison or show the policy adjustment separately.

Assemble the customer comparison

Export customer ID, subscription ID, currency, billing interval, recurring amount, status, and effective dates. Produce one customer balance for August 31, 2026, and another for September 30, 2026. Include customers present on either date; starting from only September's customers would lose every fully churned account.

Sum multiple qualifying subscriptions to the customer before classifying customer movements. Check the earliest paid subscription date for every customer whose opening balance is zero. A returning customer belongs in reactivation, rather than new business.

Here is an illustrative US software company with no reactivations or currency changes. Columns A through E are customer, opening MRR, closing MRR, movement, and signed change. Values are exact USD amounts.

Customer Opening MRR (USD) Closing MRR (USD) Movement Signed change (USD)
Alder Logistics 8,000 9,500 Expansion 1,500
Beacon Supply 6,000 5,000 Contraction -1,000
Cedar Services 4,000 0 Churn -4,000
Delta Equipment 12,000 12,000 Unchanged 0
Elm Medical 0 3,000 New 3,000
Total 30,000 29,500 -500

For broader account context, the SaaS customer base KPI guide covers measures beyond the recurring revenue bridge.

Calculate the movements in Excel

With headers in row 1, calculate E2 and fill down through E6:

=C2-B2

For these rows, D2 can classify the net customer movement as follows:

=IF(AND(B2=0,C2>0),"New",IF(AND(B2>0,C2=0),"Churn",IF(C2>B2,"Expansion",IF(C2<B2,"Contraction","Unchanged"))))

Use this classification only after confirming that zero-to-positive customers are first-time subscribers. In a recurring report, add a separate reactivation classification using subscription history. Negative subscription balances require investigation rather than automatic assignment to one of these groups.

Calculate the movement cards from column E. Microsoft documents SUMIFS as adding values that meet specified criteria. These formulas show contraction and churn as positive loss amounts:

New:         =SUMIFS(E2:E6,D2:D6,"New")
Expansion:   =SUMIFS(E2:E6,D2:D6,"Expansion")
Contraction: =-SUMIFS(E2:E6,D2:D6,"Contraction")
Churn:       =-SUMIFS(E2:E6,D2:D6,"Churn")

The cards return new MRR of $3,000, expansion of $1,500, contraction of $1,000, and churn of $4,000. Keep the customer rows available beneath the cards so that the reviewer can identify the source of each movement.

Prove the bridge, then interpret it

Closing MRR = Opening MRR + New + Expansion - Contraction - Churn

Here the bridge is 30,000 + 3,000 + 1,500 - 1,000 - 4,000 = $29,500. The independent closing customer sum must agree. This check returns zero:

=SUM(B2:B6)+SUM(E2:E6)-SUM(C2:C6)

Also tie each month-end customer sum to its original subscription export. The arithmetic check alone cannot find a subscription omitted from both sides.

Net MRR growth is -500 / 30,000 = -1.7%, rounded to one decimal place. Existing customers finish at 29,500 - 3,000 = $26,500, so their net revenue retention is 26,500 / 30,000 = 88.3%, with the same rounding. New business partly offsets losses in the opening base; it does not erase them.

Finance owns the reconciliation. Sales can explain Alder's expansion; customer success should investigate Cedar's churn and Beacon's contraction. Compare those accounts with an adoption dashboard, then use the product health dashboard to examine whether usage changes preceded the commercial movement. Neither comparison proves causation by itself.

Where it goes wrong

  • Invoice totals replace subscription balances. Annual billing and one-time charges distort a monthly recurring measure.
  • Missing churned customers. A closing-only customer list excludes accounts whose balance fell to zero.
  • Net and gross movements are mixed. Month-end comparisons hide changes that reverse within the month; dated change records answer a different question.
  • Customer and subscription classifications are mixed. A customer can cancel one subscription while expanding another. Choose the reporting unit before summing.
  • Reactivation or currency effects become new sales. Show them separately and keep the bridge complete.

Covirage is not affiliated with Microsoft or Stripe.

Reconcile your own MRR file in Covirage

Bring your customer subscription exports and reporting definitions to Covirage, which maps the columns and uses its tools to compute and check the recurring revenue bridge. The external AI model explains the movements with every figure traced to its rows. Create a free Covirage account, then set up your business and bring a sample of your own data.

See revenue driver analysis for the supporting business context.

Questions people ask

Does an annual subscription count toward MRR?

Yes. Normalize its recurring contract value to a monthly amount over the covered term. Exclude sales tax and separately identified nonrecurring charges. An annual invoice belongs in the billing file, but its full amount does not belong in one month's recurring revenue balance.

Is MRR the same as recognized revenue?

No. MRR describes the monthly value of subscriptions under your reporting policy. Recognized revenue follows the company's accounting policies and service obligations. Keep the recurring revenue dashboard separate from the income statement, and explain timing and scope differences when reconciling them.

Can two month-end exports show every MRR movement?

They show the net change for each customer between those dates. They cannot reveal an upgrade followed by a downgrade within the same month. Use a dated subscription change export when the review needs gross movements rather than the net customer bridge.