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
| Parameter | Type | Description |
|---|---|---|
| date | string | Date 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. |
| baseCurrency | string | Optional reporting currency. Defaults to the account's base currency. |
| category | string | Filter to specific MRR movement types (space-separated): new, expansion, reactivation, contraction, churn. Useful for isolating new-customer growth vs. existing-customer growth. |
| customer | string | Filter by a specific customer ID. |
| plan | string | Filter by plan IDs (space-separated). |
| currency | string | Filter by currency codes. |
| billing_freq | string | Filter by billing frequency (month, year, etc.). |
| pricing_model | string | licensed or metered. |
| payment_method | string | Filter by payment method (e.g. visa, paypal, ach). |
| region | string | Filter by region. |
| country | string | Filter by ISO country codes. |
| industry | string | Filter by customer industry. |
| age | string | Filter by customer age in months or ranges (e.g. 0-6 6-12). |
| size | string | Filter 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
| Property | Type | Description |
|---|---|---|
| breakdown | string | Always "period" — signals to client that result[i].breakdown keys are calendar months. |
| currency | string | The reporting currency used for all amounts. |
| result | array | One entry per day-of-month (0–31). Day 0 is a synthetic anchor where every month starts at 0. |
| result[i].date | integer | Day-of-month (0–31). |
| result[i].breakdown | object | Map of month-key (e.g. 2026-01) to month data. |
Breakdown properties (per month)
| Property | Type | Description |
|---|---|---|
| label | string | Display label (e.g. Jan 2026). |
| cumulative_mrr | integer | Cumulative 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.