> ## Documentation Index
> Fetch the complete documentation index at: https://doc.astreus.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Segments & KPIs

> Revenue and operating metrics by segment, product, brand, channel and region — and the KPIs issuers disclose outside the statements.

Segment data comes from the same filings as the statements, through a gated engine that
decides which breakdown is real: every block must reconcile to the consolidated figure,
member identity survives renames, and the intersegment-elimination row is seated only when
it makes the block tie. Blocks that fail are held and never served.

Two views expose it: a **latest-breakdown** card per axis, and the full history inside the
`segments_kpis` statement of `/financials`.

## Latest breakdown

```
GET /api/v1/companies/{id}/segment-revenue    # business axis
GET /api/v1/companies/{id}/regional-revenue   # geography
```

No parameters. `segment-revenue` tries the business axes in order — `PRODUCT`, `SEGMENT`,
`BRAND`, `CHANNEL` — and returns the freshest annual block it finds; `regional-revenue`
does the same for `GEOGRAPHY`. Either is `null` when nothing is served.

```json theme={null}
{
  "segment_revenue": {
    "label": "Revenue by Segment",
    "axis": "SEGMENT",
    "metricKey": "REVENUE",
    "fiscalYear": 2026,
    "fiscalQuarter": null,
    "periodEndDate": "2026-01-25",
    "consolidatedRevenue": 253490000000,
    "source": { "accession": "0001045810-26-000021", "filingType": "10-K", "filingDate": "2026-02-25", "sourceTag": "us-gaap:Revenues", "vintage": "current", "q4Provenance": null },
    "items": [
      { "name": "Compute", "value": 162361000000, "member": "nvda:ComputeMember" },
      { "name": "…", "value": "…", "member": "…" }
    ],
    "priorFiscalYear": 2025,
    "priorItems": [{ "member": "nvda:ComputeMember", "value": "…" }]
  }
}
```

* `items[].member` is the stable row identity (display names can collide and change).
  `isResidual` marks the consolidated-minus-members remainder; `isReconciling` marks the
  filer's own elimination line (negative, not a segment).
* `consolidatedRevenue` is the denominator for shares. It is `null` when the top line is not
  revenue: banks, insurers and lessors have no revenue breakdown, so their reported segment
  top line stands in — `metricKey` is then `NET_INTEREST_INCOME`, `PREMIUMS_EARNED`,
  `LEASE_INCOME` or `REVENUE_FTE`, labelled as what it is.
* `source` is the citation: the filing accession (or the source document for a non-SEC
  issuer), what the block was built from (`sourceTag`), which `vintage` is serving
  (`current`, or the displaced `original` while the current is held), and for Q4 blocks how
  the quarter was produced.

Blocks read from investor presentations look the same and say so:

```json theme={null}
{
  "label": "Revenue by Product (investor presentation)",
  "axis": "PRODUCT",
  "metricKey": "REVENUE",
  "fiscalYear": 2025,
  "periodEndDate": "2025-12-31",
  "consolidatedRevenue": 22065000000,
  "source": { "accession": "SAU-2280-20260331-DECK", "filingType": "Investor presentation (PDF)", "sourceTag": "ir_deck:SAU-2280-20260331-DECK:p19", "vintage": "current" }
}
```

That is Almarai (`XSAU000001`), in SAR, cited to page 19 of the deck the number was read
from. See [Investor presentations](/investor-presentations).

## Full history: the `segments_kpis` statement

Inside `GET /companies/{id}/financials`, `financials.segments_kpis.data` holds every served
segment block and every disclosed KPI, laid across the same period columns as the
statements. Row keys encode what each row is:

| Key pattern                                                        | Row                                                                                                                              |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `seghdr::<AXIS>\|<METRIC>`                                         | Block header, e.g. "Operating Income by Operating Segment"                                                                       |
| `seg::<AXIS>::<METRIC>::<member>`                                  | One member — the canonical member key, so a segment renamed across years is still one row (`merged_from` lists the older labels) |
| `segregime::<AXIS>\|<METRIC>::<n>`                                 | An earlier segment regime the company reported under, collapsed by default                                                       |
| `kpihdr::disclosed`                                                | Header for the disclosed-KPI group                                                                                               |
| `kpi::<kpi_key>`                                                   | One disclosed KPI                                                                                                                |
| `kpimhdr::<kpi_key>::<AXIS>` / `kpim::<kpi_key>::<AXIS>::<member>` | Per-member KPIs from investor presentations, e.g. like-for-like growth by brand                                                  |

Axes are `SEGMENT`, `PRODUCT`, `GEOGRAPHY`, `BRAND` and `CHANNEL`; metrics include
`REVENUE`, `OPERATING_INCOME`, `DEPRECIATION_AMORT`, `GOODWILL`, `LONG_LIVED_ASSETS` and the
top-line families above. Reconciling rows carry `negated: true` and sort last; non-money
rows carry `no_scale`. Where a cell was derived — a fourth quarter, a discrete quarter from
year-to-date figures, a share — `calc[<column>]` shows the arithmetic.

Annual blocks are always served on the as-reported basis; quarterly blocks follow the
`reporting_basis` you asked for.

## Disclosed KPIs

Issuers print numbers in results releases and decks that never appear in the statements —
a bank's net interest margin, cost of risk, NPL ratio, coverage, CET1, LCR, advances-to-
deposits ratio and gross loans; a Saudi issuer's results-announcement headline figures
("Net profit after zakat and tax"); like-for-like growth, adjusted EBITDA and operating
counts from presentations. These reach the API only through `kpi::` and `kpim::` rows.

Ratios are stored as fractions and served in the unit a reader expects (percent to two
decimals, cost of risk in basis points, gross loans as a currency level in the statement's
scale). A statement-shaped KPI (revenue, net income) is served only where it ties the
served statement column beside it. KPIs are not served on the semiannual cadence.

## Citing a segment or KPI cell

Every row key is a `fact-source` key:

```bash theme={null}
curl "…/companies/NVDA/fact-source?statement=segments_kpis&key=seg::SEGMENT::OPERATING_INCOME::nvda:ComputeAndNetworkingSegmentMember&end_date=2026-01-25&period_type=annual" -H "X-API-KEY: $KEY"
# → provenance "segment_filed", 130141000000, source_tags ["us-gaap:OperatingIncomeLoss", "nvda:ComputeAndNetworkingSegmentMember"], filing 10-K 0001045810-26-000021
```

Segment provenance values: `segment_filed`, `segment_derived_q4`, `segment_residual`,
`segment_reconciling`, `segment_note` (read from a filing-note table), `segment_deck` (read
from a presentation), `segment_derived_period`, `segment_derived_share`. A `kpi::` row
returns `kpi_press_release` with the release's document reference, page and printed text.
`source_tags` on a segment row also carries `vintage=<current|original>` and, for a fourth
quarter, `q4=<provenance>` tokens.

## Monthly revenue

```
GET /api/v1/companies/{id}/monthly-revenue
```

Taiwan-listed companies file revenue monthly. The response is `{ monthly_revenue: {
currency, points[{ period, value, yoy, note }], attribution, licenseUrl, providerName,
latestSourceDate } }`; companies without a monthly series return 404.
