How the index is built
The question
Is AI inference getting cheaper because labs cut prices, or because buyers move to cheaper models? One number cannot answer that, so the index publishes the two parts separately and the sources that let anyone recompute them.
Universe
Every chat model with a positive input and output price in the lab's own price list, as recorded in the open LiteLLM price table: OpenAI, Anthropic, Google, DeepSeek, Mistral, xAI, Alibaba, Z.ai, Moonshot, MiniMax, Cohere, AI21, Perplexity. Reseller and cloud copies (Bedrock, Azure, Vertex, Together, Fireworks) are excluded so a model is counted once. Fine-tuned entries are excluded. No editorial membership list: a model enters the week it is priced and leaves the week it is removed.
Blended price = 0.75 × input + 0.25 × output, in dollars per million tokens. Cache pricing is ignored. One snapshot per ISO week, the latest in the week, from the table's git history back to September 2023.
Same-model index (chained)
Each week, the geometric mean of price ratios over models priced in both this week and last. The index chains those links from 100 in September 2023. A model entering or leaving cannot move it. A week-on-week ratio beyond 20× in either direction is dropped from the link as a table correction rather than a price change.
Composition index
The naive equal-weight geometric mean of all priced models, divided by the chained link, cumulated. It is what basket turnover alone did. Naive average = chained × composition, in logs, so the two always reconcile.
Quality-adjusted (hedonic) line
Capability comes from the Epoch AI Capabilities Index (ECI), a linear scale where Claude 3.5 Sonnet is 130 and GPT-5 is 150. Scores are joined to price keys by a name normaliser (190 of 244 scored API models match). Each week, ordinary least squares of log price on ECI across the scored models. The published level is the fitted price of a 130-point model. The index chains the two fits at the pooled mean score of both weeks, in sample, never at an extrapolated reference. Weeks with fewer than ten scored models carry no hedonic value.
Cost of a fixed capability
For each of three levels on Epoch's index (130, 145 and 160), the cheapest blended list price among models scoring at least that level in the week. No regression and no extrapolation: a level has no value until some priced model reaches it. The fitted (hedonic) price above is the smoothed companion to this floor.
What buyers pay
Weights are OpenRouter's daily rankings dataset: the top 50 models by prompt plus completion tokens, summed per ISO week, since January 2025. Each model's weight is joined to its list price by the same name normaliser. The published level is the token-weighted mean blended list price over matched models; coverage, the share of routed tokens that found a price, is published beside it (60 to 90 per cent). The Törnqvist index chains, over models matched in both weeks with average token shares as weights, the ratio of the same price key to itself, so a reseller joining or leaving a model's group does not register as a price change.
OpenRouter routes third-party developer traffic that already chose to shop across labs. It overstates substitution relative to enterprise contracts. The bias runs one way, which is why it is a useful leading indicator and not a measure of total spend.
Implied margin
Serving cost per million blended tokens = GPU rent per hour ÷ tokens served per GPU-hour ÷ utilisation. Throughput is the only frontier-scale figure published by a lab: DeepSeek's V3/R1 serving statistics (February 2025), about 73,700 input and 14,800 output tokens per second per eight-GPU H800 node, treated as H100. The cost floor is the Vast.ai median H100 SXM rent at full utilisation; the ceiling is AWS's published H100 on-demand rate at 40 per cent. Margin at list = 1 − cost ÷ price, taken against the cheapest first-party list price within 6.5 ECI points of the best closed-weights and open-weights model priced that week (Epoch's grouping), and against what routed traffic pays.
This is the margin a frontier-class open system implies, not any closed model's true cost: model sizes are unpublished, and DeepSeek's input rate counts 56 per cent cache hits, so the floor is generous. The band starts with each rate source: Vast from August 2026, AWS from October 2026.
Open vs closed, and hosts
For each capability level (Epoch ECI 130, 145, 160) we take the cheapest blended list price among closed-weights models, among open-weights models at their lab's own price, and among open-weights models at any third-party host in the LiteLLM table. Host prices under a fifth of a model's median are dropped as promotions or stale rows. The host discount for a model is its lab's price divided by the cheapest (and the median) host price. DeepSeek's floor lift is the cheapest price with DeepSeek's models removed, divided by the cheapest price overall: 1.0 means DeepSeek does not set the floor.
Leaving the APIs
What a buyer pays per million tokens to run open weights itself. Desk boxes: monthly cost (Apple's lease rate for a Mac Studio; NVIDIA's list price plus a host PC written off over three years for an RTX 5090) plus electricity at $0.17/kWh, divided by the tokens the box can produce in a month at estimated decode and prompt speeds, blended 3:1. Shown at full use and at 25 per cent. Datacentre: GPU rent per hour from Vast.ai, AWS and the neoclouds' posted prices (RunPod, CoreWeave, Lambda, Nebius), or $1.45/hr all-in for an owned H100, at 40 per cent utilisation on DeepSeek's published throughput. "Must fall" is how far the box's monthly cost has to drop to match the cheapest closed model at the same ECI. Speeds are estimates until measured on the hardware. Hugging Face download counts (last 30 days) split GGUF repositories, the format people run locally, from the labs' own repositories.
Cost per task
Once a month we send eight short tasks with checkable answers to the most-used models on OpenRouter plus a fixed set of anchors, at each model's default settings, and record the tokens used, the reasoning tokens and the cost OpenRouter charged. Cost per task is the mean over the eight tasks. A run stops at a fixed spend cap. The suite is small and easy; the trend in tokens per task matters more than any single score. Motivation: Zhu (2026, arXiv:2608.29843) finds the price per completed task stopped falling while the price per token fell, because reasoning models use more tokens.
Routed token volume and the US-vs-China share
OpenRouter publishes weekly token counts per model under CC BY 4.0. We sum them by lab (a hand-kept map from model author to company and region) and by region. Models outside OpenRouter's top 50 appear as one "long tail" band; named models from labs outside the map appear as "other labs". The US closed share is the tokens served by closed-weights models from US labs; the China share is tokens served by models from Chinese labs, open or closed. This is traffic routed through one aggregator, not the whole market: direct API traffic to each lab is not visible.
Who pays and who collects
From SEC filings (public domain). Capex: quarterly capital expenditure of Microsoft, Alphabet, Amazon, Meta and Oracle from 10-Q and 10-K XBRL facts. Filings report year to date, so each quarter is the difference between consecutive year-to-date figures; a quarter is assigned by the midpoint of its period. Chip and memory makers: total quarterly revenue of NVIDIA, Broadcom and Micron, an upper bound on what they take from these five. Cloud rental: segment revenue from filing instances: AWS, Google Cloud (includes Workspace), Microsoft's Server products and cloud services (Azure is not reported alone in dollars), Oracle Cloud Infrastructure, and CoreWeave's total revenue. Quarters below half of both neighbours are dropped as restatement artefacts. Also published: Oracle's remaining performance obligations and NVIDIA's purchase obligations. Each company defines its lines differently, so compare trends, not levels across companies.
Speed
Every day we stream the same prompt (about 200 words of plain prose, output capped at 2,000 tokens) three times to each model and keep the medians. Models: the top 20 by tokens on OpenRouter in the last completed week, plus a paired set of Anthropic and OpenAI models measured three ways: OpenRouter's default routing, OpenRouter pinned to the lab's own servers, and the lab's API directly. Tokens per second counts visible output tokens after the first one arrives; reasoning tokens are excluded and show up in time to first token instead. One prompt, measured from one location: a buyer elsewhere will see different absolute numbers.
Events
Daily, the price table is diffed against the previous snapshot inside the universe: launch, price cut, price increase, removed, with old and new blended prices. Before 23 October 2026 the resolution is weekly (git history); after, daily. A correction appears as a cut followed by an increase, with both percentages shown.
Validation
The 26-model basket of the public Token Price Index (tokenpriceindex.com), priced from these open tables, lands within 3 per cent of its published figure. The replica is logged as a check and its basket is maintained by hand. The published TPI figure itself is never stored or republished.
Sources and licences
- BerriAI/litellm price table and its commit history, MIT
- pydantic/genai-prices, MIT, for dated price lists and cross-checks
- Epoch AI Capabilities Index, CC BY 4.0
- OpenRouter rankings dataset, CC BY 4.0, cited as "Source: OpenRouter (openrouter.ai/rankings)"
Not used: Artificial Analysis (its terms bar redistribution and comparison products); tokenpriceindex.com figures (non-commercial citation only). Everything here may be redistributed with attribution.
Versioning
Every value carries its method string in the API (method). A change to the method rewrites the whole series under the new string, so history never drifts silently. Raw snapshots are kept immutable with timestamps; every number can be recomputed from them.
Known limits
- List prices, not invoices. Volume discounts, batch tiers and free listings are outside the index; free listings do appear in the usage weights.
- LiteLLM is community-maintained. Corrections happen; the 20× guard and the events feed make them visible rather than silent.
- Epoch scores are per model and fixed, so capability does not drift with a lab's silent updates.
- The "lab's own entry" rule is approximate where a lab also hosts another lab's model.