Stockfish is extraordinary. It's one of the most impressive pieces of open-source software ever created — a chess engine that plays at superhuman level, capable of evaluating any position to incredible depth in milliseconds. When we chose to build D4 Chess Club™'s analysis system on top of Stockfish, we weren't making a controversial decision. We were standing on the shoulders of something the chess community has spent decades building.
But here's the thing: Stockfish's output, on its own, is nearly useless for the average improving player.
The Problem with Raw Evaluation
Ask Stockfish to evaluate a position and it gives you centipawns — a numerical score representing how much one side is winning. +0.3 means white is slightly better. +2.0 means white has a significant advantage. +9.0 means someone is probably a piece up. These numbers are precise and correct. They're also, to most players, completely uninterpretable in a way that leads to improvement.
Knowing your move lost 0.7 centipawns of advantage doesn't tell you why it was a mistake. It doesn't tell you what pattern you missed, what principle you violated, or what you should have been calculating instead. It's like being handed a thermometer when you ask a doctor "why do I feel awful?" The number is real, but it's not the explanation.
The Classification Layer
The first thing we built on top of Stockfish was move classification — a system that translates centipawn loss into human-readable categories. A move that loses less than 20 centipawns is excellent. Between 20 and 50, it's an inaccuracy. Between 50 and 150, a mistake. Above 150, a blunder.
These thresholds aren't arbitrary — they were calibrated against what actually matters at different skill levels and time controls. A 50-centipawn error in a 3-minute blitz game might be a very reasonable practical decision. The same error in a classical game where you had time to calculate deserves scrutiny.
But classification alone still isn't enough. It tells you how bad a move was. It doesn't tell you what kind of mistake it was.
Tagging Mistake Patterns
The more interesting layer is mistake categorization — automatically detecting what went wrong. Did the move miss a hanging piece? Was it a tactic the player should have seen? Did it violate an opening principle? Did it allow a fork, pin, or discovered attack? Did it give up control of the center?
We built a tagging system that analyzes the before and after position and the candidate moves Stockfish evaluated to classify what category of error occurred. This is what powers the thematic analysis on D4 Chess Club™ — when you look at your game history and see "you've left pieces hanging in 7 of your last 20 games," that's not a guess. That's a pattern extracted from actual game data by the mistake-tagging layer.
The Threat Overlay
One of the features I'm most proud of is the real-time threat overlay. As you step through a game, the board renders not just the pieces, but the threats — which pieces are attacked, which squares are controlled, where the king is in danger.
This was the feature that took the longest to get right technically (more on that in a dedicated post). But the design motivation was simple: chess mistakes usually aren't about not knowing the rules. They're about not seeing something that was right there on the board. The threat overlay makes the invisible visible — and does it in a way that lets you see what you were missing before the engine shows you the better move.
The Principal Variation as Story, Not Sequence
Finally, we changed how we present the engine's principal variation — the best sequence of moves. Instead of dumping twenty moves of engine play at you, we surface the key moments: the first move that changes the evaluation meaningfully, the tactic that would have won material, the defensive resource that was available.
Chess engines don't care about narrative. We do. When you finish analyzing a game with D4 Chess Club™, you should come away with a story: "I was fine until move 18, then I missed a knight fork that won a pawn, and I spent the rest of the game trying to defend a position that was already structurally compromised." That story sticks. A list of centipawn numbers doesn't.
Related Reading
Ready to improve?
Try D4 Chess Club™ free — no credit card required
AI coaching, 54,000+ puzzles, Stockfish analysis. Built for the player who wants to get better, not just play more.
Start Training Free