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 pluginStripe subscriptions
MRR movement
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:
- New MRR: recurring revenue from customers who started paying this month.
- Expansion MRR: upgrades, add-ons, seat growth, or other increases from existing customers.
- Contraction MRR: downgrades, seat reductions, discounts, or usage decreases from existing customers.
- Churn MRR: recurring revenue lost when customers cancel or subscriptions end.
- Reactivation MRR: recurring revenue from customers who returned after previously churning.
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
- Use a consistent MRR definition across Stripe subscriptions
- Normalize non-monthly plans to monthly values
- Separate new, expansion, contraction, churn, and reactivation
- Reconcile the movement bridge to ending MRR
- Show customer-level rows for the largest changes
- Keep the view close to Stripe data so the report is easy to repeat
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
- New MRR, expansion, contraction, churn, and reactivation are mixed into one net number.
- Customer changes are hard to trace after the month closes.
- Revenue charts show the result but not the cause.
- Goal reporting is separated from MRR goal tracking.
MRR movement checklist
- Start with a locked opening MRR number.
- Put every customer movement into one clear category.
- Reconcile opening MRR plus movement to ending MRR.
- Use shareable revenue charts only after the movement story is clear.
MRR Movement Dashboard is Workestic's Stripe dashboard concept for explaining monthly recurring revenue movement from Stripe data.