# CN-Token Spot — Methodology

> Index code: `CN-TOKEN-SPOT`  
> Type: Compute spot price index  
> Frequency: Weekly (aligned with ComputeNav `prices_YYYY-MM-DD.csv`)  
> Status: v0.3 live (builder + site)  
> Build: `scripts/build_cn_indices.py` → `data/processed/cn_token_spot.csv`, `api/v1/indices.json`

---

## 1. Purpose

Measure the centre and left tail of publicly callable **chat / text inference** spot costs — a citable “power-tariff” benchmark for the industry.

Three parallel series (same universe, same rules):

| Series | Meaning |
|--------|---------|
| Floor | Lowest eligible blended quote |
| P25 | 25th percentile |
| Median | Median (**headline series**) |

---

## 2. Universe (each week)

Include a row only if all hold:

- `modality = chat` (or empty and treatable as chat)
- `pricing_unit` is token-based (`per_1m_tokens`)
- `status = healthy`
- `price_per_1m_input` and `price_per_1m_output` parse as finite positive numbers

Exclude: `pending` / `down`, embedding / image / video, non-token units, rows that cannot form a blended price.

Source: ComputeNav `data/processed/prices_YYYY-MM-DD.csv` (after `validate.py`).

---

## 3. Quote definition

For eligible row $i$:

$$
p_i = 0.7 \cdot \text{input}_i + 0.3 \cdot \text{output}_i
$$

Unit: USD / 1M tokens. Weights are fixed across providers.

---

## 4. Published levels (primary unit: USD)

Let $\{p_{i,t}\}$ be eligible quotes in week $t$:

$$
\begin{aligned}
\text{Floor}_t &= \min_i p_{i,t} \\
\text{P25}_t &= Q_{0.25}(\{p_{i,t}\}) \\
\text{Median}_t &= Q_{0.50}(\{p_{i,t}\})
\end{aligned}
$$

**Headline unit: USD / 1M tokens.** API, site, and notes cite these dollar levels (Median is the headline).

### Optional: index points (companion)

For return charts or equity co-plots only — **not** a substitute for the USD headline:

$$
I^{\text{Med}}_t = 100 \times \frac{\text{Median}_t}{\text{Median}_{t_0}}, \quad t_0 = 2026\text{-}06\text{-}20
$$

Floor and P25 may carry their own point series with the same base date.

---

## 5. Rebalance and revisions

- **Rebalance**: Rolling weekly snapshots; no fixed constituent list.
- **Revisions**: If historical CSVs are corrected, recompute affected weeks and note in the changelog.
- **Calendar**: No exchange holiday calendar; the panel filename date is authoritative.

---

## 6. Limitations

- Coverage follows ComputeNav curation, not a full-market census.
- Blended weights are a convention, not traffic weights.
- Batch / flex / long-context tiers are not modelled (Standard short-context row as on the panel).

---

## 7. Relation to GCPI

GCPI standardises a reference architecture and uses a weighted geometric mean. CN-Token Spot is an **unstandardised cross-sectional percentile** of spot quotes. They may be cited together; they are not interchangeable.
