All models as a static table

Chart controls

Models

Every model with an official Overall rank is shown by default. Partial results keep their rank; the icon explains what evidence is incomplete.

Reasoning view applies to every chart; Reasoning effect and Economics per reasoning setting always show all three settings. Click or tap a bar, point or cell, or press Enter on it, to pin its details.

Compare two entries

Select two models to inspect their evidence together.

Who leads on the chosen metric?

Selected models, ordered by the Rank by choice above; on the leaderboard score the number is each model's official rank

How to read this chart

Headline score is the public leaderboard score; the other Rank by choices show diagnostic views when the selected models have that data.

How consistent is each model from game to game?

All settings: each dot is one game (averaged across settings); the ring is the model's headline score, where each failed generation attempt counts as 0

What does a score cost to generate?

Generation cost per player against headline score; the line marks the best value

How to read this chart

Cost is the generation cost per player program: the equal-weight mean over each model's unique game and reasoning-setting cells, on economics-eligible games only. Each tooltip names its evidence basis (billed, provider-reported, or an estimate from list prices, which is not an invoice) with the median and run count. The score is the headline score on the same games: each failed generation attempt counts as 0, and its cost is included. Every model on this page is a point; the selected models are named. The best-value line runs through the points with complete cost evidence that no other such point matches or beats, that is, none costs the same or less and scores as high, in Per reasoning setting over every model and setting; hollow markers have incomplete cost evidence (known charges only), never join the line and are left out of that comparison. The cost axis is logarithmic, so a cost of $0 sits in its own lane left of the axis break: filled when no charge was recorded on complete evidence, hollow when the evidence is incomplete and the true cost unknown. “All settings” combines the public reasoning settings; Baseline, Balanced and Intensive each select the provider setting assigned to that role for each model, and Per reasoning setting always shows all three. Output-token and API-latency views are under More charts.

How much does more reasoning help each model?

Each row shows one model's three settings (headline score, 0–100; each failed generation attempt counts as 0); Gain is Intensive minus Baseline.

How to read this chart

Baseline, Balanced and Intensive are each model's own lowest, middle and highest tested provider settings, so the literal setting differs between models; hover a marker or open the numbers to see it. A heavier setting can score lower than a lighter one.

How often does each model write a player program that works?

How each model's generation attempts ended, all reasoning settings pooled

How to read this chart

Each bar counts one model's generation attempts in the active reasoning view. Each failed attempt counts as 0 in the headline score, so a model with failures has a headline score below its working-program strength. A program rejected only for being too slow does not play and does not count; attempts that failed for reasons outside the model's code, such as provider, API or test-machine faults, are left out. Working gives the working programs out of the counted attempts.

Does code that works also play well?

Each point is one model on this page; selected models are named

How to read this chart

Program success rate is working programs divided by counted attempts, from the same counts as Program reliability: an attempt counts when it produced a working program or failed in the model's own code; a program rejected only for being too slow, and an attempt lost to a provider, API or test-machine fault, does not count. Working-program strength is the score of the programs that worked, with failed attempts left out (the leaderboard's column of the same name); All settings pools the three settings' attempts and averages the strengths of the settings that have one, as the Overall score averages its setting scores. Marker area shows how many counted attempts a rate rests on, so 100% from eight attempts reads as weaker evidence than 100% from 24. A model without a rated working program has no strength: it is listed under the chart, not drawn.

Where is each model strong or weak?

Headline score per game, averaged across reasoning settings; each failed generation attempt counts as 0

How to read this chart

Values use one colour, faint for low and strong for high. Difference from a model shows each value minus the chosen model's value in the same game, setting and score type, on a scale centred on 0: above 0 (blue) the row model scores higher, below 0 (orange) lower; it compares two published values and ranks nothing. A cell without a value says why: fail, every counted attempt failed (the headline score counts it as 0); slow, rejected by the speed check and not counted; excl, lost to a provider, API or test-machine fault and not counted; wait, a working program not rated yet; –, not tested; and in difference mode n/a, the chosen model has no value for that game.

Who beats whom?

Combined view across tested provider settings.

How to read this chart

Each cell is the row model's score against the column opponent: wins plus half the draws, as a share of their matches (W-L-D in the tooltip), so the two cells of a pair add up to 100. Use Reasoning view to show one reasoning setting.

Less-used views open on demand, so the page stays short.

Game spread Which games separate the selected models most
How to read this chart

Each row is one game; dots are the selected models' working-program strength in the active reasoning view (failed generation attempts left out). Games are ordered by the standard deviation of those scores, shown at the right: a wide spread means the game separates stronger from weaker programs, a narrow one that the selected models play it about equally well.

Cycle detector Non-transitive matchups between selected models
How to read this chart

What it finds: Leaderboard averages can hide matchup loops. The detector searches the currently selected models and reasoning view for cases where A outperforms B, B outperforms C, and C outperforms A.

How to read it: In A → B → C → A, each arrow points from the model with the higher pair score to the model it outscored. Each result lists its three edges with their pair score and win-loss-draw record.

Each arrow requires at least four matches and a pair score above 50%, with a draw counting as half a win. Results are ordered by the cycle’s weakest edge: weakest edge +x pp is the smallest of the three margins above 50%, while n is the total match count across all three edges. The detector shows up to ten cycles. These are descriptive matchup patterns, not tests of statistical significance. “No cycles” means none met these rules in the current selection and reasoning view; it does not prove that the matchups are transitive.

Output tokens and API latency How much each model wrote, and how fast
How to read this chart

Output tokens and API latency are generated-code and repair response telemetry on economics-eligible games; latency excludes local validation and compile probe time. These axes are logarithmic.

Static rankings — current page release

This table remains available without chart scripts. It describes this page's release; restoring a requested comparison and its filters requires JavaScript. Open benchmark rankings for the detailed tables.

Overall leaderboard scores

All officially ranked Overall models from the same data as the interactive charts. Partial rows keep their official rank and show that their evidence is incomplete.

Model Evidence status Rank Mean Min Max
GPT-6 AstraComplete evidence188.771.699.0
Claude Opus 5.5Complete evidence287.650.799.4
Claude Fable 5.1Complete evidence387.263.697.8
GPT-6.1 SolComplete evidence484.848.898.0
GPT-6.1 Terra ProComplete evidence582.233.995.8
Gemini 4 ArgonComplete evidence681.657.896.9
GPT-6.1 TerraComplete evidence781.159.597.0
Kimi K3.1 ProComplete evidence878.215.095.0
Claude Opus 5Complete evidence976.645.995.3
GPT-6 SolComplete evidence1072.99.793.4
GPT-5.6 SolComplete evidence1166.738.486.7
Claude Fable 5Complete evidence1265.821.093.0
Muse WonderComplete evidence1364.516.892.0
GLM-5.3Complete evidence1464.10.091.8
Grok 4.7Complete evidence1563.40.092.7
DeepSeek V4.1 Flash 1017Complete evidence1661.332.281.8
Claude Sonnet 5.5Complete evidence1760.413.498.9
Grok 4.6Complete evidence1859.012.283.0
Gemini 3.8 FlashComplete evidence1959.039.086.4
Muse Spark 1.3Complete evidence2057.825.382.2
Grok 4.5Complete evidence2156.615.488.7
GLM-5.3 FlashXComplete evidence2255.917.782.6
Claude Haiku 5.5Coverage incomplete: some games need a new attempt: their only generation attempts failed because of our test setup or the provider, not the model2355.515.389.9
Muse Spark OpenComplete evidence2455.431.790.9
GLM-5.3 FlashComplete evidence2555.215.778.5
Qwen3.8 Max 0902Complete evidence2653.425.690.9
GPT-5.4Complete evidence2753.40.097.1
Qwen3.8 2.4T A95BComplete evidence2852.731.788.4
DeepSeek V4.1 FlashComplete evidence2952.124.479.6
Muse Spark 1.2Complete evidence3051.718.484.8
Hy4 PreviewComplete evidence3150.90.086.6
Gemini 3.6 FlashComplete evidence3250.618.181.1
Ox AlphaComplete evidence3350.519.272.5
Ember-1Complete evidence3450.314.485.7
Claude Opus 4.8Complete evidence3549.60.083.2
Gemini 3.5 FlashComplete evidence3649.411.589.9
GPT-5.5Complete evidence3749.00.085.1
Qwen3.8 MaxComplete evidence3849.021.088.7
Kimi K3Complete evidence3947.20.092.3
GPT-6 LunaComplete evidence4047.120.983.0
Claude Opus 4.5Complete evidence4147.131.375.6
Claude Sonnet 5Complete evidence4246.421.879.1
GPT-5.6 TerraComplete evidence4345.40.077.1
Gemini 3.1 Pro PreviewComplete evidence4444.514.085.0
Mercury 3Coverage incomplete: some games need a new attempt: their only generation attempts failed because of our test setup or the provider, not the model; fixed opponent-and-seat coverage is incomplete4543.70.076.2
GLM-5.2Complete evidence4643.210.175.5
Beam 1.0 501B A23BComplete evidence4742.90.079.8
DeepSeek V4 Pro 0813Complete evidence4842.00.077.3
DeepSeek V4 ProComplete evidence4941.70.081.0
GPT-5Coverage incomplete: one or more documented settings are untested or ineligible5041.20.072.7
GPT-5.6 LunaComplete evidence5140.17.580.7
Minimax M3.1 FlashCoverage incomplete: the provider capability record is unavailable5236.50.069.7
Seed 2.0 CodeComplete evidence5334.90.085.0
o3Complete evidence5434.60.057.3
DeepSeek V4 FlashComplete evidence5533.60.079.4
Qwen3.8 27BCoverage incomplete: generation quality is below the publication threshold5633.20.076.1
Nemotron 3 Ultra 550B A55BCoverage incomplete: one or more documented settings are untested or ineligible5732.90.084.2
Space Bunny AlphaComplete evidence5832.20.072.3
Gemini 3.5 Flash LiteComplete evidence5931.310.360.1
Inkling SmallComplete evidence6029.84.755.3
Muse Glimmer 30BComplete evidence6128.70.048.1
GPT-OSS 120BComplete evidence6228.60.055.2
InklingComplete evidence6325.40.047.4
Step 3.7 FlashComplete evidence6422.80.047.6
Mercury 2.5 PreviewComplete evidence6521.00.044.9
Gemini 3.1 Flash LiteCoverage incomplete: one or more documented settings are untested or ineligible6615.20.042.5
Solar Mini 4Coverage incomplete: generation quality is below the publication threshold; some games need a new attempt: their only generation attempts failed because of our test setup or the provider, not the model677.70.043.5
Granite 4.2 8BCoverage incomplete: every generation attempt of a reasoning setting failed, so that setting scores 0; generation quality is below the publication threshold681.60.037.7