Guides / How chess accuracy is calculated
How chess accuracy is calculated
After a game review you see two numbers, one for each player: an accuracy between 0 and 100. It is tempting to read it like a school mark, but it measures something quite specific. This page walks through how GChess Review computes it, with real numbers, so you know what a 75 or a 92 actually says about your game.
Step 1: an engine score for every position
Stockfish evaluates the position before and after every move. Its score is in centipawns, hundredths of a pawn, from White's point of view: +100 means White is about a pawn better, −250 means Black is two and a half pawns better. A forced mate is scored separately, as a mate in a given number of moves.
Raw centipawns are a poor way to judge a move, though. Losing a pawn's worth in an equal position is serious; losing a pawn's worth when you are a rook up hardly matters. So the score is converted first.
Step 2: from centipawns to win percentage
The score is turned into a win percentage: roughly, how often a player in that position would go on to win, with draws counted as half. The curve is the one Lichess fitted to millions of real games:
win% = 50 + 50 × (2 / (1 + e−0.00368208 × centipawns) − 1)
Some values, so the curve is easier to picture:
- 0 centipawns (equal): 50%
- +50 (a small edge): 54.6%
- +100 (about a pawn): 59.1%
- +200: 67.6%
- +300 (about a piece): 75.1%
- +500: 86.3%
The curve flattens as the advantage grows. Going from equal to −100 costs about 9 percentage points; going from +500 to +400 costs only about 5. That is the whole point: mistakes are weighed by how much they change the likely result, not by pawns.
Step 3: accuracy of a single move
For each move, the review compares your win percentage before the move with your win percentage after it. If it did not drop, the move scores 100. If it dropped, the score falls off quickly:
move accuracy = 103.1668 × e−0.04354 × (before − after) − 3.1669 + 1, kept between 0 and 100.
The formula is the one Lichess published; the extra 1 is an allowance for the small uncertainty in any engine search, so a move that loses a hair is not punished for noise. Worked through, starting from a win percentage of 60:
- 60 → 60 (nothing lost): 100
- 55 → 54 (one point lost): 96.6
- 60 → 55 (five points lost): 80.8
- 60 → 50 (ten points lost): 64.6
- 60 → 40 (twenty points lost): 41.0
- 60 → 20 (forty points lost): 15.9
So a single move in the 60s is not a small slip: it gave away a tenth of a game's result. Most of a strong player's moves score in the 90s.
Step 4: accuracy of the whole game
A game's accuracy is not a plain average of its moves, because a plain average lets a long run of easy moves hide one disaster. GChess Review takes the average of two means:
- a volatility-weighted mean: each move is weighted by how much the evaluation was swinging around it, so moves in sharp, tense positions count for more than moves in quiet ones; and
- a harmonic mean, which is pulled down hard by your worst moves.
The result is a number where one terrible move shows clearly, but does not wipe out an otherwise good game. Opening book moves carry no label, but they do count toward accuracy: they are real moves that kept the position level.
What accuracy does not tell you
- It is not your rating. A 1200 player can score 90 in a game where the opponent never set a problem; a grandmaster can score 80 in a wild tactical fight. Accuracy measures how close your moves were to the engine's, in that particular game.
- It depends on the opponent. Simple positions are easy to play accurately. Complicated ones are not. A low score in a hard game can be the better performance.
- It is not the result. The player with the higher accuracy usually wins, but not always: one blunder at the wrong moment decides a game even if the rest was nearly perfect.
- It varies a little between tools. Different engines, depths and formulas give slightly different numbers for the same game. GChess Review follows the Lichess formulas, so its numbers are close to Lichess's, but not identical: the engine and its depth differ.
An example
In a review of Byrne v Fischer, New York 1956, at the Quick strength, Fischer, aged 13, scored 97.0% and Byrne 88.8%. Byrne's score was dragged down mainly by 11.Bg5, labelled a blunder, and 18.Bxb6, which took a queen that cost him the game. The whole game, move by move, is on its own page.
Using accuracy to improve
The single number is less useful than the moves behind it. After a review, look at the moves with the lowest accuracy, and at the critical moments the review lists: those are the positions where the result was decided. Ask what you were thinking there, and what the engine's line does differently. The guide on how to analyse your chess games has a routine for it.