Blog · Board and management reporting · Software
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.
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.
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.
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.
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.
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.
Covirage is not affiliated with Microsoft or Stripe.
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.
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.
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.
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.