AI price index methodology
Reproduce Veqen's monthly AI price report from its downloadable change log, with the units, counting rules and limits of the data.
The AI price index describes observations in Veqen's price book. It is not a spending-weighted inflation index, a benchmark of model quality, or a record of every provider announcement.
Download and reproduce
Download the complete recorded change log as CSV. The current JSON price book supplies model kinds, units, rates and provider source links. Dated price-book packages preserve released snapshots; the live JSON follows the deployed release.
The CSV has these columns:
| Column | Meaning |
|---|---|
observed_date |
Date the change was recorded in the book, not necessarily its effective date at the provider |
model |
Provider-qualified model identifier |
change |
Catalog event, such as added, removed or updated; empty for a numeric rate change |
field |
Changed rate: in, out, cr or unit |
old_usd, new_usd |
Raw recorded rates; token fields are USD per million tokens, unit is USD per the model's billing unit |
classification |
rate_change, possible_correction or catalog_change |
Filter observed_date to the month. For numeric changes with positive old and new rates, calculate new_usd / old_usd - 1. Each changed rate is one observation: a model with changed input and output prices counts twice. Unknown or missing prices are not free usage. Changes involving zero are retained in the CSV but excluded from percentage-change summaries.
Possible corrections
A ratio of 100 or more, or 0.01 or less, is separated from headline counts as a possible listing or unit correction. Magnitude alone does not prove the cause. Smaller corrections can remain in the headline counts, and a genuine large price change can be screened out. Check the provider's source before describing an observation as an announced price cut.
The typical cut displayed in the report is the middle observation after sorting cuts; for an even count, the implementation selects the upper middle observation rather than averaging the pair. New-model tables resolve identifiers against the current catalog, so a later-removed model may no longer appear there. Removal from the catalog does not establish a provider retirement.
Current price levels
The current report groups listings by model kind and billing unit. Text and realtime groups use output-token rates; embeddings use input-token rates; other kinds use their per-unit rate. Speech and transcription seconds are shown per minute; character rates per million characters. Rates with missing or zero values and listings carrying a retirement date are excluded. Each host's listing counts separately.
The low, median and high values select the nearest sorted observation at the 10th, 50th and 90th percentiles. Models in a group can differ in capability, latency and context length. These values do not describe the cost of a representative customer workload. Use the simulator with your own usage for that.
Coverage and sources
The price book combines LiteLLM's MIT-licensed data with Veqen's billing rules and provider source links. See the price-book documentation and source notices. Updates are proposed by the build workflow and reach the website when deployed; there is no promise of instantaneous coverage.
Negotiated rates, credits, taxes, currency conversion and effective discounts are not included in the public index. Historical reports use recorded changes, not a fully reconstructed price book for every past date. The current month's report is provisional. Cite the report URL, observation month and book version when reusing a figure.
For a correction, open a source-linked issue with the provider, model and affected rate. Do not include customer usage or credentials.