About & data sources

Benchmark Heaven brings together pricing and benchmark data for open-source and frontier LLMs into one comparable view. Prices are normalized to USD per 1M tokens (input and output) unless a platform prices differently (GitHub Copilot's current token/AI-Credit rates and legacy request billing are shown on a separate product axis).

Open source & hobby project

Benchmark Heaven is open source under the MIT licence and a hobby project — built to give the world better tools to decide which LLM to choose for the job. The code lives at github.com/fstandhartinger/model-market-comparison. The licence covers this code only: the benchmark results, prices and other data collected here are third-party data under their own terms (see Sources below — Artificial Analysis requires attribution, Epoch AI is CC BY, DesignArena is shown under a documented risk decision), and nothing collected here is relicensed by the MIT licence. The site is still in beta: data and features change daily.

Data sources & removal on request

Benchmark Heaven is a free, open-source, non-commercial hobby project. Benchmark results are shown with attribution and links to their original publishers (Artificial Analysis, Epoch AI, DesignArena, OpenRouter, …). If you publish benchmark data and would like your numbers removed or shown differently, email info@productivity-boost.com and we will act promptly.

Support this project

If Benchmark Heaven helps you choose a model, you can Support this project. Payments go to productivity-boost.com Betriebs UG (haftungsbeschränkt) & Co. KG, the one-person company behind these projects.

For agents

Two ways in. Headless or server-side: the public HTTP API — no key, CORS open, documented in API.md. In a browser tab: in browsers with WebMCP (navigator.modelContext), every page of this site registers three read-only tools — search_benchmarks, get_benchmark_results and get_model_benchmark_summary. They work only while a benchmarkheaven.com tab is open and the browser supports WebMCP; they are not a remote MCP server. They return published results only: the value in the benchmark's own unit, its basis (measured, self-reported, derived, preliminary), benchmark version and the source with its retrieval date. A missing result is null, never an estimate. At most 25 benchmarks, 50 results or 10 models per call, with cursors for more. The tools send no cookies, store nothing and cannot change anything; other sites cannot use them from an embedded frame.

Sources

★ Featured is the shortlist the recommendation views start from. It is not hand-picked: it is the top 20 model families of the Artificial Analysis Intelligence Index, ranked by the best score any of their reasoning-effort variants reaches, with models their vendor has deprecated left out. Because the set is derived from the chart on every data refresh, it follows new releases by itself instead of waiting for someone to edit a list.

  1. 1.Claude Opus 5.557.6
  2. 2.Claude Sonnet 5.556.0
  3. 3.Muse Wonder Full55.8
  4. 4.Claude Fable 5.153.4
  5. 5.GPT 6 Astra52.7
  6. 6.Gemini 4 Argon52.6
  7. 7.Muse Wonder52.4
  8. 8.GPT 6.1 Sol51.8
  9. 9.Muse Spark 1.348.1
  10. 10.Grok 4.746.4
  11. 11.MiMo V2.6 Pro46.3
  12. 12.Qwen3.8 Max 090245.4
  13. 13.GLM 5.344.8
  14. 14.Step 5 Preview43.7
  15. 15.Kimi K343.6
  16. 16.Claude Haiku 5.543.4
  17. 17.GPT 5.6 Terra42.1
  18. 18.GLM 5.3 Flash41.8
  19. 19.Ling 3.1 Flash41.1
  20. 20.Gemini 3.8 Flash40.9
  21. 23.DeepSeek V4.1 Flash39.5pinned

Turn the “Featured” filter off on any page to explore all 897 tracked models. Featured status belongs to the family, so every reasoning variant of a featured family is included. One family can be pinned into the set on request — today that is DeepSeek V4.1 Flash — and pinned entries are labelled above. Ranking by index means a family can leave the list when a newer model outranks it; the ranks shown here are the ones in the current dataset, dated 2026-10-14.

Snapshot

Dataset generated: Wed, 14 Oct 2026 05:17:32 GMT
Models: 897 · families: 686 · offers: 3319 · providers: 97
Per-source collection dates:
  • openrouter: 2026-10-14
  • artificialanalysis: 2026-10-14
  • designarena: 2026-10-14
  • aws_bedrock: 2026-10-14
  • azure_foundry: 2026-10-13
  • google_vertex: 2026-10-14
  • nebius: 2026-10-14
  • inceptron: 2026-10-14
  • scaleway: 2026-10-14
  • ionos: 2026-10-14
  • mistral: 2026-10-07
  • tensorx: 2026-10-14
  • chutes: 2026-10-14
  • ovhcloud: 2026-10-14
  • stackit: 2026-10-14
  • t_systems_llm_hub: 2026-10-14
  • trustedtokens: 2026-10-14
  • openrouter_data_policy: 2026-10-14T04:24:49.580Z
  • aa_coding_agents: 2026-09-09
  • github_copilot: 2026-10-14
  • claude_code: 2026-10-07
  • aa_coding_agents_v1_5: 2026-10-14
  • provider_meta: 2026-10-14
  • aa_efficiency: 2026-10-14T04:22:25.015Z
  • openrouter_efficiency: 2026-10-14T04:24:29.464Z
  • chutes_efficiency: 2026-10-14T04:24:46.264Z
  • epoch_eci: 2026-10-14T04:24:47.953Z
  • openrouter_aa_relay: 2026-09-18

How we calculate

Two numbers on this site are ours rather than a source's: the adjusted cost of a task and the composite score of a model. Everything else is reproduced as published. This section explains both in full, so any figure on the site can be traced back to its inputs.

Adjusted cost per task

A price per million tokens does not tell you what a model costs you, because two models need very different numbers of tokens for the same job, and because what you actually pay depends on which provider serves you and how much of your input that provider can read from cache. The adjusted cost folds all of that into one number — modelled USD for one task:

USD/task = [input × (1 − hit) × input price + input × hit × cache-read price + input × (1 − hit) × (write price − input price) + output × output price] ÷ 1,000,000, the write term only where a write price above the input price is published and a cache-hit rate is applied. Where an input is unknown we say so instead of hiding it: missing task-token measurements assume 1,000 output tokens/task; a route that publishes a cache-read price but has no cache-hit measurement of its own — on OpenRouter or direct from a provider — gets the typical rate (the median of OpenRouter endpoints that publish a cache-read price), so a model is credited the same caching share wherever it is sold; a route without a cache-read price gets no cache-hit rate and no discount. Every such assumption is listed on the price itself — click any underlined price to see the exact inputs, sources and dates behind it. Raw list-price mode skips all of this and simply blends list prices at the fixed input:output ratio you choose.

The value map and its green line

The value map plots each model's capability score against its adjusted cost per task; cheaper models sit to the right, so the most attractive models are in the top-right corner. The green line joins the models that no cheaper model beats on capability — the Pareto frontier — with one small tolerance (Florian, 17 Sep 2026): a model stays on the line unless a model at the same price or cheaper is ahead of it by half a point of capability or more, that is 0.5 % of the score scale (on Elo boards, which have no fixed scale, 0.5 % of the plotted range). Without it, two models that are a tenth of a point apart — a difference no benchmark resolves and nobody can see on the chart — would look like a clear win for one of them.

Benchmaxxing signal

We split benchmarks into public “headline” tests that labs quote in launch posts and “held-out” tests whose questions are private, brand-new or newer than the models; indexes built from other boards, judge- or vote-graded boards and legal, finance and medical specialist boards are left out. For every headline/held-out pair in the same topic (for example GPQA Diamond against CritPt in science), the model is ranked among the models that took both tests, and the first part of the score is the average of how much higher it ranks on the headline test, in percentile points. With few pairs that part is pulled toward zero. Tags come in three levels on the published score (one decimal): light from +3.0, medium from +6.0 and very strong from +12.0, and the level follows that score alone. How much evidence stands behind a tag is shown next to it, never used to hide it: a tag built on fewer than ten comparisons, or one whose gap does not stay above zero when its benchmarks are resampled, is marked ◔ uncertain and says which of the two it is.

The second part is how jagged the model looks inside one topic. Two boards that test the same thing should put a model in roughly the same place; when they do not — strong on one coding board, weak on the next, strong on the one after — the shape looks targeted even if its headline and held-out boards happen to average out. For every topic we take the mean distance between the model's ranks on two of its boards, in percentile points, weigh the topics by how many independent comparisons each contributes, and compare the result with the catalog average (13.1 points today). At weight 0.3 a model that is one standard deviation more uneven than the catalog gains about 1.3 points, and an unusually consistent model loses about as much. Being jagged between topics still counts for nothing: that is specialisation.

How to read it: plus means better on famous public tests than on tests nobody can train for, minus the other way round, and zero means no sign. Differences between topics — strong at coding, weaker at maths — are specialisation and do not count. In detail: n is the number of distinct headline boards plus held-out boards in the model's pairs minus one; a score needs n ≥ 6 and pairs in at least two topics; the pull toward zero is n / (n + k) with k estimated from the catalog (how much score variance falls as n grows, clamped to 6–50); the interval resamples the model's headline and held-out boards separately, 400 times, and a tag whose 80 % interval reaches below zero is marked uncertain rather than dropped (Florian, 17 Sep 2026); the jaggedness part shifts that interval with the score, so what the interval quantifies is the gap part's sampling uncertainty. We also simulated a catalog in which nobody targets benchmarks — the same boards, the same coverage, the same capability levels, and every bit of today's unevenness assumed to be noise: the gap alone would still tag 17 % of models there, and the two parts together 20 %, with the extra tags falling on mid-table models, because ranks are bounded and a model in the middle of the field has the most room to spread. That is the price of the second part, and the reason it is weighted at 0.3 rather than 1. It is a screen, not proof: a positive gap fits benchmark-targeted training, but it also fits a model that is simply weaker at long agent work, which several held-out boards lean toward. Model names, labs, openness and prices are never inputs; a tier is decided from benchmark facts alone. See the flagged models and their radars.

Benchmark tiers used by the signal (112 boards)

A board without an entry counts as secondary and is not used until it gets a deliberate tier.

BoardTierReason
AA-LCR v1.1HeadlineAA-LCR dataset is published and quoted in open-model cards.
AIME 2025 (AA)HeadlineAIME 2025 problems are public and quoted in nearly every reasoning-model release post.
AIME 2026 (MathArena)HeadlineAIME's contest problems are public once the exam is held (MathArena publishes the 30 AIME 2026 problems on Hugging Face), and labs quote AIME 2026 in release material — our self-reported corpus (data/raw/benchmarks/self-reported/scout-20260915.jsonl.gz) holds AIME 2026 rows from Moonshot AI (Kimi K2.6 card) and Z.ai (GLM-5.2 card) and, written "AIME26", from Alibaba Qwen (Qwen3.6-27B card) — so it is a board a training team can aim at.
Apex 2025 (MathArena)HeadlineMathArena publishes the twelve Apex problems on Hugging Face, and labs quote it in release material — our self-reported corpus holds MathArena Apex rows from DeepSeek and Nex AGI.
Apex Shortlist 2025 (MathArena)HeadlineMathArena publishes the 47 Apex Shortlist problems on Hugging Face, and labs quote it in release material — our self-reported corpus holds Apex Shortlist rows from DeepSeek and Motif Technologies.
GPQA Diamond (AA)HeadlinePublic 198-question set, the most-quoted science number in release posts.
GPQA Diamond (Epoch AI run)HeadlineThe same public GPQA Diamond questions the AA and OpenRouter runs use, re-run by Epoch AI; the most-quoted science number in release posts.
GPQA Diamond (OpenRouter run)HeadlineSame public GPQA Diamond questions, re-run by OpenRouter.
HMMT February (MathArena)HeadlineHMMT's contest problems are public once the tournament is held, and labs quote HMMT in release material — our self-reported corpus (data/raw/benchmarks/self-reported/scout-20260915.jsonl.gz) holds HMMT February 2026 rows from DeepSeek, Moonshot AI, MBZUAI, Alibaba Qwen and Z.ai and HMMT November 2025 rows from Alibaba Qwen and Z.ai — so it is a board a training team can aim at.
Humanity's Last Exam (AA text-only)HeadlineHumanity's Last Exam questions are public and a standard release-post headline.
IFBench (AA single-turn)HeadlinePublic IFBench prompts and checkers, quoted in open-model cards.
MLS-Bench-LiteHeadlinePublic tasks and scoring code (github.com/Imbernoulli/MLS-Bench, 140 tasks with baselines; arXiv 2605.08678) that labs quote in their own release posts: the repository lists adoption by Alibaba Qwen (Qwen3.8-Max) and Moonshot (Kimi K3, Kimi-K2.7-Code), and StepFun quotes MLS-Bench-Lite for Step 5 preview (stepfun-mls-bench-lite::snapshot-2026-09-20).
MMMU Pro (AA)HeadlinePublic MMMU-Pro questions, the standard vision headline.
ProgramBenchHeadlineCR-173: public ProgramBench task set (page metadata dataset_type public) run by Vals; our self-reported corpus has lab release material quoting ProgramBench (DeepSeek, Xiaomi MiMo, StepFun), so it is a board a training team can aim at.
SciCode (AA subproblems)HeadlinePublic SciCode problems, long part of the widely quoted AA index.
SimpleQA Verified (run by Epoch AI)HeadlinePublic SimpleQA Verified questions, quoted in release posts.
Terminal-Bench 2.1 (Vals Index v2)HeadlineSame public Terminal-Bench 2.1 tasks, run by Vals.
Terminal-Bench Hard (AA)HeadlinePinned subset of the public Terminal-Bench tasks.
Terminal-Bench v2.1 (AA)HeadlineTerminal-Bench 2.x tasks are public and quoted in nearly every coding/agent release post.
Toolathlon-Verified (HKUST NLP)HeadlinePublic task set and evaluators in the maintainers' GitHub repository, and our own self-reported corpus shows eight labs quoting Toolathlon in release material — 41 rows name the Verified series (e.g. Anthropic's Fable 5.1 system card) — so it is a board a training team can aim at.
Toolathlon, original release (HKUST NLP, archived board)HeadlineThe original release's task set and evaluators are public in the maintainers' GitHub repository, and labs quoted it in release material before the Verified repair — the committed Lumina ledger (data/raw/lumina-ledger.json, family toolathlon) counts 15 vendor-reported results cited from Meta, DeepSeek, Google DeepMind, Kimi and Z.ai pages — so it was a board a training team could aim at.
τ²-Bench Airline (OpenRouter run)HeadlinePublic tau2-bench airline domain, re-run by OpenRouter.
τ²-Bench Telecom (AA)Headlinetau2-bench is public and one of the most-quoted agent numbers in release posts.
AA-AnalystAgentHeld-outAA's own unpublished analyst tasks.
AA-Omniscience IndexHeld-outPrivate AA question set; also penalises confident wrong answers, which tuning on public sets does not help.
ApprenticeBench API (NeoCognition)Held-outNew third-party ERP environment (Sep 2026).
ApprenticeBench CUA (NeoCognition)Held-outNew third-party ERP computer-use environment (Sep 2026).
ARC-AGI-1Held-outCR-173 (2026-09-26): ARC Prize scores verified results on its Semi-Private Evaluation Set, which its testing policy lists under Private Tasks ("not publicly available"); the policy itself notes possible limited leakage because tasks are sent to provider APIs, so this is held-out rather than sealed.
ArXivMath 06/2026 (MathArena)Held-outProblems from June 2026 arXiv papers, newer than training data.
AutomationBench-AAHeld-outAA runs a held-out split of AutomationBench.
Chess Puzzles (Epoch AI)Held-out100 novel chess positions generated programmatically by Epoch AI (published 2025-12-10) that “do not appear in any other source”; cannot be trained verbatim.
Code Migration (Vals Index v2 subset)Held-outVals private task set (general coding, not a vertical domain).
CritPt (AA)Held-outResearch-level physics with answers kept private by the authors.
DeepSWE (Datacurve, via Epoch AI)Held-outOriginal long-horizon tasks written by Datacurve, not public repos' history.
EBR-bench (Earthborne Rangers, Epoch AI)Held-outEpoch chose the relatively obscure board game Earthborne Rangers precisely so models are unlikely to have memorised it; measures learning across repeated playthroughs (published 2026-07-01).
EnterpriseOps-Gym-AAHeld-outNew enterprise MCP environments, not a release-post number.
FrontierMath Erdős (Epoch AI)Held-out68 Erdős problems that were open as of August 2026, resolved only by a machine-checked Lean proof; no answer key exists to train toward (CR-173).
FrontierMath Tier 4 v2 (Epoch AI)Held-outUnpublished research-level problems, run only by Epoch AI.
FrontierMath Tiers 1–3 v2 (Epoch AI)Held-outUnpublished problems, run only by Epoch AI.
Furniture Assembly Benchmark (Epoch AI)Held-outPhotos of Epoch AI’s own IKEA builds with deliberate mistakes, released 2026-09-23 and not published as a question set; run only by Epoch AI (CR-173).
GDP.pdf (AA)Held-outAA's own unpublished long-PDF tasks (2026).
ITBench-AAHeld-outAA's offline incident snapshots, not quoted by labs.
Mystery Game Puzzles (Epoch AI)Held-outEpoch keeps the game's identity deliberately undisclosed and generates the puzzles programmatically (published 2026-07-30); benchmark-specific preparation is designed out.
ProofBench v1.1Held-outCR-173: Vals private theorem-proving set (page metadata dataset_type private); labs cannot tune toward unpublished proofs.
RSI-Exam 0.1 (aiming-lab)Held-outEvery task score comes from a sealed hidden split the agent never sees, 53 of the 88 tasks are held back entirely, and the tasks were written for this benchmark in 2026 by domain experts — a lab cannot tune toward the graded data.
SimpleBenchHeld-outPrivate question set.
SWE Atlas Codebase QnA (Scale AI)Held-outScale AI private rubric set.
Terminal-Bench v4.0 (AA, upstream timeouts)Held-outThe same fresh Terminal-Bench v4.0 task set under AA's 2026-09-21 harness configuration (tasks' own timeouts); applies to this version only.
Terminal-Bench v4.0 (AA)Held-outTerminal-Bench v4.0 is a fresh task set released after most current models were trained; applies to version 4.0 only.
UGI NatIntHeld-outPrivate question set.
Vibe Code Bench (Vals Index v2)Held-outVals private app-building tasks (general coding).
WeirdMLHeld-outHand-made, newly published tasks (WeirdML v3, September 2026), not part of any public training-ready question set.
τ³-Banking (AA)Held-outNew tau3 banking domain, not yet a release-post number.
Excel Modeling Benchmark (standalone Vals board, 2026-09-21 snapshot)Domain (not used)CR-173: standalone EMB board; financial models in spreadsheets, as vals-index-emb.
Excel Modeling Benchmark (Vals Index v2)Domain (not used)Financial models in spreadsheets.
Finance Agent v2 (Vals Index v2)Domain (not used)Vertical finance work; a gap shows specialisation.
HLAB — Harvey's Legal Agent Benchmark (Vals Index v2)Domain (not used)Vertical legal work product.
Legal Research Bench (Vals Index v2)Domain (not used)Case and statute research.
MedCodeDomain (not used)CR-173: medical billing support (Vals industry healthcare, private set).
MedScribeDomain (not used)CR-173: doctors' administrative documentation (Vals industry healthcare, private set).
MLCR-AADomain (not used)Medical-record synthesis.
Tax Agent BenchDomain (not used)CR-173: research-grade US tax questions (Vals industry finance, private set); a gap shows specialisation.
Blueprint-Bench 2Secondary (not used)Andon Labs runs every model itself on 50 apartments whose photos and floor plans it does not say are public or private; the page states neither a public task set nor a held-out split, and our self-reported corpus holds no Blueprint-Bench row, so it is not evidenced as a board labs quote in release material.
BullshitBench V1 (clear pushback)Secondary (not used)Measures a trait (premise pushback), not task skill.
BullshitBench V2 (clear pushback)Secondary (not used)Measures a trait (premise pushback), not task skill.
Code Migration (standalone Vals board, 2026-09-21 snapshot)Secondary (not used)CR-173: standalone board of the Vals private Code Migration task set, which already enters the signal as a heldout board through its Vals Index component (vals-index-code-migration); kept out of the pairs so one task set is not counted twice.
Context Arena — MRCR v2 (8-needle)Secondary (not used)Synthetic long-context retrieval task on Google DeepMind's public MRCR v2 dataset, run by one independent maintainer; it measures a context-length trait rather than task skill, and our self-reported corpus holds no MRCR row, so it is not evidenced as a board labs quote in release material.
FrontierSWE v2Secondary (not used)Public task suite on GitHub (Proximal-Labs/frontier-swe-v2) behind the site’s own review protocol; rarely quoted in launch posts; the site itself is the only leaderboard for it.
GSO software optimization, Opt@1 (UC Berkeley)Secondary (not used)Public repos, rarely quoted; tiny cohort (10).
IOISecondary (not used)CR-173: public olympiad problems (IOI 2024-2026; page metadata dataset_type public) run by Vals; no lab release post in our self-reported corpus quotes it, so public yet rarely quoted (MCPMark precedent).
KernelBench-CUDA: DeepSeek NSA (RTX PRO 6000)Secondary (not used)Public CUDA problems with public reference solutions in the maintainer’s GitHub monorepo; rarely quoted in launch posts.
KernelBench-CUDA: GLM-5.2 Fused MoE (RTX PRO 6000)Secondary (not used)Public CUDA problems with public reference solutions in the maintainer’s GitHub monorepo; rarely quoted in launch posts.
KernelBench-CUDA: Grid MinGRU SPS (RTX PRO 6000)Secondary (not used)Public CUDA problems with public reference solutions in the maintainer’s GitHub monorepo; rarely quoted in launch posts.
KernelBench-CUDA: MegaQwen Decode (RTX PRO 6000)Secondary (not used)Public CUDA problems with public reference solutions in the maintainer’s GitHub monorepo; rarely quoted in launch posts.
LisanBench word chains, v0.2.0 (Lisan al Gaib)Secondary (not used)Procedural word-chain game, niche.
LiveBenchSecondary (not used)Public official leaderboard whose questions are not published as private or held back anywhere in our verified capture, and which no row of our self-reported corpus quotes (0 of 78 rows, against 41 for Toolathlon-Verified) — public but rarely quoted. The board's contamination-limiting refresh is not a fact our source states: the registry entry records "no promised publication schedule", and this release (2026-06-25) predates several models measured on it, so heldout is not claimed.
Long-Horizon Terminal-BenchSecondary (not used)The 46 task environments are public on Hugging Face (Apache-2.0) while the verifiers that grade them stay hidden, and the maintainers replay every submitted run themselves; the board is a lab's (Tencent HY) own report with its model Hy3 among the rows, and our self-reported corpus holds no Long-Horizon Terminal-Bench row, so it is not evidenced as a board labs quote in release material.
MCP Atlas (Scale AI)Secondary (not used)Half public, half held out: the 500-task public subset is on Hugging Face with the harness on GitHub, the other 500 tasks are not, and Scale runs every row itself. Our self-reported corpus finds one lab quoting MCP-Atlas in release material (StepFun's Step 5 Preview), so it is a public board that is rarely quoted — neither heldout nor a board training teams broadly aim at.
MCPMark VerifiedSecondary (not used)Public tasks, verify.py scripts and pinned MCP environments in the maintainers' GitHub repository (eval-sys/mcpmark), but no lab release post in our self-reported corpus quotes MCPMark, so it is public yet rarely quoted; each task is decided by its own script, not a judge.
MirrorCode (Epoch AI, with METR)Secondary (not used)Whole-program reimplementation from publicly known programs with held-out tests, co-developed with METR (published 2026-06-26); rarely quoted in launch posts.
PostTrainBenchSecondary (not used)Public retraining protocol and harness (aisa-group/PostTrainBench, MIT; arXiv2603.08640, verified by Epoch AI); a base-model retraining eval quoted on posttrainbench.com only.
Scale SEAL: SWE-Bench Pro V2 FullSecondary (not used)Public copyleft task set (SWE-Bench Pro V2, 642 tasks, released 2026-09-22 with a locked protocol), run by Scale itself; new split, not yet a release-post headline (CR-173).
Scale SEAL: SWE-Bench Pro V2 HARDSecondary (not used)Hard subset of the public SWE-Bench Pro V2 split, run by Scale itself under the same locked protocol; public tasks, rarely quoted (CR-173).
SOB (Structured Output Benchmark)Secondary (not used)Public dataset and code (huggingface.co/datasets/interfaze-ai/sob, github.com/JigsawStack/sob) scored by exact deterministic checks, not a judge; a vendor's board that labs rarely quote in release posts.
SOB Value AccuracySecondary (not used)Public dataset and code (huggingface.co/datasets/interfaze-ai/sob, github.com/JigsawStack/sob) scored by exact deterministic checks, not a judge; a vendor's board that labs rarely quote in release posts.
SWE-bench Verified (Epoch AI run)Secondary (not used)Public SWE-bench Verified tasks re-run by Epoch AI; the existing SWE-bench Verified board carries the same default tier, so the duplicate stays out of the headline/heldout pairs.
Vibe Code Bench v1.1Secondary (not used)CR-173: standalone Vibe Code Bench v1.1 board; the same Vals private app-building tasks already enter the signal as a heldout board through the Vals Index component (vals-index-vibe-code-bench); kept out of the pairs so one task set is not counted twice.
VulcanBench Frontier v4Secondary (not used)Public open-source task suites (v4-suite GitHub org) behind hidden tests; rarely quoted in launch posts; 33% of the combined score is judge-graded code quality.
AA Agentic IndexIndex (not used)Average of Artificial Analysis' agentic evaluations (one measured configuration per model), relayed by OpenRouter's Benchmarks API.
AA Coding IndexIndex (not used)Average of AA coding component boards.
AA Intelligence IndexIndex (not used)Average of AA component boards.
Artificial Analysis Coding Agent IndexIndex (not used)Index of AA coding-agent components.
Vals Index v2 (Vals AI)Index (not used)GDP-weighted average of its Vals component boards.
AA-BriefcaseJudged (not used)Elo from judged comparisons.
APEX-Agents-AAJudged (not used)Graded deliverables (judge); already outside the signal.
BrokenArXiv 06/2026 (MathArena)Judged (not used)Judged refusal of false statements.
ChartographyJudged (not used)Each answer is graded by a judge model (Gemini 3.5 Flash) against the golden answer and its expert-set range (github.com/surge-ai/chartography, leaderboard configuration); judge-graded boards stay outside the signal.
CharXiv ReasoningJudged (not used)GPT-4o extracts each final answer from the model's response and scores it 0/1 against the ground-truth answer (README: "scores graded by GPT-4o"; rubric in src/constants.py of github.com/princeton-nlp/CharXiv); judge-graded boards stay outside the signal, as for Surge Chartography.
DesignArena Full-StackJudged (not used)Human-vote arena Elo.
DesignArena Web Apps (agentic)Judged (not used)Human-vote arena Elo.
Elimination Game BenchmarkJudged (not used)Social game TrueSkill.
GDP.pdfJudged (not used)A response passes only when a judge model (Gemini 3.5 Flash) finds every expert-written rubric criterion satisfied (github.com/surge-ai/gdp-pdf, all_pass/mean); judge-graded boards stay outside the signal.
GDPval-AAJudged (not used)Elo from judged deliverables.
Harvey LAB-AAJudged (not used)One LLM judge against rubrics.
LMArena Agent Arena (overall net improvement)Judged (not used)Ranked by user feedback and behavioural signals from Agent Mode sessions relative to the average model, not task accuracy (CR-173).
LMArena WebDev (Code Arena, overall)Judged (not used)Ranked by pairwise community votes (Bradley-Terry), already outside the accuracy signal (CR-173).
MentalHealthBenchJudged (not used)Every criterion is scored by a judge model (GPT-5.6 Sol at high reasoning effort) against expert-written rubrics, so the board rates response quality rather than a verifiable ground truth; its registry update_cadence records a one-off 2026-09-23 research publication with no leaderboard.
React Native EvalsJudged (not used)An LLM judge rules each written requirement met or not against the generated code; a judge's ruling, not a test or reference answer, is the score.
ResearchClawBenchJudged (not used)An LLM acting as a strict peer reviewer grades each research report against a weighted rubric; the judge's rating is the score.
SWE Atlas Test Writing (Scale AI)Judged (not used)Rubrics and LLM judges.
USAMO 2026 (MathArena)Judged (not used)LLM judges grade each proof against a rubric that a model writes from the official solution (MathArena's configs/judges/main_judge.yaml and grading_scheme_creator.yaml); a judge's reading of the proof, not a checkable answer, sets the score, and three of the judge models are graded on the same board.
VitaBenchJudged (not used)An LLM evaluator (--evaluator-llm in github.com/meituan-longcat/vitabench) grades each run against the task's rubrics over sliding windows of the trajectory, with another LLM playing the user; a judge's ruling, not a deterministic check, is the score.

The composite score

Epoch ECI and Software Engineering ECI: Epoch AI, ‘Epoch Capabilities Index’. Published online at epoch.ai. Retrieved from ‘https://epoch.ai/eci’ [online resource]. Accessed 2026-09-15. Data: Epoch AI (CC BY)

Benchmarks are not on a common scale, so we do not average raw scores. The composite is rank-based: each result becomes a percentile on one common scale, and those are averaged. The scale is the AA Intelligence Index, which covers the widest field of models. The other benchmarks cover different fields — DesignArena and the Coding Agent Index test mostly frontier models — so a plain percentile there would put the same model 20–30 points lower and punish a model for being measured on a selective board. Each of them is therefore linked to the common scale through the models measured on both: a result that ranks at the same position among those models as a given AA Intelligence percentile counts as that percentile. Differences at the top are rank differences, so 99 against 97 is not a 2 % capability gap. The composite uses seven slots: AA Coding, source-matched AA Coding Agent v1.4 (the pinned 9 September snapshot; AA now publishes v1.5, which the Benchmarks table shows), AA Intelligence, Epoch general ECI, Epoch Software Engineering ECI, DesignArena Web Apps (agentic) and DesignArena Full-Stack. The DesignArena inputs are its agentic Web Apps and Full-Stack boards; the page DesignArena calls Frontend is a different, broader board with its own ratings. AA values are clamped to 0–100. A DesignArena board qualifies at an app-selected minimum of 200 battles, aligned with the source's typical preliminary/reliability threshold; its Elo is converted to the expected score against a fixed Elo 1000 opponent. That conversion keeps every model in the same order, so it does not change the composite, which uses ranks only. Percentiles are taken over every model row in the catalogue, deprecated ones included, so hiding deprecated models with a filter does not move anyone's score.

Effort settings are scored separately. The three Artificial Analysis slots (AA Coding, AA Intelligence and the Coding Agent Index) are measured per effort setting, so a result counts only for the configuration that was measured — a non-reasoning setting never borrows its max setting's index. Epoch ECI, Software ECI and DesignArena publish one result per model family, so that result is shared with the family's other settings and marked as attached. It is shared only when the family's published values agree (otherwise only the family representative's value is used), never as a family maximum and never from a retired configuration.

Thin evidence must not become an advantage. Every missing slot inherits that model's own mean observed percentile, producing a base score exactly equal to the mean of its available percentiles. A final dominance-safe projection then prevents missing data from reversing an otherwise unambiguous comparison: when one model covers every reliable slot of another measured model and is no worse in any shared slot, the less-covered model is lowered to 0.1 points below it; the better-measured model is never moved, so adding a thinly measured row cannot change a well-measured score. The unadjusted base and any adjustment are shown separately in model details, and the model page says “dominance-adjusted from” when the change exceeds one point. Models with fewer than three of the seven inputs (exact or attached) are ranked by their score like every other model, but carry a “Thin data” badge with their input count: treat their position as uncertain. A model with no reliable observed slot receives the neutral fallback 50; its zero evidence coverage stays distinct from a measured score and is excluded from capability charts. The #benchmarkscolumn counts the distinct versioned benchmarks a model has a usable result for, which is a broader set than the seven composite slots.

The score takes the Benchmaxxing signal into account, marginally: a model whose headline benchmarks run ahead of its held-out ones loses 1 point per percentile point of that positive signal (w = 1, applied after the steps above); a negative or missing signal earns no bonus. The weight is kept marginal: it is the smallest round value at which the signal changes the #1 spot on the 17 September 2026 data. The Options checkbox “Include Benchmaxxing signal in the score” (on by default) switches it off everywhere the score is used.

Category scores

Category scores are currently unavailable: each category has fewer than two anchors that meet the coverage rule. The individual benchmarks remain in the benchmark table. When a category qualifies, you can pick its score alongside the Main Composite. Each is the weighted average of that category's anchor benchmarks, on a 0–100 scale: a saturated anchor counts at half the weight of the others (see Saturated below). The anchor set is fixed and published here, so two models' category scores always cover the same benchmarks; a model is scored only when it has a result on every anchor, otherwise it has no score for that category rather than an average over an easier subset. Each benchmark counts at its newest published version. A category is only offered when at least two of its benchmarks are on a 0–100-style, higher-is-better scale and are measured for at least 60 % of the featured model families — which is why Reasoning and Vision, with one qualifying benchmark each today, have no category score. That bar applies to every anchor and is re-measured on each build: when a board's coverage falls below it the board leaves the anchor set, and a category left with one qualifying board leaves the list. Long context left it on 28 September 2026 for exactly that reason. Coding, Agentic and Science followed on 30 September when their newest anchors fell below the same bar. The boards that have left are recorded with their measured coverage in data/category-score-anchors.json. Category scores are raw benchmark results, not percentiles, and every category has its own anchors — compare models within one category, not a Coding score with a Science score.

Provider data policy

“Trains or keeps your data” is taken from OpenRouter's published provider table: a provider passes when it appears under both of OpenRouter's own filters, “Does not train” and “Zero retention”. While the option is unchecked, providers that fail that test are removed from every evaluation on this site. Two things are stated openly rather than hidden. Chutes is treated as satisfying both, because OpenRouter miscategorises it. And providers that OpenRouter does not list at all — the European sovereign hosts among them — have no published verdict to read; they are kept and marked as unknown, because we will not assert a data policy we have not read.

Subscriptions and company use

Every cost ranking on this site uses API prices; that is the clean baseline. Subscriptions such as ChatGPT Plus/Pro or Claude Pro/Max are a separate topic, in the folded note “Subscription costs may differ” below the ranking. They can make the effective cost per task much lower for heavy users, but they are not fixed token bundles: session, weekly and other limits vary and are mostly unpublished, so their effective cost per task depends on how much you use them and is never a universal number. They are not universally business-safe equivalents of API access either: account sharing, resale and automation are restricted, rate limits apply, and commercial-use eligibility depends on the provider, the plan, the region and the contract. We read the terms served to us (EEA): Anthropic's consumer terms (Claude Pro/Max) say “Non-commercial use only”, and Google says “Only personal Google Accounts can sign up for Google AI plans”, so with “buying for a company” set those plans are set aside and business seats are shown instead; Team, Enterprise and API access are the safer commercial categories. Cursor's terms explicitly allow use on behalf of an entity. GitHub steers organisations to Copilot Business without forbidding individual plans, so that is flagged as depending on plan and contract. OpenAI and xAI refuse automated reads of their pages; we do not work around that, so their prices and terms are marked as not collected. For a plan whose price we have, you can estimate its cost per task yourself: (monthly fee + any extra usage charges) ÷ the tasks you complete per month. Every input is your assumption and the result is labelled as a subscription estimate, apart from API costs. The plan list also shows the break-even point — the plan's price divided by the adjusted API cost per task of that vendor's best-scoring model in your view.

Matching models to prices

Coding Agent results are attached to an exact or explicitly audited model/reasoning identity; every harness result is retained and their median is used; like the AA indices it is never copied to another effort setting. Family-scoped Epoch ECI and Intelligence.ai / DesignArena results are stored once on the deterministic collapsed-family representative; the composite and the model pages share them with the family's other settings as attached values (see the composite score above), and the provenance note states explicitly that this does not identify the tested effort setting. Raw DesignArena score views continue to show Elo. Stable model ids and repositories are preferred over fuzzy names, so distinct releases, modes, context tiers and serving routes never share the wrong price. See the repository README and data/SCRAPING.md for how each source is collected and refreshed.

Benchmark tags and the comparison table

The Benchmarks table groups every benchmark into one category and tags its name. AA marks results measured by Artificial Analysis; Arena marks human head-to-head votes scored as Elo. Headline, Niche and Community describe prominence, not quality: headline benchmarks are the ones model release posts and technical reports usually cite, niche ones come from a company or research lab and are rarely cited, community ones are run by an independent person or project. These tiers are editorial: one model drafted them, a different model reviewed them, and both the tags and the categories live in data/benchmark-taxonomy.json. A table cell shows the latest published result for that exact model configuration — measured results are preferred, a developer's own report is marked †, and a missing result stays a dash. Bars compare values within one row only; the bold value is the row's best, and ties are all bold.

Wherever this site counts benchmarks, it counts boards: one benchmark family at one version, with at least one published result. A board can occupy several rows of the comparison table — one per harness a benchmark was run through, plus the measured cost a run of it reported — and those rows are still one benchmark. The registry lists every version we have ever read, including versions no current model has a result for, so it can be larger than the number the page shows.

Two further tags are not editorial. Saturated — “Top models sit near this benchmark's ceiling; it separates weaker models, not the best.” — is measured from the results we hold: the benchmark is on a bounded, higher-is-better scale, we have independently measured results for at least five models, and the mean of the five best results is at or above 90 % of the benchmark's ceiling. Nothing is asserted from a claim, and a benchmark we cannot assess (an Elo board, an open points scale, fewer than five measured models) is not called unsaturated — it simply carries no tag. Judged — “A preference or judge score, not task accuracy.” — marks benchmarks whose number ranks or rates outputs by preference or quality: human head-to-head votes, an Elo from a judge panel, a rubric graded by a judge model. A judge that only checks whether an answer is correct (an equality checker, a majority vote on accuracy) is not judged, because the ground truth still decides. Each Judged classification quotes the benchmark's own registry text; the classifications and the quotes live in data/benchmark-caveats.json and a test fails if a quote is not found verbatim in its source.

Both tags change how a category composite is built. A preference or judge score never averages with task accuracy: when a category shows both kinds, only the task-accuracy rows make its composite (a category whose qualifying rows are all judged gets a composite of those, and says so). A saturated benchmark still counts, at half the weight of an unsaturated one. When the Science category score qualifies, this makes its CritPt and GPQA Diamond average weighted rather than flat. The same rule governs the selectable category scores in data/category-score-anchors.json; a judged benchmark may not be an anchor at all, and the build fails rather than silently changing a published score if one is ever reclassified. None of the seven slots of the Benchmark Heaven Main Composite is saturated today; two of them (DesignArena Web Apps and Full-Stack) are preference scores, and they enter as their own separate, percentile-normalised slots rather than averaged into task accuracy.

Where the benchmark's own source states a task or question date window, or a contamination control (a private or held-out set, a semi-private set, a periodically refreshed task set), the benchmark's (i) repeats it. Where the source states nothing, the field says exactly that — we do not infer a date window from a benchmark's name. Every row also names the version it is and the date we last verified its results from the source.