Finance & Accounting
Run an MRR cohort analysis from a subscription CSV
Upload rows of customer, month and MRR. Each change is labelled new, expansion, contraction or churn, and you get a cohort table of customers and MRR.
or drop it here
- CSV
- Up to 100,000 subscription events
1 prepared source file · 102 bytes
- Observations: 5
- Customers: 2
- Ending mrr: 49
result.csv · findings.csv · cohort-heatmap.csv · manifest.json
One clear job, from source to download
- 1
Add the source
Supported formats and limits are visible before the upload.
- 2
Confirm the settings
Review the exact source, options, units and access before processing.
- 3
Inspect and download
Check the preview and warnings, then unlock the complete package.
Building an MRR movement and cohort table from a CSV
What you upload
You upload one CSV with up to 100,000 subscription events. Every row needs a customer identifier, a period and an MRR value. Movements come from comparing each customer's MRR between consecutive periods. Duplicate customer and period combinations and missing periods are reported rather than filled in. No value is interpolated for a period that is absent from your data. A larger file is rejected before processing starts.
What you get back
You get result.csv, a movement ledger in which each change is labelled new, expansion, contraction or churn, with the rule applied to each row. cohort-heatmap.csv carries active-customer counts and MRR per cohort period, so you can read retention by customer and by revenue from one export. findings.csv lists data problems and manifest.json records which file was read. Recalculate one or two customers by hand to check the labels.
Definitions that stay yours
There are no settings to choose. A customer with no earlier period counts as new, a rise in MRR is expansion, a fall is contraction and a drop to zero is churn. Companies define MRR, churn and cohort start differently, so confirm that these rules match yours. The output is arithmetic over the rows you supply, not an audited metric set. Have your finance team check it before it goes into board or investor reporting.
Questions before you run it
What columns does the CSV need?
A customer identifier, a period and an MRR value on every row. Movements come from comparing each customer MRR between consecutive periods.
How is each movement classified?
A customer with no prior period counts as new. A rise in MRR is expansion, a fall is contraction, and a drop to zero is churn. The rule applied to each row is written into the movement ledger.
Does the cohort table follow customers or revenue?
Both. cohort-heatmap.csv carries active-customer counts and MRR per cohort period, so retention by logo and by revenue can be read from one export.
What happens with gaps or duplicate rows?
Duplicate customer and period combinations and missing periods are reported in findings.csv. No value is interpolated for a period that is absent from the source.
Can I use the output for board or investor reporting?
It is arithmetic over the rows you supply, not an audited metric set. Definitions of MRR, churn and cohort start differ between companies, so check that yours match before the numbers travel further.