When I talk to subscription business owners, I often ask a simple question: what was your churn rate last month?
Most can't tell me. Not because they don't care, but because the numbers are buried in a billing system that was built to collect money, not to explain it.
If you bill through Stripe, the data you need is already sitting in one export. This analyzer turns it into the metrics I'd want on a dashboard: MRR, churn, ARPA, MRR movements and cohort retention.
And it does it without your data going anywhere. The file is read by JavaScript in your browser. Nothing is uploaded to us or anyone else.
How to use the Stripe export analyzer
- In Stripe, go to Billing → Subscriptions.
- Set the status filter to All, so canceled subscriptions are included. Without them, there's no churn to measure.
- Click Export, choose all columns and download the CSV.
- Choose the file here. The analyzer detects the columns it needs by name: customer, status, created or start date, trial end, canceled and ended dates, amount, interval, quantity and currency.
- Check the options. Amounts are usually in dollars (29.00), and the analyzer detects cents if they look like cents. If you sell in more than one currency, pick one.
Not ready to export yet? Load the sample data, an imaginary SaaS business with four years of history, to see what you'll get.
How the maths works
Each subscription counts as paying from its start date, or from the end of its trial, until the date it ended. Amounts are normalized to a monthly figure and multiplied by quantity.
Monthly amount = Amount × Quantity ÷ months in the billing interval MRR (month end) = Sum of monthly amounts for subscriptions active at month end Logo churn = Customers lost in the month ÷ Customers at the start of the month ARPA = MRR ÷ Paying customers Net MRR retention = MRR today from customers paying at the start ÷ their MRR then
Movements are measured customer by customer between month-end snapshots. A customer whose MRR goes from zero to something is new (or reactivated, if they paid before). One whose MRR goes up is expansion, down is contraction, and to zero is churn.
The cohort table groups customers by the month they started paying and shows the share still paying at each month end after that.
How to read the result
Start with the cohort table. Read down a column: if newer cohorts keep more customers at month 3 than older ones did, your onboarding is getting better. If they keep fewer, something has changed.
Then compare your monthly logo churn with the bands on our churn benchmarks page. Recurly's July 2026 data puts the SaaS median at 3.22% and involuntary churn (failed payments) at about 1.25% across industries, roughly a third of all churn. If your churn is high, check Stripe's retry and card updater settings before anything else.
Two limits to know. The subscriptions export shows list price, so coupons and discounts aren't deducted. And a plan change on the same subscription only shows the current plan, so expansion is understated for past months.
What to do next
- Check you're counting the right things with the full guide to monthly recurring revenue.
- Dig into the churn rate formula and the cheapest churn to fix, involuntary churn and failed payments.
- Track net revenue retention, the number buyers ask about first, and model a single month with the MRR Calculator.
Frequently asked questions
Is it safe to upload my Stripe export here?
Yes. The file is never uploaded. It's read and analyzed by JavaScript running in your own browser, and nothing is sent to our servers or anyone else's. You can check by switching off your internet connection after the page loads: the analyzer still works. Close the tab and the data is gone. Your options are remembered on your device, but the file isn't.
Why doesn't my MRR match the Stripe dashboard?
Usually for one of three reasons. Stripe's dashboard deducts discounts and coupons, while the subscriptions export shows list prices. Stripe may treat past-due subscriptions differently, which you can toggle here. And Stripe calculates some metrics daily, while this analyzer uses month-end snapshots. Small differences are normal. Large ones usually mean the export was filtered to active subscriptions only.
What columns does the Stripe export need?
At minimum: a customer ID, a created or start date, and an amount. For churn, the export must include canceled subscriptions with their canceled or ended dates, so set the status filter to All before exporting. Interval, quantity, trial end and currency make the results more accurate. The analyzer matches column names case-insensitively, so it also works with most other billing exports.
How is logo churn different from revenue churn?
Logo churn counts customers: how many of the customers you had at the start of a month were gone by the end. Revenue churn counts dollars, including downgrades. If small customers leave and big ones stay, logo churn will look worse than revenue churn. The monthly table shows both churned MRR and logo churn, so you can see which is driving the change.
