ChessGrader / Guides / Centipawn loss explained
Centipawn loss explained
A centipawn is 1/100 of a pawn of engine evaluation. Centipawn loss is how much evaluation your move gave up compared to the engine's best move, and ACPL — average centipawn loss — averages that over a whole game.
That's the whole definition. Everything else — accuracy scores, move grades, "estimated game rating" — is built on top of this one number. Here's how it works, what a good ACPL looks like at each rating, and where the metric breaks down.
A worked example
Say the engine evaluates your position at +1.50 — you're better by the equivalent of one and a half pawns, which is 150 centipawns. The engine's best move keeps it at +1.50. You play something else, and the engine now says your position is worth +0.90.
| Evaluation | In centipawns | |
|---|---|---|
| Best move available | +1.50 | 150 |
| Your move | +0.90 | 90 |
| Centipawn loss | 60 |
You lost 60 centipawns — a bit over half a pawn of advantage. Do that on every move and the engine keeps a running tab. Sum the losses, divide by the number of moves, and you have your average centipawn loss (ACPL) for the game. Playing the engine's best move costs 0. There is no negative centipawn loss — you can't beat the engine's top line by its own accounting.
Good ACPL by rating
These are rough ranges from public community data, for rapid-to-classical games. Treat them as honest approximations, not lab results. Fast time controls push everyone's ACPL up.
| Level | Typical ACPL |
|---|---|
| Beginner (under 1000) | 70–120+ |
| Club player (1000–1600) | ~40–70 |
| Expert (1600–2000+) | ~25–40 |
| GM (classical) | often under 20 |
For games without player ratings, this relationship gives ChessGrader a fallback estimated game rating. When ratings are available, the estimate instead starts from the player's actual rating and adjusts it by the game's accuracy relative to what is expected at that level. Either way it is explicitly a vibe, not a measurement: one game is a tiny sample, and time control changes everything.
Why centipawns get converted to expected points
Raw centipawns have a problem: the same loss matters wildly different amounts depending on the position. Dropping 100 centipawns in an equal game (0.00 → −1.00) turns a draw into a losing position — a real disaster. Dropping 100 centipawns when you're up +9.00 changes nothing; you're still completely winning.
ChessGrader follows the public shape of Chess.com's Classification V2 system: evaluation and player rating become an expected score, then the move is measured by the expected points it lost. Ordinary boundaries sit at 0, 2, 5, 10, and 20 expected points. The curve is steep near equality and flat at the extremes, which encodes the intuition above—but can also hide poor technique in a decided position. A centipawn-loss backstop catches that case, with a cap below Blunder when the result was already overwhelming. The full method is on the methodology page.
ACPL vs accuracy: two views of the same engine analysis
ACPL and accuracy start from the same engine evaluations, but they derive different per-move loss signals.
- ACPL is a plain average, in centipawns. Lower is better. It's simple and comparable across games, but a single huge blunder in an otherwise clean game gets diluted.
- Accuracy uses a separate CAPS2-inspired expected-points loss. Each move becomes a school-test-style score, and the game score is their ordinary mean. One catastrophe still leaves a mark without overwhelming dozens of precise moves.
If you want one number to track over time, ACPL is arguably the better one — it's less flattering and less noisy. Accuracy is the friendlier headline.
Limitations
Centipawn loss is the best simple metric we have, and it still has blind spots:
- It depends on the engine and depth. A deeper search can change the evaluation of both the best move and yours, so the same game produces different ACPL on different sites. ChessGrader uses a fixed 100,000-node search per move so its numbers are at least consistent with themselves.
- It doesn't know why you lost the centipawns. A principled positional decision the engine dislikes and a hung knight can cost the same 300 centipawns.
- It rewards easy games. Forced sequences and one-sided positions produce low ACPL regardless of skill — the same inflation problem accuracy has.
- Mates break the scale. "Mate in 3" isn't a centipawn number, so forced mates need special handling — ChessGrader's rules for that are part of its move classification system.
Frequently asked questions
What does centipawn loss mean in chess?
A centipawn is 1/100 of a pawn of engine evaluation. Centipawn loss is the difference between the engine's evaluation after its best move and after the move you actually played. If the best move kept you at +1.50 and your move left you at +0.90, you lost 60 centipawns.
What is a good average centipawn loss (ACPL)?
Roughly: beginners often average 70-120+ centipawns per move, club players around 40-70, experts around 25-40, and grandmasters often under 20 in classical games. These are approximations from community data, and faster time controls push everyone higher.
Is lower centipawn loss always better?
Lower means you matched the engine more closely, which is generally good. But ACPL is inflated downward by easy games — forced sequences and won positions produce low loss automatically. A low ACPL in a sharp, balanced game means much more than the same number in a one-sided one.
Why do different sites report different centipawn loss for the same game?
Because they run different engines, versions, search depths, and settings. A deeper search can change the evaluation of both the best move and yours. Differences of a few centipawns per move are normal and expected.
What is the difference between centipawn loss and accuracy?
They start from the same engine evaluations but derive different loss signals. ACPL is the plain average of centipawn losses. ChessGrader accuracy uses a separate, rating-neutral CAPS2-inspired expected-points curve, then takes the ordinary mean of the per-move scores so one big blunder matters without overwhelming dozens of precise moves.
Can centipawn loss be negative?
No. Centipawn loss measures how far your move fell short of the engine's best line, so the minimum is zero — achieved by playing the engine's top move. If your move looks better than the engine's first suggestion at a deeper search, that is a depth disagreement, not a negative loss.
How is centipawn loss handled when there is a forced mate?
Forced mates do not have a meaningful centipawn value, so ChessGrader uses explicit safeguards. Skipping mate in one is a Miss even if another forced mate remains; losing a forced mate while still winning is also a Miss; other retained mating routes keep an Excellent floor.
