Blog · Stripe Revenue

How to explain monthly MRR movement from Stripe data

Short answer: start with beginning MRR, add new MRR, expansion, and reactivation, subtract contraction and churn, then reconcile the result to ending MRR. The useful part is not only the net number. It is the explanation of what changed and which customers caused the movement.

MRR Movement DashboardExplain new, expansion, contraction, churn, and reactivation MRR from Stripe data.

View plugin
StripeWorkestic

Stripe subscriptions

MRR movement

NewExpansionChurn

Why monthly MRR movement needs a separate view

Stripe has the subscription events, invoice data, customer records, and plan changes behind your recurring revenue. But a standard billing view usually answers what happened to one customer or invoice. A monthly MRR movement report answers a different operating question: why did recurring revenue go up or down this month?

That question matters because the same net movement can hide very different stories. A month with $20,000 of net growth from strong expansion is not the same as a month with $20,000 of net growth that came from new sales while churn quietly increased.

Start with a clean opening MRR number

Opening MRR is the recurring revenue in force at the start of the month. Use the same MRR definition your company uses for board reporting or revenue reviews. Normalize annual, quarterly, and monthly subscription intervals into monthly amounts, and exclude one-time fees, setup charges, taxes, and temporary invoice items.

If the opening number is not trusted, every movement category after it becomes a debate. Lock the definition first, then apply it consistently.

Group movement into clear categories

A good Stripe MRR movement dashboard separates the month into categories that people can act on:

Reconcile the bridge to ending MRR

The movement bridge should reconcile cleanly:

Ending MRR = starting MRR + new MRR + expansion MRR + reactivation MRR - contraction MRR - churn MRR.

This bridge turns a headline metric into a reviewable explanation. When the math ties out, the team can stop arguing about whether the dashboard is right and start discussing the movement itself.

Drill into customers behind the movement

Category totals are useful, but customer-level rows make the report operational. For each customer, show the starting MRR, ending MRR, absolute change, movement type, plan, and segment. That gives finance, founders, success, and sales the context they need without exporting every subscription into a spreadsheet.

Customer-level rows are especially important for contraction and churn. A small net decline across many customers suggests a different response than one large account downgrade.

Use the dashboard in the monthly revenue review

The best MRR movement review is short and repeatable. Start with the opening and ending MRR numbers, review each movement category, then inspect the largest customer-level changes. Finish by assigning follow-up work: churn review, expansion opportunities, pricing issues, or billing cleanup.

Monthly MRR movement checklist

Manual workflow: explaining why MRR changed

The manual workflow starts with opening MRR, then adds new subscriptions, expansion, reactivation, contraction, churn, pauses, and currency effects. The hard part is not the formula. The hard part is reconciling each movement category back to actual Stripe customers and subscriptions.

A movement dashboard should make the revenue bridge easy to read and easy to challenge. If someone asks why net MRR changed, the answer should point to customer-level rows, not a screenshot pasted into a slide.

Where teams get stuck

MRR movement checklist

MRR Movement Dashboard is Workestic's Stripe dashboard concept for explaining monthly recurring revenue movement from Stripe data.

View MRR Movement Dashboard