Machine-readable
Static JSON. No keys. No router.
These files are generated at build time and served as static assets. There is no query API, no account or query endpoint. Hosting providers may retain ordinary access logs. A verdict without a lens, as-of date, and licence line is a bug.
Licence, per field
Vendor prices are facts the vendor published. LMArena Elo is used under CC BY 4.0 from the official dataset. Artificial Analysis figures are not published here: we have no redistribution licence, so they inform what we check and never what you read. They are in no file on this site — not the catalogue, not the dominance JSON, not an export.
LMArena Elo under CC BY 4.0 from the official dataset. This file does not contain Artificial Analysis scores. We do not grant a sublicence to redistribute Artificial Analysis figures.
Endpoints
| URL | What it is | Provenance |
|---|---|---|
/data/catalogue.json | Lean board payload (prices, scores, facets). | Mixed per field: vendor prices plus LMArena Elo under CC BY 4.0. No AA scores. |
/data/plans.json | Subscription plans, published caps only. | Hand-researched. Unverified quotas are not numbers. |
/data/frontier.json | Current undominated set on lmarena, workload balanced. | LMArena + vendor prices. No AA scores. |
/data/dominance/<fileSlug>.json | One model’s verdict: frontier, dominated, dominated-with-tradeoff, unrated, or unpriced.
File slug is the model slug with / and : replaced by __. | LMArena + vendor prices. Losses named when the cheaper row is not a superset. |
/data/series/price-at-floor.json | Cheapest model at pinned Arena Elo floors, per snapshot date. Absence is null. | LMArena. Floors are append-only. |
/data/models/<fileSlug>.json | Full model record for drill-in pages. | Field-level. Do not treat the whole file as one licence. |
How to read a verdict
- Unrated is not zero and is not on the frontier.
- A cheaper model that drops image input, context, max output, tools, or reasoning is a trade, not an upgrade.
- Do not blend Artificial Analysis and LMArena into one number.
- Name the
asOfdate from the file when you cite it. - This is not a router. It does not execute inference.
CLI — npx undominated-check
Read-only. Fetches the published dominance JSON for one model, prints the verdict with lens, workload and as-of date, and exits. No key, no account, no recomputation.
npx undominated-check google/gemini-3.7-flash
npx undominated-check openai/gpt-5.2 --exit-code --json
npx undominated-check --frontier --local static/data Under --exit-code, unrated is not the same exit as dominated.
Package: packages/undominated-check (MIT, zero dependencies).
Inspect and retain the evidence
Download the permitted normalized inputs, source attribution, publication manifest and calculation source together. This preserves the evidence behind this snapshot; it does not recreate the original benchmark experiments or a historical runtime.
Download research bundle · SHA-256 checksum · Offline verifier
node verify-research-bundle.mjs undominated-research.json.gz Requires Node.js 22 or later. The verifier checks hashes without running the bundled source. Integrity is separate from source accuracy. Arena attribution travels with the download; inspect each input's source and licence before reuse.
Contract version 1. A breaking change is a new version directory, never an in-place edit.
Generate with npm run data:dominance. For the OpenRouter routing question — computed
seller counts, illustrative break-even, no invented direct price — see OpenRouter or direct.