Analyze SaaS Billing Data from CSV
When you analyze SaaS billing data from CSV exports—from Stripe, Chargebee, Recurly, or your payment processor—you're working with subscription events, invoice line items, and customer records that need joining across multiple files to calculate MRR or churn. Quadratic handles the date parsing, currency columns, and multi-file joins that break in Excel when your subscriber count crosses a few thousand rows.
Handling proration and mid-cycle changes
When a customer upgrades or downgrades mid-month, billing systems issue a prorated credit for unused time and a new charge for the remainder of the cycle. These appear as separate invoice line items on the same date, often with the same subscription_id. Summing by subscription_id without checking the amount sign will double-count revenue. Quadratic's Python layer lets you filter for amount > 0 or check the line_item_type column before aggregating, which is clearer than nested Excel IF statements.
Cohort analysis by signup month
To calculate retention, group customers by the month they first subscribed, then count how many remain active each subsequent month. This requires joining the subscription start date from one export against the current status from another, grouped by month. Excel pivot tables cannot do a month-over-month retention grid without pre-calculating a cohort column in a helper sheet. Quadratic's groupby and pivot functions calculate this directly from the raw CSVs.
What it costs
DataMimi is free to try without an account, and the free plan includes credits every month. Paid plans add more credits, more files per analysis and more seats; every feature, from dashboards to slide decks, is on every plan. See the pricing page for current prices.
Drop your file in and ask a question — no account needed.
Upload your spreadsheet.xlsx .xls .csv — free to try, no accountWhat this export contains
| customer_id |
| subscription_id |
| invoice_date |
| billing_period_start |
| billing_period_end |
| amount |
| currency |
| status |
| plan_name |
| mrr |
| quantity |
| discount_amount |
| tax_amount |
| invoice_number |
Common questions
How do I calculate MRR from a SaaS billing CSV?
Filter for active subscriptions, normalize annual plans to monthly values by dividing by 12, and sum the recurring amounts. Quadratic lets you write this as a Python groupby that updates when you add new data, rather than a SUMIFS formula that needs manual date range updates each month.
Why do my invoice totals not match my bank deposits?
Payment processor fees, refunds issued after the invoice date, and failed charges create timing differences. Join your invoice CSV against your payout CSV on the payout_id or transfer_id column to see which invoices funded which deposit, something that requires VLOOKUP across two sheets in Excel and breaks when either file has duplicate IDs.
How do I calculate churn rate from subscription data?
Count active subscriptions at the start of the month, count how many of those canceled before month-end, and divide. The difficulty is identifying which subscription_id values were active on a specific date when your export shows status changes as separate rows, requiring a self-join that Excel cannot do without helper columns.
Can I analyze billing data from multiple SaaS products together?
Yes, if each product exports a customer_id or email that appears in all files. Stack the CSVs with a product_name column added to each, then group by customer and product. Excel's Power Query can do this but requires refreshing the connection manually; Quadratic re-imports automatically when the source files change.
What is the difference between gross revenue and net revenue in billing exports?
Gross revenue is the invoice amount before refunds and discounts. Net revenue subtracts refunds, proration credits, and discount_amount. Some processors put these in separate columns, others in separate rows with negative amounts, so calculating net revenue requires checking the row type or status column before summing.
Try it with your own file
DataMimi reads the file you actually have — merged cells, headers below row one, totals pasted at the bottom — and shows which rows and columns every number came from.
Ask about your fileMore in SaaS and subscription metrics
- Analyze User Retention Data from CSV or Excel Export
- Analyze Churn Data from SaaS Export
- Visualization tool for data analysis from Excel and CSV
- AI Tool for Childcare Business Analytics — Upload Enrollment & Billing Files, Get Instant Insights
- What Is Gross Revenue Retention? The Floor Metric for SaaS Health
- What Is Magic Number SaaS? The Sales Efficiency Metric Explained

