# Revenue Analytics and Reports

The analytics pages turn your normalized revenue into decision-ready metrics: **SaaS Metrics** for recurring-revenue quality, **Channel Performance** for unit economics by channel, and **Financial Reports** for the standard finance report library.

---

## Overview

Under **Analytics** in the sidebar:

- **SaaS Metrics** — ARR, MRR, retention, and the ARR waterfall.
- **Channel Performance** — revenue, mix, and margin by channel.
- **Financial Reports** — a library of billing reports you can run and export.

## SaaS Metrics

The **SaaS Metrics** dashboard summarizes recurring-revenue health across the selected channel and date range. One exception: retention (NRR, GRR, Churn) is measured year-to-date through the selected end date, not scoped to the selected start date.

![SaaS Metrics: ARR/MRR/NRR/GRR/ARPU/DSO cards, ARR waterfall, and NRR by channel](images/saas-metrics.png)

### Metric cards

| Card | Meaning |
|------|---------|
| **ARR** | Annual Recurring Revenue — a point-in-time snapshot of active recurring revenue as of the end of the period. |
| **MRR** | Monthly Recurring Revenue for the same active recurring base. |
| **NRR** | Net Revenue Retention — expansion and contraction of your existing base. |
| **GRR** | Gross Revenue Retention — retention before expansion. |
| **ARPU** | Average Revenue Per User (per month). |
| **DSO** | Days Sales Outstanding (see [Invoices](/revenue/invoices/)). |

![SaaS metric cards with ARR, MRR, NRR, GRR, ARPU, and DSO each circled](images/saas-metrics-cards.png)

The six metric cards, circled left to right: **① ARR**, **② MRR**, **③ NRR**, **④ GRR**, **⑤ ARPU**, and **⑥ DSO**. ARR/MRR/ARPU carry an *As of &lt;date&gt;* snapshot label; NRR/GRR show the retention basis.

Charts include the **ARR waterfall** (opening → new → expansion → contraction → churn → closing), **NRR by channel**, an **MRR trend** by cohort, and **ARPU by channel**. Use **Export** to download the underlying data. Cohort and channel trend charts appear once there is enough history in scope; until then they read *No data to display.*

![ARR waterfall from Opening through New, Expansion, Contraction, and Churn to Closing](images/saas-arr-waterfall.png)

The waterfall reads left to right — **Opening ARR** plus **New business** and **Expansion**, minus **Contraction** and **Churn**, equals **Closing ARR** — with the running reconciliation listed beneath the bars.

:::info
Recurring metrics annualize each revenue record over its service window. One-time charges are included in this annualization, so ARR/MRR reflect total recurring-style revenue rather than a strictly contract-flagged recurring subset.
:::

## Channel Performance

The **Channel Performance** page compares revenue and unit economics across channels for the selected date range.

![Channel Performance: metric cards, revenue-by-channel chart, channel mix, and unit-economics table](images/channel-performance.png)

### Metric cards

| Card | Meaning |
|------|---------|
| **Total revenue** | Total revenue across all channels in scope. |
| **Top channel** | The highest-revenue channel and its share. |
| **Marketplace vs. Stripe** | Split of revenue between marketplace channels and Stripe. |
| **Avg net margin** | Average net margin after platform fees. |

![Channel Performance metric cards with each value circled](images/channel-performance-cards.png)

Circled left to right: **① Total revenue**, **② Top channel** and its share, **③ Marketplace vs. Stripe** split, and **④ Avg net margin** after platform fees.

A **revenue by channel** bar chart and a **channel mix** donut visualize the split, and the **channel unit economics** table lists each channel's revenue, platform fee, net revenue, net margin, and average days to payout. Use **Export** on the page header or above the table to download the data to CSV.

![Channel unit-economics table: revenue, platform fee, net revenue, net margin, and days to payout per channel](images/channel-unit-economics.png)

Each row is one channel; compare **net margin** and **avg days to payout** across AWS, Azure, GCP, and Stripe to see which channel keeps the most of every dollar and pays out fastest.

## Financial Reports

The **Financial Reports** page is a library of standard billing reports you can run on demand.

![Financial Reports library with the six billing reports circled](images/financial-reports.png)

The **Billing reports** library covers day-to-day receivables, billing, and collections — the six reports are circled above (**① Invoice Aging**, **② Invoice Detail**, **③ Payment History**, **④ Disbursement Summary**, **⑤ Disbursement Detail**, **⑥ Credit Memo**):

- **Invoice Aging** — outstanding invoices bucketed by aging tier, segmented by channel and counterparty.
- **Invoice Detail** — full invoice list with status, amounts, payment terms, and payment history.
- **Payment History** — all payment transactions with method, date, amount, status, and linked invoice.
- **Disbursement Summary** — marketplace payout summary: expected vs. actual date, amount, and variance.
- **Disbursement Detail** — invoice-level breakdown of each marketplace payout, mapping every received dollar.
- **Credit Memo** — issued credits and refunds with linked invoices, reason codes, and cash dates.

### Run and export a report

1. Select **Run report** on the report you want (for example, **Disbursement Detail**).
2. In the report modal, adjust the **date range** and **channel** in the header to scope the preview.
3. Review the preview table and the generated row count.
4. Select **CSV** or **PDF** to export, or **Cancel**/**Close** to dismiss.

![Disbursement Detail report modal with the row count and CSV/PDF export buttons circled](images/report-export.png)

The modal footer shows the **① generated row count** for the current scope, with **② CSV** and **③ PDF** export beside it.

## KPI calculation formulas

| KPI | Applies to | Formula | Calculation details |
|-----|------------|---------|---------------------|
| ARR | AWS, Azure, GCP, Stripe | `Σ annualized recurring revenue active as of period end` | Built bottom-up from monthly recurring amounts; one-time charges are annualized too. |
| MRR | AWS, Azure, GCP, Stripe | `ARR ÷ 12` (in aggregate) | Derived from the same active recurring base. |
| NRR | AWS, Azure, GCP, Stripe | `(base + expansion − contraction − churn) ÷ base × 100` | Base = recurring revenue active on **Jan 1 of the selected end date's year** (year-to-date); the selected start date does not shift this base. |
| GRR | AWS, Azure, GCP, Stripe | `(base − contraction − churn) ÷ base × 100` | Retention before expansion, on the same year-to-date base. |
| Churn | AWS, Azure, GCP, Stripe | `churned recurring revenue ÷ base` | Revenue lost from that year-to-date base cohort. |
| ARPU | AWS, Azure, GCP, Stripe | `MRR ÷ distinct active buyers` | Per month. |
| Total revenue | AWS, Azure, GCP, Stripe | `Σ revenue across channels in scope` | Common across channels. |
| Top channel share | AWS, Azure, GCP, Stripe | `channel revenue ÷ total revenue` | Highest-revenue channel. |
| Avg net margin | AWS, Azure, GCP, Stripe | `Σ net revenue ÷ Σ revenue (over channels with nonzero net revenue)` | Net revenue = revenue − platform fees − refunds. (**Platform fee** is this page's label for the channel fee.) |

These metrics run on the unified revenue records, so the formulas are common across channels; the per-channel *values* differ because each channel's fees and mix differ (see [Revenue Records](/revenue/revenue-records/) for how collectable amounts are normalized per channel). The **Financial Reports** page has no summary KPIs of its own.
