Methodology & data sources
Exactly where every number on this site comes from, how it’s processed, and how often it refreshes — the technical detail behind pricing, benchmarks, speed, and the price-change log.
Pricing data
Model prices are aggregated from live provider data via OpenRouter, which normalizes rates across the major API providers. We include current models from providers such as OpenAI, Anthropic, Google, xAI, DeepSeek, Mistral, Moonshot, Qwen, and Z.AI. The roster isn’t hand-picked — models are pulled automatically and filtered by provider, a real published price, and text output, so the list grows as providers ship.
- Normalization. Every rate is converted to a single unit — USD per 1,000,000 tokens — for input, output, and cached input, so models are directly comparable.
- Cached input. We store each model’s own cached-input rate where a provider publishes one, rather than applying a flat discount. Where none is published we fall back to a conservative estimate.
- Open-weight tagging. A model is marked open-weight automatically from OpenRouter’s own
hugging_face_idfield — not a hand-maintained list — so newly-released open models are tagged the same day they appear. - Tiers. The Budget / Standard / Premium tag is our own rough classification to help you filter by price class; it isn’t a provider designation.
Benchmark data
Benchmark scores come directly from each benchmark’s published data. We don’t run models ourselves or invent scores — we ingest, normalize model names, and join to pricing.
- LiveBench — category scores and measured cost-per-task from the LiveBench project’s published results.
- Epoch AI’s benchmarking dataset (CC BY) — everything else: SWE-bench Verified, Aider Polyglot, MMLU, GPQA Diamond, MATH (Level 5), Humanity’s Last Exam, AIME, ARC-AGI-2, Big-Bench Hard, and Terminal-Bench. The same dataset also carries each model’s open-weight status and publication date, which is how the open-vs-closed race chart is built.
To draw cost vs quality, we match each benchmarked model to our pricing by a normalized model key. Coverage is partial by design: benchmarks include older or niche models we don’t price, and those still appear on the leaderboard with their score but are omitted from the cost chart. For LiveBench the cost axis is its measured cost-per-task; for every Epoch AI-sourced benchmark it’s the model’s output price per 1M tokens, used as a proxy since none of them publish a uniform per-task dollar cost.
Speed data (throughput & time-to-first-token)
Median output tokens/second and time-to-first-token figures come from Artificial Analysis’s free Data API, refreshed on the same daily schedule as pricing. Coverage is partial — not every model we price has a matching speed measurement, and where none exists we simply omit the Speed/TTFT columns for that row rather than estimate. These figures reflect Artificial Analysis’s own test conditions, not a benchmark we run ourselves; treat them as directional rather than a guarantee for your specific workload.
Embedding model data
Embedding model pricing and rankings are joined from two sources, separate from the chat-model pipeline above since embedding models aren’t covered by OpenRouter. Pricing comes from LiteLLM’s public, MIT-licensed pricing file, filtered to direct provider pricing (OpenAI, Google, Cohere, Mistral, Voyage AI) — reseller variants (Azure, Bedrock, and similar) are excluded to avoid duplicate listings. Quality scores come from the official MTEB leaderboard’s BEIR benchmark (English, retrieval-focused). The two are joined by normalized model name; coverage is partial in both directions by design, same as the chat-model benchmarks.
Price change history
The price-trends log is not a snapshot — it’s a genuine diff. Every day the pipeline runs, it compares the new pricing data against the previous day’s and records exactly what changed: a price cut, a price increase, a new model, or a retired one. Each event is keyed by its date, kind, model, field, and old/new value, so re-running the pipeline never duplicates or erases a real event. History before the log’s own tracking start was reconstructed the same way, retroactively: by walking every past commit to our pricing data and diffing consecutive real, dated snapshots — not by estimating what “probably” happened. Nothing in the log is invented.
Token price index
The price index is not a separate data source — it's computed entirely from the price-change log above by walking today's real prices backward through every dated change. Each model's price is blended 3:1 input:output, then the index is the median blended price across tracked models (per tier and overall), rebased to 100 on the log's own tracking-start date. See the index page itself for the full methodology and its disclosed limitations.
Rate limits and deprecations
The rate-limits and deprecations pages are hand-researched directly from each provider's own current docs, not part of the automated daily pipeline — neither is published in a consistently machine-readable format the way pricing is, and some providers gate exact numbers behind an account login or publish nothing at all. Both pages disclose exactly which providers have real public data and which don't, rather than guessing to fill a gap.
How often it updates
Pricing, benchmark, speed, and change-log data all refresh on an automated daily schedule. When new data lands it’s committed and the site is rebuilt, so the static pages you read always reflect the latest run. The “updated” dates shown throughout the site mark that most recent run, not a fixed or hardcoded date.
Accuracy, corrections, and independence
This is aggregated third-party data and providers change prices without notice, so treat every figure here as a planning reference and confirm the current rate on the provider’s own page before committing spend. For how we verify reports, issue corrections, and keep the data independent of any provider, see our editorial policy.
