MRR Growth


Get the per-month-per-day cumulative MRR change for each calendar month in the requested date range. Each calendar month becomes its own data series, anchored at zero on day 1 — useful for comparing how the current month is tracking against previous months at the same point in time.

GET /reports/mrr-growth

Chart-shaped response: array of { date, breakdown } entries where each entry is one day-of-month (0–31) and breakdown keys are the months being compared.

Query parameters

ParameterTypeDescription
datestringDate range in yyyyMMdd-yyyyMMdd format (e.g. 20260101-20260331). Whole calendar months only — a leading partial month is excluded; a trailing partial month is shown but truncated. Defaults to the last 365 days.
baseCurrencystringOptional reporting currency. Defaults to the account's base currency.
categorystringFilter to specific MRR movement types (space-separated): new, expansion, reactivation, contraction, churn. Useful for isolating new-customer growth vs. existing-customer growth.
customerstringFilter by a specific customer ID.
planstringFilter by plan IDs (space-separated).
currencystringFilter by currency codes.
billing_freqstringFilter by billing frequency (month, year, etc.).
pricing_modelstringlicensed or metered.
payment_methodstringFilter by payment method (e.g. visa, paypal, ach).
regionstringFilter by region.
countrystringFilter by ISO country codes.
industrystringFilter by customer industry.
agestringFilter by customer age in months or ranges (e.g. 0-6 6-12).
sizestringFilter by customer size.

Example response

200 OK
{
"breakdown": "period",
"currency": "usd",
"result": [
{
"date": 0,
"breakdown": {
"2026-01": { "label": "Jan 2026", "cumulative_mrr": 0 },
"2026-02": { "label": "Feb 2026", "cumulative_mrr": 0 },
"2026-03": { "label": "Mar 2026", "cumulative_mrr": 0 }
}
},
{
"date": 1,
"breakdown": {
"2026-01": { "label": "Jan 2026", "cumulative_mrr": 1500 },
"2026-02": { "label": "Feb 2026", "cumulative_mrr": 800 },
"2026-03": { "label": "Mar 2026", "cumulative_mrr": -200 }
}
},
{
"date": 2,
"breakdown": {
"2026-01": { "label": "Jan 2026", "cumulative_mrr": 3300 },
"2026-02": { "label": "Feb 2026", "cumulative_mrr": 1500 },
"2026-03": { "label": "Mar 2026", "cumulative_mrr": 250 }
}
}
]
}

Result properties

PropertyTypeDescription
breakdownstringAlways "period" — signals to client that result[i].breakdown keys are calendar months.
currencystringThe reporting currency used for all amounts.
resultarrayOne entry per day-of-month (0–31). Day 0 is a synthetic anchor where every month starts at 0.
result[i].dateintegerDay-of-month (0–31).
result[i].breakdownobjectMap of month-key (e.g. 2026-01) to month data.

Breakdown properties (per month)

PropertyTypeDescription
labelstringDisplay label (e.g. Jan 2026).
cumulative_mrrintegerCumulative MRR change from day 1 of that month through this day, in the reporting currency. Months with fewer days (e.g. February) omit entries past their last day; the current month omits days past today.

GET /reports/mrr-growth-table

Table-shaped response with the same data, transposed for tabular rendering: rows are months, columns are days.

Query parameters

Same as /reports/mrr-growth.

Example response

200 OK
{
"currency": "usd",
"result": {
"list": {
"2026-01": {
"label": "Jan 2026",
"timeline": {
"0": { "cumulative_mrr": 0 },
"1": { "cumulative_mrr": 1500 },
"2": { "cumulative_mrr": 3300 }
}
},
"2026-02": {
"label": "Feb 2026",
"timeline": {
"0": { "cumulative_mrr": 0 },
"1": { "cumulative_mrr": 800 },
"2": { "cumulative_mrr": 1500 }
}
}
}
}
}

GET /exports/mrr-growth.csv

CSV export of the same data in long format (one row per month-day). Ideal for cohort/pacing analysis in Excel or BI tools.

Query parameters

Same as /reports/mrr-growth.

Example response

Month,Day,MRR change (USD)
Jan 2026,0,0
Jan 2026,1,1500
Jan 2026,2,3300
Feb 2026,0,0
Feb 2026,1,800
Feb 2026,2,1500

Amounts are in cents/smallest currency unit. Divide by 100 for the main currency unit.