# Coverage

## History truncation notice

Each plan has a history window. List, range, and discovery endpoints return only data inside it and may attach a generic `_warnings` entry: `POST /data/filings`, `POST /data/company` (the `coverage` map), `POST /metric/filings`, `POST /metric/historical`, `POST /screener/metrics`, `POST /ownership/transactions`, `POST /ownership/stats`, `POST /ownership/names`, `POST /screener/ownership`, `POST /ownership/initial-holdings`, `POST /ownership/initial-holdings/stats`, `POST /screener/initial-holdings` (on `filing_date`), `POST /events/filings` and `POST /screener/events`. For `/screener/metrics` the `lookback` is clamped to your plan's window and billed only for that portion.

A filing named by `ticker` and `fiscal_year` before the window returns **`403 PLAN_TIER_INSUFFICIENT_HISTORY`** before any credits are debited. A filing, metric group, transaction or holding requested by id outside your plan returns **`403 PLAN_TIER_INSUFFICIENT`**. [`POST /ownership/transaction-ids`](/documents/post-ownershiptransaction-ids.md) and [`POST /ownership/initial-holding-ids`](/documents/post-ownershipinitial-holding-ids.md) list such ids in `restricted_ids` and return that 403 only when every id found is restricted.

## Coverage scope notice

Corporate event company coverage is the same across eligible paid plans.

Each plan covers a subset of companies. A request naming a company by `ticker` or `cik` outside your plan's scope returns **`403 PLAN_TIER_INSUFFICIENT_COVERAGE`** with `detail.required_tier`. List, discovery, `/screener/metrics`, `/screener/ownership`, `/screener/initial-holdings`, and Form 4 / Form 3 `/ownership/*` requests that name no company are filtered to your plan's scope and attach a generic `_warnings` entry. [`POST /ownership/transaction-ids`](/documents/post-ownershiptransaction-ids.md) and [`POST /ownership/initial-holding-ids`](/documents/post-ownershipinitial-holding-ids.md) report out-of-scope ids in `restricted_ids`.

## Company symbols and CIKs

A `ticker` may be any symbol the company has traded under; a `cik` may be any CIK it has filed under. Responses name the company by its current symbol, and grouping and counting are per company. When the input is not the company's current symbol or CIK, or the company is delisted, `_warnings` says so.

## Industry classification (Pro+)

Pro-plan and higher responses attach an industry `classification` block per company, when the company has one, on `POST /data/company/search`, `GET /data/company/list`, `POST /data/compare/line-items`, `POST /data/compare/facts`, and `POST /screener/metrics` results, at no extra credits.

```json
"classification": {
  "sectors": ["Technology"],
  "source": { "scheme": "US_SIC", "code": "3571", "url": "https://www.sec.gov/search-filings/standard-industrial-classification-sic-code-list" }
}
```

| Field | Meaning |
|---|---|
| `sectors` | One or two of the 12 canonical buckets — primary first, plus an optional secondary when a code spans two. |
| `source.scheme` | `US_SIC` (US, SEC SIC), `KR_KSIC` (Korea, KSIC), `JP_TSE33` (Japan, TSE 33-sector), or `EU_ICB` (Europe, ICB). |
| `source.code` | The company's official industry code as filed. |
| `source.url` | Official page to look that code up. |

The 12 canonical buckets: **Technology, Healthcare, Finance, Consumer Discretionary, Consumer Staples, Communications, Industrials, Energy, Utilities, Materials, Real Estate, Other**. `POST /screener/metrics` ([`POST /screener/metrics`](/documents/post-screenermetrics.md)), `POST /screener/ownership` ([`POST /screener/ownership`](/documents/post-screenerownership.md)) and `POST /screener/initial-holdings` ([`POST /screener/initial-holdings`](/documents/post-screenerinitial-holdings.md)) accept a `sectors` filter over these.
