Home / Blog / Stripe Reporting
How-to · 2026

Stripe Reporting: MRR, Refunds and Fees

Four blocks cover a monthly Stripe report: net volume, the MRR bridge, what leaked out, and what failed. How to build each, and what to ask for.

By · Published October 25, 2026 · 8 min read

A monthly Stripe report holds up when it has four blocks: net volume, the MRR bridge, what leaked out through refunds, disputes and fees, and what failed. This post lays out each block, how to build it by hand in a spreadsheet, and how to ask for it in plain English. The illustrative figures below are an example, not a benchmark.

Block 1: net volume by month

Net volume is gross volume less refunds, disputes and every Stripe fee. It is the anchor because every other block should reconcile to it. By hand, export balance transactions from the Stripe Balance report for the month, filter to sales activity, and sum the net column.

Example, one month (illustrative)
Gross volume       48,000
Refunds            -1,900
Disputes             -300
Fees               -1,650
Net volume         44,150

Keep the signs as Stripe shows them: refunds, disputes and fees negative. If you flip some and not others, the table will not add up and nobody will know why.

Block 2: the MRR bridge

MRR is a stock, a level at month-end, and the useful view is the movement between two month-ends. The bridge has five movements: new, expansion, contraction, churn and reactivation.

Example (illustrative)
Opening MRR          20,000
+ New                 1,400
+ Expansion             600
+ Reactivation         150
- Contraction          -300
- Churned              -850
Closing MRR          21,000

Check that the bridge ties before you present it. Never add month-end MRR figures together across months; each month-end is a point in time, not a flow. One Stripe-specific wrinkle: a plan switch shows as one churn and one new, so a heavy upgrade month can inflate both lines. Read the two together.

Block 3: what leaked out

Show refunds, dispute losses and fees as their own lines rather than burying them in net. A rising fee line tells a different story from a rising refund line. Fees come in two kinds: the processing fee on each transaction, and fees Stripe bills separately for products such as Billing, Radar, Tax and Connect. Report both and total them, so the full cost of taking payments is visible.

Refunds also raise a dating question: a refund in March against a February sale lands in March in the balance. If you want the refund attributed to the original sale month, that is a different calculation, covered in attributing refunds to the right month.

Block 4: failed payments

Count charge attempts, successful and failed, and compute the success rate: successful payments divided by all attempts. A drop of a few points in a month is worth a look at the failure codes, which separate declined cards from other causes. For subscription businesses, also list customers with open invoices past their due date, since failed renewals show up there.

How to ask for it in Quiriz

The connector (in beta) imports Balance transactions, Payments, Subscriptions, Invoices, MRR by month, Subscription snapshots and Customers. Metrics exist for each block above: Net volume, Refunded amount, Dispute losses, Processing fees, Other Stripe fees, Payment success rate, MRR, ARR, New MRR, Expansion MRR, Contraction MRR, Churned MRR and Reactivation MRR. You can ask:

Save those as a scheduled report and the pack arrives each month. Because the metric definitions live in Company Context, the March report and the September report use the same rules. Connectors are read-only, refresh daily and are included in paid plans. A broader intro is in Stripe AI: ask your payments data questions.

Cadence and ownership

A report like this only stays useful if someone owns it and the rules do not drift. Pick a fixed day after month-end, such as the third business day, so late-settling items have landed. Decide who reads it and which single question each block answers for them: finance reads net volume and leakage, the founder reads the MRR bridge, support reads failed payments.

Keep a small notes line at the bottom for anything unusual that month: a price change, a promotion with forever coupons, a bulk refund after an outage. Next quarter, that line is the difference between a number you can explain and one you have to reverse-engineer. Where the same numbers appear in a board or investor update, quote the definitions alongside them; see how to write a monthly business report for layout.

Three mistakes that quietly break the report

First, mixing signs: refunds, disputes and fees are negative in Stripe, and a report that shows some as positive will not foot. Second, adding month-end MRR across months to get a quarter figure; a quarter's MRR is the quarter-end value, not a sum. Third, switching time zone or currency between months, which shifts items across the month boundary and makes a trend that is really a definition change. Write the three rules at the top of the template and most of the arguments never start.

Limits to state in the report

Get the monthly Stripe report without the rebuild

Connect Stripe, ask for net volume and MRR movement by month, and schedule the report. Free to start.

Try Quiriz free →

Frequently asked questions

What should a Stripe monthly report include?
Net volume, an MRR bridge showing new, expansion, contraction, churn and reactivation, a leakage block with refunds, disputes and fees, and the payment success rate. Those four answer how much came in, how recurring revenue moved, what was lost, and whether payments are failing.
How do I see Stripe fees in total?
Processing fees come from the fee column across balance transactions. Fees that Stripe bills as their own transactions, such as Billing, Radar, Tax and Connect, are separate lines. Add both to see the whole cost.
What is the difference between MRR and net volume?
MRR is the monthly value of active subscriptions at a point in time. Net volume is money that moved through your Stripe balance in a period, including one-off payments. A month can show growing MRR and falling net volume, or the reverse.
How do I reconcile MRR movements to the closing number?
Take last month-end MRR, add new, expansion and reactivation MRR, subtract contraction and churned MRR, and compare with this month-end MRR. If it does not tie, a plan switch or a currency difference is the usual cause.
Why does my Stripe report differ from my accounting software?
Stripe dates records in the account time zone and reports on payment events; accounting software may use invoice dates and its own basis. They answer related but different questions, so reconcile at the total level and list the differences.