How moves are classified
What actually separates a blunder from a mistake from an inaccuracy — with the real numbers.
Every engine-backed analysis tool sticks labels on your moves, and almost none of them tell you where the boundaries are. That vagueness matters: if you do not know that a "mistake" starts at exactly one pawn of thrown-away evaluation, you cannot tell whether the label means you misunderstood the position or merely picked the second-best of two reasonable moves. So here are the rules this analyzer uses, in the order it applies them.
The unit: centipawn loss
Stockfish scores a position in centipawns — hundredths of a pawn.
A score of +35 means White stands about a third of a pawn
better. Classification does not look at that score directly; it looks at
how much the score changed against the player who moved. That
difference is the centipawn loss.
If the position was +120 for White and after White's move it
is +40, White gave away 80 centipawns. For Black the sign
flips: Black's loss is the amount the evaluation moved in White's favour.
This is why a losing position does not doom you to bad grades. If you are
down a rook and you find the only move that keeps it at a rook, you lost
nothing, and the move is graded accordingly.
The thresholds
| Centipawn loss | Label | In pawns |
|---|---|---|
| more than 300 | Blunder | you threw away more than three pawns |
| more than 100 | Mistake | more than a pawn |
| more than 30 | Inaccuracy | a third of a pawn or worse |
| 30 or less | Good | near enough to best |
The 30-centipawn floor exists because engine scores are not perfectly stable. At a shallow search depth the same position can be valued a few centipawns differently from one pass to the next, and a tool that called every 5-centipawn wobble an inaccuracy would be useless. Thirty is comfortably above that noise while still being less than a third of a pawn.
Where centipawns lie, and what overrides them
Three situations are checked before the thresholds, because in each of them the raw numbers give the wrong answer.
Brilliant!! — finding a mate you had no right to
A move is brilliant when it produces a forced mate, there was no forced mate available before it, and you were not already winning comfortably — specifically, your evaluation before the move was not better than five pawns. All three conditions matter. Delivering mate from a completely won endgame is good technique, not brilliance; spotting a forced mate in a position that was balanced or lost is the thing worth flagging. Since a forced mate scores as a huge evaluation swing, the plain centipawn rule would just call it "good" and move on.
Blunder — walking into a forced mate
If there was no forced mate against you before your move and there is one after it, the move is a blunder regardless of centipawns. This catches the case where you were already losing badly: going from "down a queen" to "mated in three" may be a small numeric change, but it ends the game.
Book — the opening
Inside the first seven moves for each side, while the position is roughly balanced (both evaluations within a pawn of level) and the move loses no more than 30 centipawns, the move is labelled book rather than graded. Opening moves are a matter of preference among many sound options, and grading them on engine agreement produces noise, not insight.
Great! — the engine's own choice
When the move you played is the one the engine ranked first, it is promoted to great. In free play — where you are moving pieces yourself rather than replaying a finished game — any top-engine move that is not already brilliant is shown as great, on the principle that playing the best move available should never read as a lukewarm "good".
Checkmate is scored without the engine
There is one case the engine cannot help with: a position where the game is already over. A mated position has no legal moves, so asking Stockfish to evaluate it returns something ambiguous or nothing at all — and a classifier reading that as a normal evaluation sees an enormous swing and concludes the mating move was a blunder. This analyzer had exactly that bug, and delivering mate really did earn you a red label.
The fix is to recognise terminal positions before the engine is consulted: checkmate is scored directly as mate, stalemate and insufficient material as dead level. Only ongoing positions are sent to Stockfish. If you ever see an analyzer call your checkmate a blunder, this is why.
The full legend
| Label | Means |
|---|---|
| Brilliant!! | Found a forced mate from a position you were not already winning |
| Great! | The engine's first choice |
| Good | Within 30 centipawns of best |
| Book | Sound early-opening move, not graded |
| Inaccuracy | Lost more than 30 centipawns |
| Mistake | Lost more than a pawn |
| Blunder | Lost more than three pawns, or allowed a forced mate |
Reading the labels usefully
A run of inaccuracies in one phase of the game is more informative than a single blunder. Blunders are usually obvious in hindsight — you saw the refutation the moment it appeared. Inaccuracies are where the misunderstandings live, because you played them believing they were fine. When several cluster around the same kind of position, that is the thing worth studying.
Also worth remembering: the labels are relative to the engine's search depth. A deeper search finds refutations a shallow one misses, so the same game analyzed deeper will grade a little harsher. If a classification surprises you, re-run the position at a higher depth before believing it.
Analyze a game →