How Is Chess Accuracy Calculated? The Formula, Step by Step
Every site shows you an accuracy percentage after the game and none of them shows you the arithmetic. So the number gets read as a school grade, which it is not, and gets compared across sites, which it cannot be. Here is the whole calculation, with the actual constants, and what the figure is and is not evidence of.
- Accuracy is not the share of your moves that matched the engine. It is built from how much winning chance each move gave away.
- Every move gets a 0 to 100 score from a steep decay curve, so a move that costs half your winning chances scores near zero, not near fifty.
- The game figure mixes a volatility-weighted average with a harmonic mean, which is why one disaster cannot be buried under forty tidy moves.
- Chess.com and Lichess give different numbers for the same game because the formulas, the probability models and the search depths all differ. Lichess publishes its method, Chess.com does not.
- Accuracy is the weakest common measure of strength. Across 3,540 analyzed games it explained 31 percent of rating variance, against 72 percent for average centipawn loss.
Interactive lesson — The hanging piece: the question that saves games: Play it on the board below, and make the key move yourself. White to move. Run the cheapest check in chess before you touch anything, which black pieces have a defender, and which have none? Rxd5. Nothing guards the knight, so the rook simply takes it. No calculation, just counting. Now look for the recapture. The pawn on b6 covers a5 and c5, not d5, and the king is on the other side of the board. A whole piece, won by asking one question. Ask it every move, and ask it for your own pieces too.
What accuracy actually measures
The intuition almost everyone starts with is that accuracy is the percentage of your moves that agreed with the engine. It is not, and it would be a poor measure if it were. Play twenty forced recaptures and a king shuffle and you would hit 95 percent without making a single decision. Play a razor-sharp position where four different moves keep a small edge and you would be punished for choosing the second best.
What the number is really built from is loss. For each move the engine asks a narrower question: compared with the best move available, how much of your winning chances did this one give away? A move that gives away nothing scores 100 whether it was obvious or hard. A move that hands over a third of your winning chances scores badly no matter how natural it looked.
That framing matters because it makes accuracy a measure of damage, not of agreement. You are not being graded on matching a computer. You are being graded on what your moves cost you, which is the thing that actually decides games.
The formula, step by step
Four steps turn raw engine output into a percentage. Chess DNA follows the method Lichess publishes, so the numbers below are the real constants, not an approximation of them.
Step 1: evaluate before and after
The engine searches the position you faced and the position you left behind, both to the same fixed depth, and reports each as a centipawn score. One hundred centipawns is roughly the value of a pawn. Chess DNA searches every position at depth 18 with Stockfish 17. Both evaluations are then flipped into the point of view of whoever just moved, so a positive number always means good for that player.
Step 2: turn centipawns into a winning percentage
Centipawns are a terrible unit for grading. Going from plus one to plus two is a serious achievement; going from plus nine to plus ten changes nothing, because you were already winning. So each evaluation is pushed through a sigmoid that converts it into a winning chance between 0 and 100:
Win% = 50 + 50 × (2 / (1 + exp(−0.00368208 × centipawns)) − 1)
The curve is steepest near equality and flattens at both ends. A 100 centipawn swing around a level position moves the winning chance by roughly nine points; the same swing when you are already up a queen barely registers. This is the single most important piece of the calculation, because it is what makes a blunder in a close game count for more than a sloppy move in a position that is already decided.
Step 3: take the drop, apply the accuracy curve
Subtract the winning percentage after your move from the winning percentage before it. That difference is the move's win percentage loss, and it is fed into a decaying exponential:
move accuracy = 103.1668 × exp(−0.04354 × win% loss) − 3.1669
The shape is what matters. Losing nothing scores 100. Losing 5 points of winning chance still scores about 80. Losing 20 scores about 40. Losing 40 scores about 15. The curve falls off a cliff early and then flattens, which mirrors how chess punishes you: the difference between a clean move and a slightly loose one is small, and the difference between a loose move and a catastrophe is enormous.
From move scores to one number
Once every move has a score, they have to be collapsed into one figure per player, and a plain average would be misleading. A game with forty accurate moves and one move that dropped a rook would average out to something respectable, which is exactly the wrong signal, because that game was decided by the rook.
Two adjustments fix that. First, each move is weighted by how volatile the position was around it, measured as the local spread of the winning percentage across neighbouring moves. Mistakes in sharp, swinging positions count more than mistakes in dead-level ones, because that is where there was something real to lose. Second, a harmonic mean of the move scores is computed alongside the weighted average. A harmonic mean is dominated by its smallest input, so one near-zero move drags it down hard no matter how many good moves surround it.
The reported accuracy is the midpoint of those two. The weighted average keeps the figure representative of the whole game; the harmonic mean makes sure the worst moment still shows up in it. If you have ever finished a game feeling like you played well and seen an accuracy in the seventies, this is why: the harmonic component is telling you the truth about the one move that mattered.
Accuracy versus average centipawn loss
Average centipawn loss, usually written ACPL, is the older measure: the mean centipawn value your moves gave away over the game, with no sigmoid and no weighting. It reads badly, because the scale has no natural ceiling and no intuitive meaning, which is why sites replaced it in their headline with a friendly percentage.
It also happens to be the better number. In a study of 3,540 rapid games from 68 Chess DNA players, all analyzed with Stockfish 17 at depth 18, each metric was fitted against player rating on its own:
| Metric | Share of rating variance explained |
|---|---|
| Average centipawn loss | 72 percent |
| Blunder rate per 100 moves | 58 percent |
| Size of the single worst move | 48 percent |
| Accuracy percentage | 31 percent |
| Inaccuracy rate | 12 percent |
Accuracy lands fourth of five. The reason is compression: the curve and the blend pull almost every amateur into a narrow band, so two players separated by 400 rating points can post similar accuracies while one of them blunders twice as often. The full breakdown is in how chess games are actually lost, which is the study these figures come from.
The practical reading: use accuracy as a rough temperature check on a single game, and use blunder count and the size of your worst move to judge whether you are improving over months.
Why every site gives you a different number
Run one game through three tools and you will get three accuracies. Four things move the number, and only the first one is about your play.
Search depth
Accuracy is derived entirely from evaluations, and evaluations move as the search deepens. A shallow search can miss a defensive resource three moves out and mark a sound move as an error. Deeper searches usually raise accuracy, because moves that looked wrong turn out to have been fine. Chess DNA uses depth 18 on every move of every game, so that a change in your numbers across months reflects your play and not a settings change.
The probability model
Lichess uses a fixed sigmoid, the one in step 2, that depends on the evaluation alone. Chess.com's expected-points model is adjusted for the player's rating, on the reasoning that a position two pawns down is more salvageable between beginners than between masters. Both are defensible. They are not the same function, so they do not produce the same loss for the same move, and no downstream formula can undo that.
The aggregation
Lichess publishes its blend of a volatility-weighted mean and a harmonic mean. Chess.com's accuracy comes from CAPS2, whose exact numeric formula is not published. Any specific claim you read about how Chess.com computes accuracy is someone's reconstruction, including any you might read here, which is why this page does not make one.
The engine itself
Different Stockfish versions, different neural network weights and different hardware all shift evaluations slightly, and every shift propagates into the percentage.
The conclusion is not that one site is wrong. It is that an accuracy figure is only comparable to another figure produced by the same tool at the same depth. Comparing your 82 on one site with a friend's 88 on another compares two different formulas.
What counts as a good accuracy
There is no universal pass mark, and any number offered as one is hiding the thing that drives the score: how sharp the game was.
A quiet manoeuvring game where nothing is ever really at stake produces high accuracies for both players, because there is very little winning chance available to give away on any given move. A tactical brawl with three genuine turning points produces lower accuracies for everyone, grandmasters included, because each decision carries real weight. A 78 in a knife fight can be a much better performance than a 91 in a game where nothing happened.
Three comparisons are worth making, and one is not:
- Your game against your own other games, at the same depth in the same tool. This is the only clean comparison, and the one that tells you whether you are improving.
- Your accuracy against your opponent's in the same game. Same position, same sharpness, same engine, so the gap is meaningful even when both numbers are low.
- Your accuracy by phase. An opening in the nineties next to an endgame in the sixties is a study plan written for you.
- Your number against a figure quoted from another site. This is the one to skip. Different formula, different depth, different model.
If you want to see this on your own games, the free accuracy calculator scores both players from a PGN at depth 18, and the free game review adds the per-move labels described in what every move classification means.
Frequently asked questions
How is chess accuracy calculated?
In two stages. Each move is scored on its own: the evaluation before and after is converted into a winning percentage, the drop between them is the move's loss, and that loss runs through a decay curve returning 0 to 100. Then the move scores are combined into one figure per player, with moves in volatile positions weighted more heavily and a harmonic mean mixed in so a single catastrophic move cannot be averaged away.
What is a good accuracy in chess?
There is no universal number. A sharp tactical game scores lower than a quiet one for every player, grandmasters included, because there is more winning chance available to give away. Accuracy also rises with search depth and varies with the engine. Compare your games to your own other games analyzed the same way, not to a figure from another site.
Why is my accuracy different on Chess.com and Lichess?
Because they are different calculations. Lichess publishes its formula. Chess.com uses CAPS2, does not publish the numeric formula, and its underlying model of winning chances is adjusted for rating. Add different search depths and engine versions and the two figures are not measuring quite the same thing.
Why did one blunder destroy my accuracy?
By design. The per-move curve decays steeply, so a move giving away half your winning chances scores near zero rather than near fifty. The game figure also includes a harmonic mean, which is dominated by its smallest input. That matches how chess works, since one move losing a rook decides the game regardless of how tidy the other forty were.
Is accuracy or average centipawn loss the better measure?
Average centipawn loss, and it is not close. Across 3,540 analyzed games from 68 players, it explained 72 percent of the variance in rating against 31 percent for accuracy. Accuracy is the friendlier number to read. It is not the one that best tracks how strong a player is.
Does analysis depth change my accuracy score?
Yes, and it is the most common reason two tools disagree about one game. A shallow search can miss a defensive resource and mark a sound move as an error. Chess DNA analyzes every move at depth 18, the same setting every time, so changes in your numbers reflect your play rather than the settings.
Can I get an accuracy score for an over-the-board game?
Yes, if you can write the moves out as a PGN. A bare move list starting 1. e4 e5 2. Nf3 is enough. Paste it into the free calculator and both players are scored at depth 18. Classical games are especially worth running, because their errors tend to be conceptual rather than caused by the clock.
External references: the per-move and per-game formulas above are the ones published at lichess.org/page/accuracy, and the engine doing the evaluating is Stockfish.