You finish a game and the accuracy report says 94.2%. Is that good? Great? And why does your opponent show 91.7% when they lost?
Accuracy scores are one of the most misunderstood metrics in chess. Let's unpack exactly what they mean β and what they don't.
How Accuracy Is Calculated
Chess accuracy scores β whether from Lichess, Chess.com, or FireChess β are all built on the same concept: centipawn loss.
Here's the formula in plain English:
- For every move you played, an engine evaluates the position before and after.
- It compares your move to the best possible move the engine found.
- The difference in evaluation (measured in centipawns) is your "loss" for that move.
- Your accuracy is a function of how small your average loss was across all moves.
The exact formula varies by platform. Chess.com uses a conversion function that maps average centipawn loss to a percentage from 0β100. Lichess uses a similar approach. FireChess uses the raw centipawn loss per-move, grouped into classifications (brilliant, best, excellent, good, inaccuracy, mistake, blunder).
To understand accuracy, you first need to understand the raw number it comes from. If you're not already familiar with the concept, read our complete guide: What Is Centipawn Loss? β it covers how Stockfish calculates evaluations and what those numbers actually mean in practical terms.
Why You Can Lose With 94% Accuracy
This is the biggest source of confusion. Accuracy measures how closely you followed the engine's recommendation β not whether you won.
Imagine this scenario: Your opponent played a slightly inaccurate opening move early in the game. You didn't punish it optimally, but you also didn't blunder anything obvious. You both played at 90%+ accuracy. But because your opponent's inaccuracy created a strategically disadvantaged position for them, they lost the endgame despite their high accuracy score.
Accuracy tells you how well you played given the positions that arose. It doesn't tell you:
- Whether the positions were objectively equal or unequal
- Whether your opponent created pressure that forced you into passive play
- Whether an opening blunder from move 4 put you in a losing position early
A 95% accurate loss often means you played well but started from a worse position. A 75% accurate win often means your opponent blundered more than you did.
This is also why average centipawn loss and accuracy % tell different stories. Two players might both score 92% accuracy, but one had a steady 20 cp average across all moves while the other had many 0 cp moves punctuated by a single 80 cp mistake. The accuracy % looks the same, but the centipawn loss profile is completely different. For more on this distinction, see how centipawn loss is calculated.
What "Brilliant" Accuracy Actually Looks Like
Most players fixate on the top of the scale. So what does 99%+ accuracy look like?
It's essentially impossible to sustain across an entire game. Even world-class engines playing at the same level register a few percent accuracy loss over 50+ moves. A 99% accurate game usually means:
- The game was extremely short
- Most of the "moves" were forced captures or recaptures with no real decision
- One player was winning so easily that every "alternative" was catastrophic, making every move count as optimal
For real improvement, track average accuracy across 20+ games, not a single-game spike. See our accuracy benchmarks by rating guide to understand what your average accuracy means at your level.
Accuracy vs. Centipawn Loss β the Deeper Difference
A common question is: "If accuracy comes from centipawn loss, why look at both?" The short answer is that accuracy is a processed metric while centipawn loss is raw data β and each serves a different purpose.
What Centipawn Loss Measures
Centipawn loss is the absolute difference in evaluation (in hundredths of a pawn) between your chosen move and the engine's best move. If Stockfish says the best move gives +1.00 and your move gives +0.40, your centipawn loss for that move is 60. Straightforward.
Average centipawn loss (ACPL) is the mean of these per-move differences across the entire game. It's a direct, unprocessed number. There's no scaling, no clamping, no curve β it simply tells you, on average, how far from optimal your play was.
What Accuracy % Measures
Accuracy % takes that raw centipawn loss data and runs it through a non-linear conversion function. The purpose of this conversion is to make the metric more intuitive: a 0β100 scale that humans can immediately grasp.
But here's the critical detail: accuracy % is not proportional to centipawn loss.
The Non-Linear Relationship
The relationship between your average centipawn loss and your accuracy % follows a curve β small losses at the top of the scale punish you much harder than large losses at the bottom. This has real practical implications:
| Average Centipawn Loss | Approximate Accuracy % | What This Means |
|---|---|---|
| 0 cp | 99.9%+ | Perfect engine play β essentially unreachable for humans |
| 10 cp | ~93% | A very strong club game, most moves were excellent or best |
| 25 cp | ~82% | A decent game with a few noticeable imperfections |
| 50 cp | ~68% | Several inaccuracies or one moderate mistake |
| 100 cp | 50% | Clear mistakes; likely a blunder or two |
| 200 cp | ~32% | Multiple blunders, or one catastrophic error |
| 500 cp | ~15% | The engine barely recognises the game as chess |
The jump from 10 cp to 25 cp (just 15 extra centipawns on average) drops your accuracy from ~93% to ~82% β an 11-point hit. But the jump from 100 cp to 200 cp (100 extra centipawns) drops you from 50% to 32% β only 18 points for more than 6Γ the centipawn increase.
Why this matters: A single 70 cp mistake in an otherwise clean game (say, 15 moves at 5 cp each) gives you an average of ~9 cp, which maps to ~93% accuracy. The same 70 cp mistake in a messy game (15 moves averaging 30 cp) gives you an average of ~33 cp, which maps to ~78%. The mistake cost you identically in engine terms, but its impact on the accuracy % depends entirely on the quality of the rest of your game.
The chart below visualises this directly:
Key takeaway: accuracy % is compressed at the top and stretched at the bottom. A 20-cp improvement from 100 cp to 80 cp moves your accuracy from 50% to 57% β modest. But the same 20-cp improvement from 20 cp to 0 cp moves your accuracy from 86% to 100% β nearly three times the impact. The engine punishes every tiny deviation from perfect play disproportionately. This is one reason why grandmasters obsess over seemingly "small" improvements in their play: shaving 5 cp off your average is much harder at the top, and the accuracy reward is much steeper.
A Concrete Example: One Move That Changes Everything
Let's make this real with a specific position from the Two Knights Defense, a sharp opening where a single decision can swing the evaluation by several pawns.
The Position
FEN:
r1bqkb1r/ppp2ppp/2n5/3Pp3/2B5/5N2/PPPP1PPP/RNBQK2R b KQkq - 0 5
This arises after: 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5
White to move? No β it's Black's turn.
ββ Position after 5.exd5 βββββββββββββββββββββββ
β r . b q k b . r β
β p p p . . p p p β
β . . n . . . . . β
β . . . P p . . . β
β . . B . . . . . β
β . . . . . N . . β
β P P P P . P P P β
β R N B Q K . . R β
β Black to move β
ββββββββββββββββββββββββββββββββββββββββββββββββ
Black faces a critical decision. The correct continuation is Na5 β attacking White's light-squared bishop before it can inflict damage. The blunder is Nxd5?, which seems natural (recapturing the pawn and centralising the knight) but falls into the infamous Fried Liver Attack.
The Two Paths
| Path | Move | Eval After | Centipawn Loss | Accuracy Impact |
|---|---|---|---|---|
| Engine best | Na5 attacking the bishop | ~+0.9 (White slightly better β Black has compensation with the misplaced knight) | 0 cp | ~95%+ for this move |
| Natural blunder | Nxd5? recapturing | ~+3.5 (White is winning β 7.Nxf7! follows) | 260 cp | ~25% for this move |
| Solid alternative | b5 (Ulvestad variation) | ~+0.8 (playable, sharp) | ~10 cp | ~90% |
The brutal reality: Nxd5? looks like a normal developing move. You capture the pawn, centralise your knight, stay active. But Stockfish's evaluation screams that you've just made a 260-centipawn mistake β enough to drop your game accuracy from a potential 92% to something like 65% in a single move.
Before and After: The Evaluation Swing
Before Black's move (position after 5.exd5): The evaluation is approximately +0.3 in White's favour β a slight advantage from having an extra pawn (even though it's a temporary sacrifice). The position is still in the realm of normal chess.
After Nxd5? (Black's mistake): White plays 7.Nxf7! β the Fried Liver sacrifice. After Kxf7 Qf3+ Ke6, White has only one piece for the sacrificed knight, but the attack is overwhelming. The evaluation jumps to +3.5+. Black's king is in the centre, exposed, and White has Qf3 threatening mate, Nc3 attacking the pinned knight, and all of White's pieces ready to join the attack.
After Na5 (correct): White's evaluation is +0.9 β White has a stable advantage, but Black has reasonable play. The accuracy difference between the two continuations is enormous.
This illustrates a crucial truth about accuracy scoring: the engine judges the move itself, not your intention. A "natural" move that looks good to a human can be a 260-cp catastrophe to Stockfish. Your accuracy % will reflect the engine's judgment, capturing exactly how far your chosen path strayed from the optimal one.
This position and the Fried Liver line are discussed further in our guide to centipawn loss in tactical sequences.
Position Deep Dive: Accuracy in Action
Theory is one thing β let's see how accuracy plays out in real positions. Below are three positions that show exactly how centipawn loss translates to accuracy, and why the engine's judgment often diverges from human intuition.
Position 1: The99% Move vs. the 70% Move
White to move β both Nxe5+ and Qf3+ win the piece back, but the engine sees a 1.5-pawn difference between them.
This position arises in the Fried Liver Attack after 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7. White sacrificed a piece on f7 and now needs to recapture. Two moves both win β but the engine strongly prefers one.
| Move | Eval After | Centipawn Loss | Per-Move Accuracy | What Happens |
|---|---|---|---|---|
| Nxe5+ (engine best) | +4.0 β White is winning | 0 cp | ~99% | Wins the piece cleanly. After 7...Kd6 8.Qf3+ Ke6 9.Nxc6, White has an extra piece with a crushing position. |
| Qf3+ (tempting alternative) | +2.5 β White is still winning | ~150 cp | ~70% | Also wins the piece, but Black gets a more coordinated position after 7...Ke6 8.Nxc6 Nxc6, and White's advantage is less dominant. |
Both moves lead to a winning position. But the150-centipawn gap between them reflects a real strategic difference: Nxe5+ recovers the piece immediately with a forcing check, maintaining full control. Qf3+ delays the recapture, giving Black time to consolidate.
The per-move accuracy captures this precisely: ~99% for Nxe5+ means the engine considers it essentially the only good move. ~70% for Qf3+ means a significant chunk of the position's potential was left on the table. That gap β 29 percentage points β is entirely about how well you converted, not whether you converted.
Position 2: The Inaccuracy That Still Wins
White to move β both Rg7+ and Kd6 win, but one maximises accuracy while the other invites unnecessary risk.
White has a dominant rook endgame: connected passed pawns on the 5th rank, an active rook, and Black's rook stuck defending passively. Two moves both win β but the accuracy difference is telling.
| Move | Eval After | Centipawn Loss | Game Accuracy Impact | What Happens |
|---|---|---|---|---|
| Rg7+ (engine best) | +9.0 β completely winning | 0 cp | ~92% | Takes the7th rank with check. After 1...Kf8 2.Rf7+ Rxf7 3.exf7, the d-pawn promotes while the e-pawn supports it. |
| Kd6 (reasonable alternative) | +5.5 β still winning | ~350 cp | ~82% | Also wins, but Black gets more defensive resources. The conversion takes longer and requires more precise follow-up. |
Kd6 is not a blunder β it's still clearly winning. But the350-centipawn gap shows that White gave up a significant chunk of the advantage. In a longer game, that lost ground could give Black counterplay that wouldn't exist after Rg7+.
This is the key insight: even in a winning position, accuracy measures how efficiently you converted. A game where you had +9.0 and converted at92% accuracy is a fundamentally different quality of play than one where you had +9.0 and converted at82%. The engine sees the difference β and so does your accuracy score.
Position 3: The Endgame Where Accuracy Matters Most
Black to move β Kd8 draws. Kf8 loses. One move is the difference between a draw and a loss.
This is a king-and-pawn endgame where White has a pawn on the7th rank, supported by the king. Black's only job is to stay in front of the pawn. The choice is binary:
| Move | Result | Centipawn Loss | Per-Move Accuracy | Why |
|---|---|---|---|---|
| Kd8 (correct) | Draw | 0 cp | ~99% | Blocks the pawn from promoting. White can't make progress β the king can't outflank without abandoning the pawn. |
| Kf8 (losing) | Loss | ~900 cp | ~5% | Lets the pawn promote immediately with e8=Q. Game over. |
This is the extreme case: the same position, the same player, and the accuracy gap between the two moves is 94 percentage points. In the middlegame, a900-cp mistake might happen through a complex tactical oversight. In an endgame like this, there's nothing to calculate β it's pure knowledge. You either know the pawn promotes or you don't.
Endgames are where accuracy scores are most brutally honest. In the opening, you might score90% by following memorised theory. In the middlegame, complex tactics create ambiguity. But in the endgame, every move is a clear decision with a clear evaluation. There's nowhere to hide. A single wrong king move can turn a drawn position into a loss β and your accuracy score will reflect it instantly.
This is why tracking your endgame accuracy separately from your middlegame accuracy is so valuable. If your overall accuracy is85% but your endgame accuracy is70%, you know exactly where to focus your study.
The Phase Problem: Where Your Accuracy Actually Drops
Research on amateur games consistently shows that accuracy doesn't drop evenly across all phases:
Opening (moves 1β15): Most players have high accuracy here because they're following memorized lines. Accuracy "looks good" but doesn't reflect actual calculation β it reflects preparation.
Middlegame (moves 15β35): This is where the sharpest drops occur. Tactics get complex, time pressure builds, and your memorized patterns run out. This phase is the highest-leverage area for improvement.
Endgame (moves 35+): Many players lose accuracy here too, but often it's from accumulated pressure or a technically lost position β not calculation errors.
When you analyze your games, look at accuracy by phase, not just the overall number. Centipawn loss analysis can help with this β see tracking centipawn loss by game phase.
How to Use Accuracy to Actually Improve
-
Look for the outlier moves. Sort your moves by centipawn loss and study the top 3. Those are your most expensive decisions.
-
Track across opening systems. You might average 88% in the Italian but only 79% in the Sicilian Dragon. That gap tells you where your preparation ends and your calculation begins.
-
Compare similar time controls. A 5-minute blitz game at 80% vs. a 15-minute rapid game at 87% is normal. If your rapid accuracy is close to your blitz accuracy, you're not using the extra time effectively. For more on how centipawn loss scales with time control, see average centipawn loss by time control.
-
Run a game report. FireChess scans your last N games from Lichess or Chess.com and groups your accuracy drops into patterns β repeated opening leaks, typical tactical blindspots, endgame technique failures β so you can see trends instead of individual fluctuations.
-
Don't chase 99%. A 99% accurate game is usually a short game with forced moves. Aim for consistency in the 85β92% range over many games, and use centipawn loss to measure the magnitude of your mistakes, not just their count.
The accuracy number alone is a compass. The centipawn loss breakdown is the map.
FAQ: Chess Accuracy Score
Q: How do I find my accuracy score?
Upload your games to FireChess's scanner at /analyze β it shows your per-move accuracy, centipawn loss breakdown, and the badge distribution (how many Best, Good, Inaccuracy, Mistake, and Blunder moves you made). You can scan games from Lichess or Chess.com, or paste a PGN directly.
Q: Is chess accuracy the same as "percentage of best moves"?
No. Accuracy % is not simply "number of best moves divided by total moves." Most platforms use a weighted formula that accounts for the severity of each mistake. A single 100-cp blunder drags your accuracy down much more than three 5-cp inaccuracies, even though the "best move percentage" would weigh them equally. Lichess uses a formula based on the sum of squared centipawn losses, while Chess.com applies a sigmoid-like curve to the average.
Q: Why does my accuracy sometimes increase after a blunder?
It doesn't β the overall game accuracy always decreases after a blunder compared to where it would have been. But the per-move accuracy calculation can produce counterintuitive results if the blunder leads to a forced sequence where all remaining moves are obvious. For example, if you hang a queen and then all remaining moves are forced recaptures with 0 cp loss, the final accuracy might seem higher than expected β but it's still lower than it would have been without the blunder. The distortion comes from the forced nature of the subsequent play.
Q: What's a good accuracy for my rating level?
See the chart at the top of this article for typical ranges, but broad guidelines:
| Rating | Typical Accuracy | What It Means |
|---|---|---|
| Under 1000 | 60β70% | Multiple mistakes per game; blunders every 5β7 moves |
| 1000β1400 | 70β78% | Occasional blunders; inconsistent opening play |
| 1400β1800 | 78β85% | Few outright blunders; mistakes are inaccuracies |
| 1800β2200 | 85β92% | Rare blunders; most inaccuracies are positional |
| 2200+ (NM/IM) | 92β96% | One or two small inaccuracies per game |
| 2500+ (GM) | 95β98% | Moves that appear "inaccurate" are often strategic trade-offs |
Remember: these vary significantly by time control and opening complexity.
Q: Can accuracy be negative or go above 100%?
Some platforms (like Chess.com) clamp accuracy to 0β100. Others (like Lichess) allow it to go slightly above 100% in theory if every move was better than the engine's top suggestion (which happens in rare cases where the engine changes its mind across iterations). In practice, values above 100% are essentially never shown. Ceiling values like 99.9% appear in very short, forced games. On the low end, a game with multiple queen-sized blunders can approach 0%, though most platforms display nothing below 1β5%.
Q: How is accuracy different from centipawn loss?
This is the most common question, and the answer is accuracy % is a compressed, non-linear transformation of centipawn loss:
- Centipawn loss is raw data β the actual difference between your move and the engine's best, measured in hundredths of a pawn. It's additive, linear, and directly comparable across games.
- Accuracy % is a processed metric β it takes centipawn losses, applies a curve (or another non-linear function), and maps them to a 0β100 percentage. It's intuitive but loses the raw magnitude information.
Use centipawn loss when you want to know how much you lost per move. Use accuracy % when you want a quick, understandable summary. For serious improvement, track both. See our full breakdown in What Is Centipawn Loss?.
Want to find where your accuracy actually drops? Run a FireChess report β it scans your recent games and shows you the positions where you lost the most ground, with per-move centipawn loss and accuracy breakdowns by opening, phase, and time control.