Revenue summary
harbor_revenue_summaryBreak down revenue by month (collected, net of refunds) or by plan, country, industry (current MRR).
Instructions
Revenue broken down by month, plan, country or industry.
group_by='month' reads collected revenue from paid invoices, net of refunds. The other groupings read current MRR from live subscriptions, which is a different question — one is history, the other is run-rate.
Args:
group_by ('month' | 'plan' | 'country' | 'industry'): default 'month'
from (string, YYYY-MM-DD, optional): only for group_by='month'
to (string, YYYY-MM-DD, optional): only for group_by='month'
Returns JSON for group_by='month': { "basis": "collected_revenue", "rows": [ { "month": "2026-07", "invoices": number, "gross_cents": number, "refunded_cents": number, "net_cents": number } ], "totals": { "gross_cents": number, "refunded_cents": number, "net_cents": number } }
Returns JSON for the other groupings: { "basis": "current_mrr", "rows": [ { "": string, "customers": number, "mrr_cents": number, "arpa_cents": number } ], "totals": { "customers": number, "mrr_cents": number } }
Examples:
"How much did we collect in Q2?" -> group_by='month', from='2026-04-01', to='2026-06-30'
"Which plan carries most revenue?" -> group_by='plan'
"Where are our customers?" -> group_by='country'
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of the window, inclusive. Only applies to group_by='month'. | |
| from | No | Start of the window, inclusive. Only applies to group_by='month'. | |
| group_by | No | Dimension to break revenue down by: month (from invoices), or plan/country/industry (from live MRR). | month |