How the League Score works.
Every rule behind the standings, published in full: the formula, the sources, the missing-data rule, and how crowd voting joins in.
The formula
The League Score is a weighted composite (0–100) of five public benchmark components. Each component is min–max normalised across the tracked field at build time, so a score always means "relative to the models tracked right now."
| Component | Weight | What it measures |
|---|---|---|
| LiveBench overall | 40% | General capability, contamination-resistant, refreshed monthly |
| SWE-bench Verified | 20% | Real software engineering |
| GPQA Diamond | 15% | Hard graduate-level reasoning |
| LMArena Elo | 15% | Crowd preference in blind battles |
| MMLU-Pro | 10% | Broad knowledge |
The honesty rules
- Sourced or absent. No score appears without a public source and a date; both are printed on every model page.
- Missing data is redistributed, never invented. If a model lacks a component, that weight spreads across its measured components and the page shows its coverage percentage.
- We never measure models ourselves in v1 — every number is another public benchmark’s published result, attributed.
- Prices are first-party list prices, checked against the maker’s pricing page, with the check date shown.
From form table to league table: the 60/40 rule
The published AI Pro League rulebook scores fixtures 60% benchmark / 40% crowd. Today’s standings are the benchmark form table: they rank models on measured performance only. When weekly fixtures with real blind voting launch, fixture points (3 for a win, 1 for a draw) blend in at exactly the published 60/40 split and the form table becomes the league table. The rule is stated here from day one — it will not change retroactively.
Update cadence
The data file is reviewed weekly and on any major launch or price change. Benchmark components refresh when their sources publish (LiveBench monthly, LMArena continuously, SWE-bench per submission). Every model page carries a "data verified" date.