Tablebases say this position is drawn, but Stockfish disagrees-What does that mean?

Today I found myself in the below position as black (me to play). My gut told me it should be a draw, but as my opponent and I are both fairly weak there was a significant chance one of us would blunder, so I decided to play on just to see what would happen, and sure enough we ended up exchanging rooks and that was that

After the game, I checked this on tablebase and it's very clear that this is a drawn position. However, Lichess shows this position as -0.6 and chess.com shows it as -0.88 (I assume they use different versions of Stockfish). I'm having trouble understanding what Stockfish feels my advantage here is or what those numbers really mean. If it's a definite draw then I'd expect it to show +0.0.

Is it saying there are more ways for white to blunder than black, so that is more likely to happen? Is there some tactic or 'style' I could employ here that might increase my chances of inducing a mistake by my opponent? Am I overthinking this and should just offer a draw in this position?

[FEN "8/8/2r2k2/R4P2/4n3/1K6/8/8 b - - 0 1"]

• The engine evaluations do not disagree with the tablebase Commented Oct 24, 2020 at 9:35

If the tablebase says that it's a draw with optimal play from both sides, then you can always ignore whatever Stockfish or any other engine says. The tablebase knows the objective evaluation for any position with 7 pieces or less.

What Stockfish 11 (or any earlier version) does is calculate as far as it can ahead, evaluate the positions it reaches in its search, and then use those numbers to give an evaluation for the starting position (obviously a lot more is involved, but that's the basic idea). If Stockfish reaches a position where Black's still up a knight, it will usually give some evaluation in Black's favour due to how its evaluation function works. It has no way of knowing that it's certain K+R will draw against K+R+N, unless this knowledge was explicitly programmed into it. Stockfish will only say it is a draw once: it's calculated a forced repetition will happen, it sees that a K+R vs K+R is forced, or the game has reached the 50 move rule (or will imminently do so). Although if you were to hook up Stockfish with a tablebase (some people do this, such as serious correspondence players), Stockfish should always give the tablebase evaluation in positions with 7 pieces or less.

However, it's worthwhile noting that Stockfish NNUE (as well as Stockfish 12 I'd assume) gives an evaluation of equality, with the number somewhere around -0.13 for a K+R vs K+R+N endgame I set up, after not thinking for too long. In the position you have with the pawn, NNUE started giving a 0.00 evaluation once it reached around depth 20. This is probably because "it" had experience playing this K+R vs K+R+N endgame, and in all normal circumstances the result is a draw. So, NNUE's neural net evaluates this endgame appropriately as equal. Note that this is all without the use of a tablebase.

• Stockfish NNUE gives a draw very quickly (depth less than 30), Stockfish 12 persists on -0.49 even at depth 55+ Commented Oct 23, 2020 at 21:42
• @B.Swan Huh, that's surprising. I thought SF 12 was supposed to essentially be NNUE. Commented Oct 23, 2020 at 21:49
• Stockfish 12 can be used with NNUE on or off Commented Oct 24, 2020 at 11:30
• @B.Swan Okay well if you weren't using NNUE for it that makes sense. Commented Oct 24, 2020 at 11:37

Tablebases will tell you the evaluation of a position with perfect play from both sides.

Stockfish will use rules it was programmed with to analyze a position and give you a numeric value (See https://www.quora.com/What-is-the-algorithm-behind-Stockfish-the-chess-engine for some of these rules or heuristics). But unless it can see a forced draw it will not give you a 0.0 evaluation.

Apart from the excellent technical answers given above: It depends on your interpretation whether stockfish disagrees with the tablebases. An evaluation of -0.88 is far from meaning that black is winning. It also doesn't imply that the position is a dead draw. It just means that black is for choice here. With playing on, you agreed to that while your "objective" evaluation of the position being drawn was also confirmed. So everything is fine, no contradiction.

Something similar regularly happens during professional commentary: A world class player simplifies a bad position into an endgame where he is material down, but he knows how to defend it. The engines claims he made a mistake since he lost material. But a closer look reveals that he found an efficient way to draw a difficult position.

For my part: I am often surprised how extreme engine evaluations have become nowadays. I played many games in which stockfish says I am up ~2.7. During the games I realized I was better, but it didn't felt like I am up a piece - which is what the evaluation suggests. So being up 0.88 in an unknown position might not be a big issue after all. It certainly doesn't mean your opponent ran out of chances. Older engines might give a mere 0.2 which most of us would interpret as "equal" or "unclear".