# CN-Frontier Basket — Methodology

> Index code: `CN-FRONTIER`  
> Type: Seat-role compute price index (dated model mappings)  
> Frequency: Weekly  
> Status: Published v0.3  
> Config: `data/config/cn_frontier_seats.json` · basket version `2026Q3`

---

## 1. Purpose

Track API inference cost for **frontier closed flagships** — answering “how expensive is top-tier intelligence?” without letting a mass of cheap small models pull the median down.

Seats are **roles** (e.g. OpenAI flagship), not immortal model IDs. Each role maps to a `compare_group_id` that is updated at reconstitution dates so the index does not go stale when vendors ship successors.

---

## 2. Constituent rules

### 2.1 Seat roles (stable)

| seat_id | Label | Vendor cap |
|---------|-------|------------|
| `openai-flagship` | OpenAI flagship | ≤2 seats / vendor overall |
| `anthropic-flagship` | Anthropic flagship | |
| `anthropic-workhorse` | Anthropic workhorse | |
| `google-pro` | Google Pro tier | |
| `google-flash` | Google Flash tier | |
| `xai-flagship` | xAI flagship | |

### 2.2 Mapping epochs

`mapping_epochs` in the config are ordered by `effective_from`. For panel date $t$, use the latest epoch with `effective_from ≤ t`.

Example (abbreviated; full table in config):

| effective_from | openai-flagship | anthropic-flagship | … |
|----------------|-----------------|--------------------|---|
| 2026-04-11 | `gpt-4o` | `claude-opus-4-20250514` | … |
| 2026-07-13 | `gpt-5.6-sol` | (unchanged until later) | … |
| 2026-08-01 | `gpt-5.6-sol` | `claude-opus-5` | … |

### 2.3 Eligibility that week

- Mapped group must have ≥1 healthy chat×token quote
- Vacant seats drop out; weight is equal over **active** seats only
- Publish only if active seats $n_t \ge 3$; else `insufficient`

---

## 3. Constituent price

For active seat $j$ mapped to group $g(j,t)$:

1. Take the **median blended** $p_{j,t}$ of eligible quotes in $g(j,t)$ (blend as in CN-Token Spot).
2. Optional enhancement: prefer first-party when present; otherwise group median.

---

## 4. Basket price (primary unit: USD)

Equal-weight geometric mean:

$$
P_t = \exp\left(\frac{1}{n_t}\sum_{j=1}^{n_t} \ln p_{j,t}\right)
$$

**Headline unit: USD / 1M tokens** ($P_t$ itself).

### Optional: index points

$$
I_t = 100 \times \frac{P_t}{P_{t_0}}, \quad t_0 = 2026\text{-}06\text{-}20
$$

---

## 5. Rebalance

- **Quarterly review** (Mar / Jun / Sep / Dec panels): add a new mapping epoch; bump `basket_version` when the role set itself changes.
- **Emergency replace**: official delist or two consecutive weeks without an eligible quote → successor in a new epoch next week; changelog note in the epoch `note` field.
- Do not reweight for short-run price moves.
- Super-flagships (e.g. Fable 5) may be observation-only — not a formal seat unless added to the role set.

---

## 6. Limitations

- Role assignment and succession dates are judgmental but public and versioned.
- Level series is continuous across mapping changes; interpret jumps near reconstitution dates with the epoch table.
- No quality adjustment (see CN-Quality-Adjusted).

---

## 7. Relation to CN-Token Spot

Token Spot describes overall deflation/inflation; Frontier describes **top-tier intelligence** cost. Co-movement or divergence is informative.
