I stumbled onto this position from a game posted on reddit. Stockfish gives the best move as cxd4, which it evaluates as +2.

enter image description here

If you play cxd4, it then says cxd4 was an inaccuracy (only being +1), and that Nxd4 was actually the best move.

enter image description here

It seems that the engine thinks it evaluated the position wrong in the previous move. In this case, should I regard cxd4 as a bad move or not?

4 Answers 4


Odds are, it means there's a depth* issue. In other words one of the two moves is better at low depth, and the other move is better at high depth.

Try it yourself - put the position into Lichess without a maximum depth and run Stockfish on it. You should find that Stockfish's best move changes as you let the engine run. It'll first suggest move X, then change its mind and say Y is better, and so on. For example, suppose you have

  • d = 20: cxd4 (+2.01) Nxd4 (+1.80)
  • d = 30: Nxd4 (+1.3) cxd4 (+0.9)

Now if the first screenshot uses only a d=20 search, while the second one uses a d=30 search, you'll get what you see: the first screenshot recommends cxd4, which the second screenshot calls an inaccuracy since it loses 0.4 centipawns.

If you're interested in this you might also want to check out this question. There's a good chance the computer will say on move nine that 8...Qh4+ is the best move, and then (after you execute it) say that 8...Qh4+ is an inaccuracy.

*Depth is a number that describes how far ahead the engine is searching. It is usually measured in ply, so d = 20 is 20 ply (or 10 moves) ahead.


Don't read anything into it. This is the fault of chesscom's poor interface and has no deeper meaning. Every other website I know of does not have this issue. You should trust the current evaluation and not the words "good" or "great" or "inaccuracy."

The reason this occurs is simply that chesscom came up with a classification for all the moves as "best," "good," etc based on a quick overview with the engine. If you actually look at the positions and play any of the moves it originally recommended, the current engine might change its mind. In your case, after re-analyzing deeper, it sees the move it originally thought was best (cxd4) isn't as good as it originally thought.

  • This problem is not unique to chess.com, though it is most likely to occur there since it's a much lower depth in comparison to other websites. Even lichess does this for something volatile like crazyhouse where 1.e4 e5 or 1.e4 Nf6 are sometimes a mistake depending on the engine's mood. :) Here's an example of the top line 1.e4 Nf6 2.Nf3?? being a blunder. Commented May 30, 2022 at 6:29

Generally engine analysis accuracy is dependent on the analysis time and position. With more time the analysis depth is deeper and more accurate. Also depends on the position, if engine sees that the position is a mate in 3 at ply 5 even if we search it for 20 plies it is still mate in 3. But if there is no mate to be found and no repetition seen and other drawing lines then we will expect varying evaluation as we get deeper. Before cxd4 it has its own evaluation and accuracy but pushing the move cxd4 next will have a new analysis evaluation and accuracy. By pushing the move it advances the analysis 1 ply deeper plus the time that is used for this new analysis.


It depends. In the first image you posted (before White has captured the pawn), the UI says SF is at depth 20. And in the second image after cxd4 is played, SF is also evaluating at depth 20 there. At depth 20 it's normal for SF to change its mind on moves, so letting it evaluate further is recommended here.

After doing this for the position before and after cxd4, SF should give fairly consistent outputs on which move it prefers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.