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

# Read annual carrier financials

> Read reported premium and underwriting totals for one year, with explicit source coverage.

Use financials for a carrier's annual premium and underwriting totals. Use
[state results](/guides/naic-state-results) for individual jurisdictions, or
[line results](/guides/carrier-line-results) to compare lines across years.
Your organization must accept the NAIC data terms and have the dataset enabled.
A denied call returns `403 dataset_not_enabled` with access instructions.

## Find the carrier and year

Find the carrier with `GET /api/v2/insurance/carriers?name=Markel`, copy its `id`,
and request:

```http theme={null}
GET /api/v2/insurance/carriers/{carrierId}/financials
```

The response contains `carrier`, `year`, `coverage` and `companies`. An omitted
`year` selects the latest year with a reported all-lines total in either the
Underwriting and Investment Exhibit, Part 1B, or Insurance Expense Exhibit, Part 3.
Use the returned year to make a comparison explicit:

```http theme={null}
GET /api/v2/insurance/carriers/{carrierId}/financials?year=2025
GET /api/v2/insurance/carriers/{carrierId}/state-results?year=2025&state=CA
```

Each `companies` section preserves its `naicCompanyCode` and contains:

| Section | What it reports |
| - | - |
| `premium` | Part 1B line 35: direct written premium, affiliated/unaffiliated assumed and ceded amounts, and reported net written premium. |
| `underwriting` | IEE Part 3 line 35: written/earned premium, losses, expenses, reserves, other income and pretax profit. |
| `sources` | The available exhibits, reporting year and total line. |

Amounts are whole US dollars. IEE amounts are converted from thousands. Negative
amounts stay negative; `0` is a reported zero and `null` is unavailable. The
reported net is preserved even if other components do not reconcile.

## Check coverage before comparing

A null section means its total row is missing for that company and year. It never
uses an older year or sums detail rows as a substitute. A source company missing
both totals still appears with null sections and empty `sources`.

`coverage: "complete"` means both total rows exist for every source company; it
does not promise every field is populated or that we hold the complete statement.
`partial` means at least one total row is absent. If neither exhibit has totals
for any source company, the call returns `404 statutory_data_not_found`. Missing
data does not prove that the carrier did not file.

Multiple NAIC company codes can belong to one managed carrier after an identity
merge. Their statements remain separate. Do not treat an identity merge as a
consolidated financial statement or add these companies together without checking
the accounting scope.

## Understand scope and cost

This endpoint reports stored totals. It does not calculate gross premium, ratios,
rankings, or group consolidation. Part 1B and IEE have different accounting bases
and rounding; their amounts are not interchangeable. These figures do not establish
solvency, product revenue or MGA financials.

One successful annual document costs **\$0.03**, including partial coverage and
multiple source-company sections. Failed calls are not charged. Repeating a
successful read incurs another charge and may return reloaded values; this is
not restatement history. The document is not paginated. Carrier identities with
more than 200 source codes return `409 inventory_limit_exceeded` without truncation.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.