What NNUE Changed About Engine Evaluation
Until 2020 Stockfish scored positions with rules people wrote. Now a small neural network does it. What changed in the numbers you read, and what did not.
· 4 min read

For most of its life Stockfish judged positions using hand-written rules. A bishop pair was worth this much, a doubled pawn cost that much, a king missing its pawn shield was penalised on a sliding scale. Hundreds of such terms, tuned over years by people arguing about them.
In 2020 that was replaced by a neural network small enough to evaluate positions at the same speed. The search did not change. What changed is what happens at the end of it, when a position has to be given a number.
Why the old approach had a ceiling
Hand-written evaluation has a structural problem: the terms are independent, and chess is not. A knight on an outpost is worth more when the opponent has no light-squared bishop, less when the position is about to open, and something else entirely if your own king needs defending. Writing that as a rule means writing every interaction as a rule, and the number of interactions is not something people can enumerate.
A network learns the interactions from positions rather than being told them. That is the whole of the improvement.
What actually changed in the numbers
| Position type | Old evaluation | With NNUE |
|---|---|---|
| Ordinary middlegame | Close agreement | Close agreement |
| Unusual material, such as rook against two minor pieces | Often mechanical | Markedly better |
| Long-term compensation for a pawn | Frequently undervalued | Handled far better |
| Closed positions with a long plan | Weakest area | Improved, still hardest |
| Simple endgames | Good | Good, tablebases still better |
In a normal middlegame you would struggle to tell the difference. Where it shows is exactly where the old rules were weakest: positions whose assessment depends on several factors interacting, which is also where human intuition used to beat engines.
What did not change
The search still does the work. NNUE is the evaluation at the leaves. Depth still matters as much as it ever did, and a shallow search with a great evaluation function is still a shallow search.
The number still means the same thing. Pawns, from White's point of view. Nothing about how you read an evaluation changed.
It still cannot see fortresses. A structural blindness in the search cannot be fixed by scoring positions better, because the problem is that the drawn positions never get reached in the search.
The practical consequence
One habit is worth updating. Under the old evaluation, engine assessments of long-term positional compensation were unreliable enough that strong players discounted them. That advice is out of date. A modern engine saying you have full compensation for a pawn is usually right, and the human instinct to distrust it is now the less accurate of the two.
The other consequence is that engine analysis has changed opening theory, particularly in lines where a pawn is given up for activity. Several openings written off as unsound thirty years ago are played at the top level now, and the reason is that the evaluation of that specific kind of position stopped being wrong.
How it stays fast
The efficiency in the name is not marketing. A neural network evaluating from scratch would be far too slow to call millions of times per second, and the search depends on doing exactly that.
The trick is in what happens between two positions. When a knight moves from f3 to e5, almost nothing about the input has changed: sixty-three squares hold what they held before. Rather than recompute the whole first layer, the network subtracts the contribution of the knight on f3 and adds the contribution of the knight on e5. Two small updates instead of a full pass.
That is why it runs on an ordinary processor with no graphics card, which is what made it practical for everyone rather than only for people with specialised hardware.
Where evaluations still go wrong
NNUE improved the score at the end of the search. It did nothing about the search itself, so every limitation that came from searching a finite distance is untouched:
- Fortresses still read as large advantages, because the drawn continuation lies beyond the horizon.
- Long forced sequences in endgames still need depth that a normal search does not reach.
- The horizon effect still lets a bad consequence be pushed past the end of the search by giving material away.
If you see an evaluation that contradicts what you can see on the board, the search is almost always the reason, not the scoring.
What it means for reading a number today
Two practical adjustments. Trust modern positional assessments more than the received wisdom of the 1990s and 2000s suggests, particularly around compensation and piece activity. And keep distrusting evaluations that swing between depths, because that instability is a search problem and improved scoring has not made it go away.
Common questions
- What does NNUE stand for?
- Efficiently Updatable Neural Network, written backwards. The updatable part is the point: when one piece moves, the network only recomputes the part of its input that changed, which is what makes it fast enough to run on a normal processor millions of times a second.
- Did NNUE make Stockfish stronger?
- Substantially. The gain when it was introduced was worth roughly 80 to 100 Elo, which at that level is enormous. It also changed the character of the evaluation, particularly in positions with unusual material balances.
Try it on your own position
The analysis board runs the same engine in your browser, free. The app adds what a web page cannot: reading a position straight from a photograph, saved boards, and analysis with no connection.
