Analysis14 min read

Chess Analysis: What the Engine Can't Tell You

Depth, centipawns and accuracy percentage all get used loosely by the tools that produce them. This piece defines each one properly against the engines' own documentation, then uses Chessdrive's own Stockfish and Maia3 data to show how often a player actually finds the engine's top move in a real game.

Morphy, Paris 1858. 13.Rxd7

Chess analysis is what happens when an engine looks at a position, whether that position is live on your board right now, sitting at the end of a game you just finished, or lifted out of somebody else's game entirely, and reports which moves were strongest and by how much. Every major site now offers some version of it. What is much harder to find, on chess.com, on lichess, or in the smaller free tools built to undercut both, is a plain explanation of what the numbers actually mean, and a straight answer to a harder question underneath all of them: is the engine's best move actually a move you, at your rating, would ever find?

This is not another comparison of who charges what for an analysis board. Lichess runs a full server side Stockfish analysis on every game for free, with no daily cap and no paid tier anywhere on the site, which settles the access question for most players before it is even asked. The harder, less answered questions sit one level below access: what search depth buys you, what an evaluation number is really measuring, how an accuracy percentage gets computed, and whether the single best move an engine hands you is one a human at your level was ever going to play. That last question has real, measurable data behind it, not just an opinion, and it is where this article ends up.

White to playMorphy, Paris 1858
Stockfish best
Rxd7+5.03
Players at 1400 play
Qa427%
Stockfish 17 at depth 20 and the Maia3 5m model at 1400, the two engines the app ships.

What chess analysis actually covers

The phrase covers three situations that tend to get treated as one: live analysis, running an engine over the position on your board right now, which is what an analysis board like lichess's or chess.com's actually is; post game analysis, running the same engine over every move of a game you already finished and labeling each one, a separate product covered in detail in our own chess game review breakdown; and analyzing somebody else's game entirely, a master game, an opening line, a position out of a book, the same engine used for study rather than for grading your own play. This article, and the data further down, uses that third mode. Search "chess analysis" today and several of the results are the tools themselves, an analysis board, a database site's embedded widget, a free clone's landing page. They are not wrong to rank for it. What they consistently do not do, on their own pages, is explain what the numbers actually mean, or engage with the harder question underneath: whether the engine's best move is one a human was ever going to find.

The engine underneath every analysis tool

Nearly every analysis tool on the market, chess.com's, lichess's, a database site's embedded board, the free clones, and Chessdrive's own review, runs some version of Stockfish. Stockfish's own homepage describes itself only as "one of the strongest chess engines in the world," winner of the Top Chess Engine Championship and the Chess.com Computer Chess Championship, and does not publish a single Elo number on that page. That is a deliberate omission: Stockfish's own FAQ states that rating the engine against human FIDE Elo has become "virtually impossible," the strength gap now too large for a human opponent to generate enough decisive results to measure. Any Elo figure attached to Stockfish online is somebody else's estimate, not a number Stockfish's own team publishes.

As of August 2026, the current release is Stockfish 18, out since 31 January 2026, replacing Stockfish 17 as the flagship build. Worth checking before trusting a tool's own marketing copy: as of the same check, Chessigma, a free competitor, still describes itself as running "Stockfish 17, the strongest open source chess engine in the world," true a year ago and not anymore. Engines move fast enough that a product's own homepage is not a reliable way to confirm which version you are getting. Under the hood, Stockfish evaluates positions with a neural network, NNUE, distributed as a bundled file rather than hand written rules; per Stockfish's own GitHub page, those networks were trained on data from the Leela Chess Zero project, one open source engine learning from data produced by another.

The number the engine hands back, something like +2.25, is not one pawn's worth of anything fixed, whatever the "pawn units" framing implies. Per Stockfish's own published win rate model, an advantage of 100 centipawns corresponds to roughly a 50 percent probability of winning from that position, measured in engine self play at fishtest's long time control. That is a calibration point on a logistic curve, not a fixed unit, and the curve's own parameters shift with material and with how far into the game you are, which is why the same centipawn number reads differently in the opening than in an endgame. Chess.com's own evaluation help page skips this: it describes the numbers purely as pawn units and never uses the word centipawn or explains mate score notation like M5 anywhere on that page.

Chess writer Nate Solon makes the practical version of the same point: because the curve flattens at the extremes, the real world difference between +6 and +9 is close to nothing, both just mean completely winning, even though the numbers look far apart on the page. He gives a plainer example too: Stockfish once evaluated a simple, one pawn material edge at +3.5, evidence the centipawn count is not counting anything as literal as pawns.

What search depth does, and does not, buy you

Depth is the number of half moves ahead an engine claims to have searched, and treating it as a clean, comparable unit is the single most common misunderstanding this research turned up. Stockfish's own FAQ is explicit that depth is "a useful guide but not a strict guarantee every move to that ply was examined," because pruning and search reductions mean an engine's tree "is not uniformly cut off at a single depth: most lines end earlier, some go deeper." A depth 20 search is not twenty ply of every line weighed equally. It is a headline number over a tree that goes shallower in most branches and deeper in a few forcing ones.

Even chess.com's own documentation stays vague here. Its Game Analysis help article, distinct from Game Review, confirms you can "choose the depth of the game review and game analysis, how many moves deep the engine looks," with deeper options reserved for its Diamond tier, but never states what the default depth actually is. Chess.com's own user base has had to ask on its own forum: a live thread there is titled, plainly, "Can someone explain to me what analysis depth actually means?" When a platform's own users crowdsource an explanation of a number the platform generates for them, that is a real content gap, not a one off complaint.

The honest takeaway is not a tidy rule, because Stockfish's own maintainers decline to offer one. More depth generally means a more reliable recommendation, and a shallow setting is more likely to miss a move that only pays off several moves later. But two tools reporting different depth numbers are not automatically comparing like for like, and squeezing one more ply out of an analysis does not reliably flip the recommended move in a position that is already fairly clear. Depth is a dial worth understanding, not a precision instrument.

How accuracy and centipawn loss are actually computed, and where they break

Lichess documents its own accuracy metric in more technical detail than any other major site publishes. Per lichess's own accuracy page, the calculation happens in two steps: Stockfish's centipawn evaluation is converted into a win percentage, then a per move accuracy percentage is computed from how much that win percentage changed before and after the move, using an exponential decay formula. The final, game level score is not a simple average of those per move numbers. Lichess computes two separate statistics from them, a volatility weighted mean and a harmonic mean, and then averages those two together for the score a player actually sees.

Lichess argues for that approach directly, and against raw centipawns, on its own accuracy page: "losing 300 centipawns in an equal position is a major blunder. But losing 300 centipawns when the game is already won or lost makes almost no difference." Its conclusion is blunt: centipawns have "no meaning on its own for a human." That is lichess's own team saying the raw number their engine produces is not the number a player should be reading directly.

There is a second, more technical failure mode worth knowing before treating a clean average centipawn loss figure as proof of anything. Forensic chess cheating detection research has flagged that in positions already decided or heading toward forced mate, there is simply less room left to lose centipawns without falling into a mate score entirely, which compresses the centipawn loss distribution toward zero near the evaluation's floor and can make already bad play in a hopeless position look artificially clean. It is a specialist finding, but one more reason a single number, even a well built one, is not the whole picture. Our own breakdown of how chess.com's, lichess's and Chessdrive's post game reports turn these numbers into move by move labels, brilliant, blunder and the rest, is in chess game review explained.

Engine correct is not the same as human useful

Everything above assumes the engine's top move is the answer worth wanting. It is the objectively strongest move, but "objectively strongest" carries a hidden assumption: that whoever plays it next also defends perfectly afterward. A move that only loses to one narrow reply can still be the stronger practical choice against a human unlikely to find that reply, which means a move that is technically correct against perfect defense is a different, narrower thing than a move a person at your rating would actually choose or actually meet.

The research line that takes this seriously is Maia, a family of neural network models built at the University of Toronto's Computational Social Science Lab specifically to predict what a human at a given rating would actually play, not what the objectively best move is. The original 2020 Maia paper found that weakened, or attenuated, versions of Stockfish only matched a real human's next move about 35 to 40 percent of the time, a figure independently republished on Microsoft Research's own blog. Maia's own worst case across rating levels still hit 46 percent and its best case topped 52 percent. The newest version, Maia3, reports 57.1 percent move matching accuracy on its own model card, using a new transformer architecture called Chessformer at under a quarter of the parameters of the model it replaced as state of the art. Maia's bots are free to play on lichess today, targeting rating bands from 600 to 2600, and the project describes itself as engineered to predict human moves, biases and mistakes included, rather than to find the objectively correct one.

That gap between engine correct and human likely is not just a research abstraction. Chessdrive, the app we build, generated its own numbers to measure it directly, on the finish of a famous game: Morphy against the Duke of Brunswick and Count Isouard, Paris 1858, from 13.Rxd7 through the mating move on move 17. The evaluations are Stockfish 17 at depth 20 with MultiPV set to the total number of legal moves in every position, so every legal move gets its own engine score, not just the top few; Stockfish 18 is the current public release, but this dataset predates it and was never regenerated on 18. Separately, we ran the Maia3 5m model across seven self ratings, 1000 to 2200, with the game's full move history supplied each time, to get each band's probability of actually playing the move Stockfish ranks first. We call that number Findability. A high Findability means the engine's answer is one a player at that rating would plausibly have found. A low one means the engine is right and the advice is close to useless to that player.

Be clear about what this is and is not. It is one historically famous, sharply tactical attacking game, scored exhaustively at seven rating bands rather than a survey of actual human players, so treat the numbers below as an illustration of the gap, not a population wide average for chess as a whole. Maia3 models what a rating band tends to play in a position, a statistical tendency, not a record of what any individual actually did. Across the seven positions in that finish where the side to move had a real choice, excluding the single legal recapture and the final mating move, the move Stockfish ranks first was one that a player at 1400, per Maia3, was expected to play only 16.4 percent of the time on average.

Position (as actually played, 1858)Stockfish's top choiceFindability at 1400More likely 1400 move instead
13.Rxd7 (White)Rxd7, +5.033.8%Qa4, +3.60 (26.9% likely)
13...Rxd7 (Black)Nxd7, -5.572.3%Rxd7, -6.57 (96.2% likely, and the move actually played)
14.Rd1 (White)Rd1, +6.3851.7%Rd1 is itself the likeliest move here
14...Qe6 (Black)Qd6, -6.760.7%h6, -7.37 (44.1% likely)
15.Bxd7+ (White)Bxd7+, +7.3131.1%Qxe6+, +4.16 (33.1% likely, more likely than the engine's own top move)
15...Nxd7 (Black)Qxd7, -8.6310.1%Nxd7, mate in 2 for White (86.3% likely, and the move actually played)
16.Qb8+ (White)Qb8+, mate in 215.1%Qb7, +3.52 (25.4% likely); Qxe6+, -1.25, was played by 14.0%

Average Findability across these seven positions at 1400: 16.4 percent. Two further positions in the same finish, the single legal recapture 16...Nxb8 and the mating move 17.Rd8#, are left out of that average because there was effectively only one sensible move on the board.

Two positions in that table are worth a second look on their own. At 13.Rxd7 and again at 14...Qe6, Stockfish's own recommended move was rare at 1400, 3.8 percent and 0.7 percent respectively. A tool that simply prints the engine's line at either spot is technically correct and, for the overwhelming majority of players at that rating, not a move they were about to find. The row for 15.Bxd7+ makes a related but distinct point: the engine's best move is not even the move a 1400 is most likely to play. Qxe6+, three points worse by the engine's own count, is slightly more likely to actually get played than the engine's own top choice.

Running the same seven positions at seven rating bands, 1000 to 2200, turns up a stronger result than any single snapshot could: Findability barely moves with rating. Averaged across the same seven positions, it reads 16.8 percent at 1000, 16.4 percent at 1400, 16.4 percent at 1800, and 17.7 percent at 2200. Getting almost a thousand rating points stronger changes almost nothing about how often a player would land on Stockfish's own first choice in this exact line, which is about as direct a statement of the gap between engine correct and human useful as this kind of data can give.

The queen sacrifice, 16.Qb8+, shows why and reveals a counterintuitive pattern. Stockfish sees a forced mate in two there. Finding it gets rarer, not more common, as players get stronger:

RatingPlays Qb8+, the mate in 2Plays Qb7, the safe retreatPlays Qxe6+, throws the mate away
100016.2%17.4%19.4%
120015.6%20.8%17.5%
140015.1%25.4%14.0%
150014.6%28.0%12.4%
180011.6%37.8%8.7%
20009.2%45.2%7.8%
22007.4%50.8%8.7%

Qb8+ falls from 16.2 percent at 1000 to 7.4 percent at 2200. Qxe6+, which looks natural but throws the mate away, falls too, from 19.4 percent down to roughly 8.7 percent. What replaces both is Qb7, a safe queen retreat that keeps a large, uncomplicated advantage without any calculation: it rises from 17.4 percent at 1000 to 25.4 percent at 1400 to 50.8 percent at 2200. Stronger players are not failing to find the mate. An increasing share of them are declining to look for it, correctly judging that the safe move wins anyway and is not worth the risk of miscalculating. A tool that just flags "mate in 2, you missed it" has not understood that distinction at all, and would be grading a perfectly reasonable practical decision as an error.

This exact sequence is playable on Chessdrive's own homepage: every legal move at every position, scored the same way, sits behind the board at chessdrive.io, so you can step through it and watch the Findability number move as the position gets sharper.

How to actually use analysis, on any tool

None of the above is an argument against running an engine over your games. It is an argument for reading the output differently. Three checks turn a raw evaluation into something worth acting on:

  1. Would you have found it? No tool prints a Findability number today, but you can approximate one: read the engine's top line, then ask honestly whether it required calculation you actually do at the board, or a single narrow reply from your opponent that most players at your level would not find either.
  2. Is the number still moving, or already flat? The jump from +2 to +4 matters far more than +6 to +9. Spend review time on the moves where the win probability actually shifted, not on chasing a bigger number that was never in danger.
  3. Does the depth number mean what you think? Treat a stated search depth as a rough confidence signal, not a guarantee every line to that ply got equal attention.

The other half of turning a flagged mistake into an improvement is what happens after the review closes. Our companion piece on chess puzzles that transfer to games covers that harder problem: a puzzle tells you a tactic is there, a real game never does, which is why solving more puzzles alone often does not fix a pattern an engine just flagged.

Chessdrive, the app we build, is the interested party in the data above and should be read as such. Its own review runs Stockfish alongside an ELO aware Maia3 model, the same architecture behind the Findability numbers here, so its coaching can flag not just what the best move was but how likely a player at your rating was to see it. The interface ships in five languages, and the coach answers in twenty, with standard notation staying in English since that is how notation works everywhere. Chessdrive is live on iOS and Android, at $5.99 a month or $39.99 a year, and both plans start with a free trial.

Last verified: 28 August 2026, against the sources cited above, and against Chessdrive's own frozen engine output described in this article. Engine versions, tool pricing and free tier limits on third party products change without notice; confirm current details on each product's own page before relying on them.

Frequently asked

What does chess analysis depth actually mean?
Depth is the number of half moves ahead an engine reports having searched. Per Stockfish's own FAQ, it is "a useful guide but not a strict guarantee every move to that ply was examined," because pruning and search reductions mean the engine's tree "is not uniformly cut off at a single depth: most lines end earlier, some go deeper." Chess.com's own Game Analysis help article confirms you can choose a depth, with deeper options reserved for its Diamond tier, but never states a default number, which is presumably why a live chess.com forum thread is titled plainly, "Can someone explain to me what analysis depth actually means?"
What do evaluation numbers like +2.25 actually mean?
Less than they look like. Per Stockfish's own published win rate model, 100 centipawns corresponds to roughly a 50 percent win probability in engine self play, a calibration point on a logistic curve, not a fixed one pawn quantity, and that curve shifts with material and move count. Nate Solon has pointed out Stockfish once evaluated a simple one pawn edge at +3.5, and because the curve flattens at the extremes, +6 versus +9 barely differs, both just mean completely winning. Chess.com's own evaluation help page skips this: it describes the numbers purely as pawn units and never uses the word centipawn or explains mate notation on that page.
How is a chess accuracy percentage actually calculated?
Lichess's own accuracy page describes a two step process: first, Stockfish's centipawn evaluation is converted into a win percentage, then a per move accuracy score is computed from how much that win percentage changed before and after the move, using an exponential decay formula. The final game level score is not a plain average of those numbers either: lichess computes two separate statistics from the per move accuracies, a volatility weighted mean and a harmonic mean, then simple averages those two together for the score you see. Lichess argues directly on that same page that raw centipawns have "no meaning on its own for a human," since losing 300 centipawns in an equal position is a blunder while losing 300 centipawns in an already decided position barely matters.
Should I always play the engine's top recommended move?
Not automatically. An engine's top move assumes whoever plays it next also defends perfectly afterward, so a line that only refutes one narrow reply can still be a fine practical choice against a human unlikely to find that reply. Our own data on a famous game finish shows the gap directly: at 15.Bxd7+, the engine's own best move was only 31.1 percent likely for a 1400 rated player to actually play, while Qxe6+, a move that scored three points worse by the engine's own count, was played 33.1 percent of the time, more often than the engine's own top choice.
How often does a human actually find the engine's best move?
It depends what you mean by find, and less on rating than you would expect. Maia, a research model trained to predict real human moves, reports 46 to over 52 percent move matching accuracy in its original 2020 paper and 57.1 percent for its newest version, Maia3, both measuring how often a model predicts whatever move a human actually played next, across many games. Chessdrive measured a narrower question on one game: how often a player at a given rating would play the engine's own top choice, scored across seven rating bands. The average barely moves with rating, 16.8 percent at 1000, 16.4 percent at 1400, 16.4 percent at 1800, 17.7 percent at 2200, so getting far stronger does not reliably make the engine's first choice easier to find in this exact line.
Is a centipawn a fixed, meaningful unit on its own?
No, per the engine's own maintainers. Stockfish's win rate model ties centipawns to a win probability curve calibrated in engine self play, not to a literal fraction of a pawn, and that calibration shifts with the position. Lichess's own accuracy page makes the same point from the opposite direction, arguing centipawns carry no fixed meaning for a human reader because the same size of loss means very different things in an equal position versus an already decided one.
What's the difference between chess analysis and a chess game review?
Chess analysis is the broader term: running an engine over a position, whether that position is live on your board, sitting at the end of a finished game, or lifted from somebody else's game entirely. A game review is the specific post game version of that, the report that scores your whole game, move by move, and hands you accuracy, labels and best lines. Our separate breakdown of chess.com's, lichess's and Chessdrive's game review products covers that comparison directly.

Want analysis that also tells you if a human would find it?

Chessdrive pairs Stockfish's evaluation with an ELO aware Maia3 model, then a coach that explains the gap in your own language. Free to start, on iOS and Android.

In this series

Keep reading