Reasoning eval

Is what the model says about the board actually true?

Models solve Lichess puzzles and write out their reasoning. Every factual claim in that reasoning is extracted and checked against python-chess and Stockfish. The number this eval exists to produce is the gap between how often a model picks the right move and how often the things it says about the position hold up.

A model can solve a puzzle while describing a pin that does not exist. Solve rate cannot see that — it reports one bit per puzzle. Checking the reasoning turns a single puzzle into a dozen verifiable assertions.

Puzzles

200

3 models, 600 traces

Engine

d20

Stockfish, one line per position

Spend

$24.38

Extractor: claude-haiku-4.5

Run

2026-09-08

commit 040532b

Headline

Gap = solve rate − claim accuracy, in points

ModelSolve rateClaim accuracyGapUnverifiableClaims/task$/task
GPT-5.257.0%[50.0–64.0]57.8%[54.2–61.5]−0.820.9%6.6$0.0575
Claude Sonnet 526.5%[20.5–32.5]51.8%[47.4–55.9]−25.326.5%5.0$0.0370
Qwen3.8 A95B170/20033.0%[27.0–39.5]40.0%[36.1–44.0]−7.017.0%7.2$0.0274

Claim accuracy is true / (true + false); unverifiable claims are excluded from it and reported separately. Read it carefully — the metric rewards vagueness, because a model that hedges everything into unverifiable prose scores well on a very small denominator. Read it alongside claims-per-task and the unverifiable rate, never alone. A badge marks a model the verifier did not finish; its rates rest on the smaller denominator shown rather than on the full run.

What actually separates the models

Threshold: 5 points and no overlap

A state claim is a fact about the position as it stands — “the knight on f6 is pinned.” A line claim is a calculated variation — “if Qxc4, Nxc4 wins the queen for a rook.” They are different abilities, and a single accuracy figure hides which one a model has. Intervals are 95% percentile bootstraps over 2000 resamples of whole tasks, not individual claims: claims from one trace are correlated, and resampling them independently would report an interval far narrower than the evidence supports.

How much evidence is behind each number

ModelTrueFalseUnverifiableState claimsLine claimsPlans naming a moveSound plans
GPT-5.260143827567.3%n=25155.9%n=65514%43%
Claude Sonnet 538435826874.8%n=26240.4%n=43835%31%
Qwen3.8 A95B47771524586.4%n=25728.1%n=82381%32%

Read the last two columns together. Where a plan does not name its move, a model call has to infer one, and the resolver’s mistakes then read as the model contradicting itself — so a model at 14% is having most of its plans guessed at, and its figures are not comparable with one at 81%.

By rating band

Cut from cached data — no model calls, no engine runs

BandClaude Sonnet 5GPT-5.2Qwen3.8 A95B
120055.8%n=18168.2%n=27739.7%n=343
160053.2%n=19055.3%n=25350.0%n=274
200048.0%n=17953.4%n=26434.3%n=315
240050.0%n=19253.5%n=24536.9%n=260

By motif

Motifs appearing in at least 10 tasks

MotifClaude Sonnet 5GPT-5.2Qwen3.8 A95B
advancedPawn53.5%n=7155.8%n=12048.2%n=114
advantage52.6%n=27253.3%n=35342.7%n=419
attraction36.8%n=6856.1%n=6646.5%n=99
crushing51.6%n=33555.4%n=49137.5%n=550
defensiveMove47.4%n=5751.5%n=9740.0%n=80
deflection30.8%n=5252.1%n=7335.7%n=84
endgame50.1%n=38357.6%n=56939.6%n=628
exposedKing53.2%n=4758.3%n=6037.8%n=74
fork50.0%n=10649.2%n=12433.1%n=154
kingsideAttack47.4%n=5766.7%n=6644.9%n=89
long52.2%n=31854.1%n=43641.5%n=544
master52.9%n=10252.2%n=13829.1%n=117
mate51.1%n=13373.7%n=19041.6%n=214
mateIn248.6%n=7479.6%n=10335.2%n=122
middlegame54.3%n=32657.0%n=42139.1%n=501
pawnEndgame40.0%n=3558.0%n=6942.6%n=61
pin53.5%n=4356.5%n=6235.5%n=62
sacrifice43.4%n=9948.7%n=11351.7%n=118
short53.0%n=31561.2%n=45936.5%n=482
veryLong45.1%n=9152.7%n=11043.7%n=126

What this does not measure

Contamination is not controlled

The Lichess export carries no puzzle creation date — its only date column marks the day a puzzle was featured, and is absent for almost all of them. These puzzles may well appear in training data. Nothing here separates recall from reasoning.

The extractor is a model, not an oracle

Claims are extracted by claude-haiku-4.5, and a claim it fails to extract is one the model is never held to. Its own error rate is unmeasured and is included in none of the intervals above.

Plan scoring depends on resolving a sentence to a move

Where a plan names its move, that move is read from the text. Where it does not, a model call resolves it, and plans that resolve to nothing are excluded rather than assumed.

See it happen

Read the 600 traces these numbers came from

Every puzzle, every model's reasoning, and each claim marked true, false or unverifiable against the board it was made about. The table above is the summary; this is the evidence.

The other eval grades the moves rather than the words — see the arena scorecard.