跬ChessPath

Analyse Your Games 反求諸己

This is Principle Ⅱ made concrete. One complete game, taken through the protocol in the order it is meant to be done, with the actual engine output at the end so you can see exactly where your own reasoning and the machine's agree, where they diverge, and — the part nobody teaches — which of its suggestions to throw away.

射有似乎君子,失諸正鵠,反求諸其身。
Shè yǒu sì hū jūnzǐ, shī zhū zhènggǔ, fǎn qiú zhū qí shēn.
"In archery we have something like the way of the superior man. When the archer misses the centre of the target, he turns round and seeks for the cause of his failure in himself."
Doctrine of the Mean 14 · tr. Legge
0.29
Pawns the engine's evaluation moved on the move that decided the game below. Under the threshold for calling it even an inaccuracy — it gets no symbol.
5.90
Pawns it moved four White moves later, on the move that ended the game. This is the one the engine shows you.
15 min
What the protocol costs per game. Five games done this way beats fifty clicked through.

Say this first, because the site's credibility depends on it

There is no controlled study comparing engine-off-first analysis with engine-first analysis for improvement. None. What exists is near-unanimous coach consensus, a coherent mechanism, and an indirect literature on self-explanation — Bisra et al. (2018) meta-analysed 69 effect sizes across 64 reports and found prompting learners to explain material to themselves gives g = 0.55. But none of those studies is a chess player reviewing their own game. Treat the protocol below as a well-reasoned practice, not a demonstrated result.

The protocol

0
Wait. Not immediately after the game. You are still in the game. Twenty minutes minimum; the next morning is better. Reviewing on tilt produces "I'm an idiot," which is not an error class.
1
Three sentences from memory. Engine off. Board off. What was my plan? Where did it go wrong? What did I miss? Write them down before you replay anything. This is the diagnostic — it is the only record of what you actually believed at the board.
2
Replay the game and mark the turning point yourself. Still no engine. Find the move where the character of the game changed — which is usually not the move where the material changed. Then commit: write the move you think you should have played, and one sentence of why. Commit before you can be corrected. That is 不憤不啟.
3
Now turn the engine on. Look only where you and it disagree. Three questions, in order: did it confirm my turning point? Did it find something earlier that I missed? And what is it suggesting that I should ignore?
4
Two entries in the log. One 善, one 不善. One thing the opponent did that you will adopt. One correction of your own, stated as a rule, not a regret. One each. Not five.

The worked example

This game is constructed

It is not a real player's game and is not presented as one. It was built to be a typical loss at roughly 1100–1300, then replayed through Stockfish 16 to depth 20 for legality and for every evaluation quoted below. Every move is legal; every number is the engine's actual output. Read the eval figures as a demonstration of the method, not as a finding about chess.

And read them loosely. Re-running the same positions at the same depth with a different hash size, thread count or MultiPV setting moves the absolute numbers by up to a tenth of a pawn, and where two candidate moves are within about 0.1 of each other the engine's "first choice" changes between depth 20 and depth 24. The sizes of the drops below are stable. The third decimal place is not, and neither is the ordering of near-equal moves — a point the page comes back to, because it is part of the lesson.

You are White, around 1200 rapid, playing 15|10. You have built the Italian from the Openings page and you follow it faithfully for eleven moves.

1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.c3 Nf6 5.d3 d6 6.O-O O-O 7.h3 a6 8.Bb3 Ba7 9.Re1 Ne7 10.Nbd2 Ng6 11.Nf1 Be6 12.Bxe6 fxe6 13.Ng3 Qe7 14.Qe2 Rf7 15.Nh2 Raf8 16.Ng4 Nxg4 17.hxg4 Rxf2 18.Qxf2 Rxf2 19.Kh1 Qh4+ 20.Kg1 Qxg3
a8b7c6d5e4f3g2h1 Start

White resigned. After 20…Qxg3 the threat is 21…Qxg2#, supported by the rook on f2, and it cannot be met — every White move loses to it.

Stage 1 — the three sentences, engine off, from memory

"I was fine out of the opening, I know this line. He built up on the f-file and I couldn't really find anything to do so I tried to attack on the kingside. Then I blundered a rook on move 17 and it was over."

How that note is typically wrong — and it matters

  • "I blundered a rook" is factually wrong. You lost your queen for a rook, and the rook was not blundered — it was sacrificed by your opponent, correctly. Misremembering which piece you lost is normal, and it is why Stage 2 exists.
  • "Couldn't really find anything to do" is the actual diagnosis, written here as an excuse. Every genuine finding in this review is hiding inside that clause.
  • "I was fine out of the opening" is true and useless. You were also already committed to a structure you did not know how to play, which the word "fine" conceals.

Write it anyway, and badly. A vague, wrong, defensive note is still a record of what you believed. Once you have seen the engine's evaluation you cannot produce one.

Stage 2 — replay it and mark the turning point yourself

Replaying without the engine, three things surface that were invisible from memory.

Move 12 is where the game changed. He offered a bishop trade with 11…Be6 and you took it. After 12.Bxe6 fxe6 he has no f-pawn, a half-open f-file pointing straight at f2, and both rooks arrive there in three moves. You did not have to take. If you leave the bishops on, he has to initiate, and then you recapture with the queen and no file opens at all. The Openings page says this in one line — "never trade the light-squared bishop … retreat it, don't exchange it" — and you had read it.

You never played d4. The repertoire page is explicit that Nbd2–f1–g3 is the build-up and d4 is the break it prepares. You reached the position and then played Ng3, Qe2, Nh2, Ng4 — four moves with no plan behind them — while the pawn sat on d3. You knew the move and did not play it.

His bishop on a7 was pointed at f2 from move 8 and you never once addressed it. By move 16 the f2 square is attacked by two rooks and a bishop and defended by a queen and a king. That is the whole game.

Committed, before turning anything on:

MoveWhat I playedWhat I should have played, and why
12Bxe6Ng3 or d4 — don't open a file at my own king to make a trade he wanted.
14Qe2d4 — the break the whole set-up was for. Open the centre when he is attacking on a file.
16Ng4Be3 — offer to trade his a7 bishop off the f2 diagonal. His attack needs three attackers; take one away.

Stage 3 — now the engine

Stockfish 16, depth 20. Evaluations in pawns, positive means better for White.

MoveEval beforeEval afterEngine's move
12.Bxe6+0.46+0.17d4
13.Ng3+0.12+0.13Ng3 — the move played
14.Qe2+0.17−0.26d4
15.Nh2−0.23−1.33d4 or Be3
16.Ng4−0.32−6.22Be3

Two of those cells are honest about their own softness. On move 13 the top slot is shared by Ng3, a4, g3 and d4 all within about a tenth of a pawn, and which one leads depends on the depth and even the thread count you stop at — on independent re-runs d4 came first at depth 20 and Ng3 only at depth 24. Treat move 13 as a four-way tie, not a ranking. On move 15 d4, Be3 and Ng5 are inside 0.03 at depth 20 and reorder by depth 24. Only move 16 has a gap you could call a finding.

What it agreed with

  • Move 16 was the losing move, and Be3 was the save. You found both without it. That is the entire point of the protocol: the correction now belongs to you rather than to a piece of software.
  • d4 is the engine's clear first choice on move 12, and is in the leading group on moves 13 and 14 without reliably topping either — on re-runs move 14 gave Be3 first with d4 second or third, inside the noise band this chapter declares below. Across the stretch where you had no plan, the machine kept naming the exact break your own opening page told you to prepare. Your Stage 2 note said "I never played d4." The engine did not teach you that. It confirmed it. The honest version of this bullet is "clearly on one of the three moves, and among the candidates on the other two." The pattern is real; the ranking is not stable enough to state more strongly.
  • The refutation is exactly the f2 arithmetic you identified. 17…Rxf2 18.Qxf2 Rxf2 and White cannot recapture: Kxf2 is illegal, because the bishop on a7 covers the square. Three attackers, two defenders, and one defender is a king not allowed to do its job.

What it disagreed with

You called move 12 the turning point. The engine moved 0.29 of a pawn there. Lichess's analysis code labels a move only when the loss of winning chances crosses 0.1 for an inaccuracy, 0.2 for a mistake and 0.3 for a blunder — that is 0.1 on lichess's own winning-chance scale, which runs from −1 to +1, so it is nearer five points of win probability than ten. Source: modules/tree/src/main/Advice.scala, winningChanceJudgements. Put 12.Bxe6 through it and the answer is 0.06. It does not reach the first threshold on either of lichess's two published scales. It gets no symbol at all. What the engine will report is a mistake on move 15, a blunder on move 16 and a second blunder on move 19 — three flags, none of them on the move that decided the game, and the last of them in a position that was already lost several moves earlier.

Both readings are correct and they are answers to different questions. The engine is answering "how much did the position's objective value change." You are answering "at which move did I stop knowing what to do." Only the second question has a training action attached to it. This is the strongest single argument for doing Stage 2 before Stage 3: the engine cannot tell you where you got lost, because it never was.

What to ignore — the under-discussed half

Engine suggestions can be correct and still be worthless to you. All five of these are real output from this game:

  • 3.Bc4 — the engine mildly prefers 3.Bb5. By about five hundredths of a pawn at depth 20 and by a single hundredth at depth 24, which tells you how much the preference is worth. Ignore it. You have a repertoire you built once and are not replacing it over a fraction of a pawn.
  • 7.h3 — at depth 20 the engine's top move is b4, a queenside space grab, four or five hundredths of a pawn ahead of the h3 you played. Almost certainly playable, and completely unusable: a 1200 who plays b4 here will not know what to do on move 8. A move you cannot follow up is worse for you than the move you understood. (Run the same position to depth 24 and the engine puts h3 back on top. Do not rebuild a repertoire on the strength of a move order that changes when you leave the engine running.)
  • 15 — d4, Be3 and Ng5 are inside 0.03 of each other. Which of them is "best" depends on the depth. That gap is noise. Take the move you can put a sentence to — here Be3, because you can say what it is for.
  • 18…Bxf2+ was stronger for your opponent than 18…Rxf2. True, and it is an improvement for the other player in a position where you were already six pawns down. Nothing here is yours to learn.
  • 19.Kh1 is flagged as a blunder. It allows mate — after 19.Kh1 Qh4+ 20.Kg1 Qxg3 every White reply loses to 21…Qxg2#. It is also a move played in a position that was lost six plies earlier; the engine's own best try, 19.Be3, is still about minus six. Errors made after the game is decided teach you nothing; the review stops at the losing moment.

The keep-or-discard rule: keep an engine line only if you can state in one sentence, without the engine in front of you, why the move is good — and only if it occurs before the position was already decided. Everything else is deleted. One more reason to hold the line loosely: on three of the moves above — 7, 13 and 15 — the engine's first choice is a different move at depth 24 from the one it named at depth 20, and in each case the candidates are within a tenth of a pawn. The "best move" in a roughly equal position is not a fixed object, and treating it as one is how people end up memorising noise.

Stage 4 — the two log entries

善 — what he did that I will adopt

He brought a third attacker to f2 before touching anything. Rook to f7, rook to f8, bishop already on a7 — and only then the sacrifice. He did not cash in on two attackers and hope.

I will count attackers before I start, not during.

Honesty note, because this chapter is about not letting the engine set the agenda and that cuts both ways: the engine does not love 15…Raf8 either — it prefers …Nh5 and rates the rook move about a pawn worse. The lesson stands as practical method, not as the objectively best move. Adopt the habit of counting attackers; do not adopt the specific move.

不善 — my correction, as a rule

"I do not initiate a piece trade when the recapture opens a file pointing at my own king. If he wants the trade, he takes, and I recapture with a piece."

Not "I shouldn't have taken on e6." That is a regret about one game. The rule is portable — it fires on c6, on f3, on f6, in every opening you will ever play.

One 善 and one 不善. The temptation after a game like this is to write six lessons, and six lessons is zero lessons — that is the whole argument of the Ladder. Note also that the rule and the safety check now overlap: "count the attackers on the squares next to my king" belongs in the before-every-move scan, not in a notebook you reread.

What goes wrong when people do this

Only reviewing losses

The most common error and the most expensive. In a good many of the games you won you were worse at some point and your opponent let you off — that is a claim about how games at this level go, not a measured proportion; run the eval graph over your own wins and count. Those are the games with the cheapest lessons in them, because the emotional cost of looking is near zero. Review two losses and one win.

Reviewing immediately, on tilt

Analysis within five minutes of a loss produces self-criticism, not diagnosis. If your first written sentence contains the word "stupid," close the tab. Stage 0 exists for this, and it is the step people skip. Mindset has the session rules that stop you getting there.

Letting the engine set the agenda

Open the review tab first and the engine chooses what the game was about: the biggest number. Above, that hands you three flags on moves 15, 16 and 19 — "you hung something, twice, after it was already bad" — and nothing at all on move 12. The engine is a very good answer to a question you have to ask yourself.

"I blundered" as the whole conclusion

It is always true and it is never a finding. Blunders have causes: time pressure, an unfamiliar structure, a position with nothing to do, a threat you never looked for. The question is not "did I blunder" but "what put me in a position where that blunder was available." Here the answer is four moves long and starts on move 12.

Fifty games shallowly instead of five properly

Clicking through a month of games watching the eval bar is not analysis; it is a highlight reel with your name on it. There is no retrieval in it, and by Principle Ⅱ the retrieval is the mechanism. Five games at fifteen minutes beats fifty at ninety seconds — and takes less total time.

How often, how long, and the honest cost

Fifteen minutes a game, on games long enough to contain decisions. At four or five slow games a week that is about an hour — a seventh of a seven-hour training week, spent on the one activity that tells you what the other six sevenths should be.

The dissenting view, which is not weak

Kevin Lincoln, who writes Make Good Moves at around 1650 USCF, does not follow the ritual for online games. He runs Stockfish immediately on rapid games — "I don't want to spend half an hour annotating a 15–20 minute game" — and reserves unaided analysis for over-the-board play. His three questions are the three that matter (why did I make the mistake, why was it a mistake, what do I do differently); he just gets to them faster.

Nate Solon, whose formulation this site's Principle Ⅱ is built on, concedes the same ground from the other side. On blitz he is "completely fine with doing a quick check with the engine and skipping the grueling self-analysis." And his limit on unaided analysis is wider than it is comfortable to quote: not "beginners" but "unless you're a very strong player already, you won't necessarily be able to draw correct conclusions about a position no matter how much time you invest in it." That sentence covers everyone this site is written for, including its author. Both concessions point the same way. A player around 1000 whose losses are mostly outright hanging pieces gets most of the available value from the engine simply naming the move — there is not yet enough underlying knowledge for self-explanation to draw on, which is what that literature would predict. That last step is mechanism, not measurement.

The compromise, if fifteen minutes will not survive your week

Do Stage 1 and one position of Stage 2 — the single moment you think it turned, one candidate move, one sentence — then go straight to the engine. About four minutes; this is close to the middle option Solon proposes, where you try one position yourself for the extra practice before the engine verdict. A four-minute review you actually do beats a fifteen-minute protocol you abandon in a fortnight, and perfectionism about analysis is one of the main reasons people stop. Blitz games get a glance and nothing more; if you want reviewable games, play slower ones.

The template — copy this

Before the engine

  1. Result, time control, colour, and how much time I had left at the moment it went wrong.
  2. Three sentences from memory: my plan · where it went wrong · what I missed.
  3. Replay it. Mark one move as the turning point. Not the move I lost material — the move after which I stopped having a plan.
  4. Write the move I should have played there, and one sentence of why.
  5. Confidence 1–5 in that alternative, before checking (Principle Ⅳ).
  6. One position where I had a choice and did not notice I had one.

After the engine

  1. Did it confirm my turning point? Yes / no / it found something earlier.
  2. What did it find that I can explain in one sentence? Keep.
  3. What did it find that I cannot explain, or that occurs after the game was decided? Delete.
  4. Error class for the log.
  5. One 善. One 不善, as a rule with a trigger.
  6. Any position worth a spaced revisit goes into the failed-puzzle queue at ~7 days (Principle Ⅰ).

Stop there. If you have more than one rule, you have not chosen.

Analysing other people's games

This is Principle Ⅴ, and the second clause of it is the one that gets dropped: 其不善者而改之 — what is bad in them reminds me what to change in myself. Not what to sneer at.

Why errors are easier to see in someone else's game. You have no memory to protect. Replaying your own game you reconstruct a defence as much as an analysis — you know what you were worried about, you know the clock was low, and every move arrives pre-loaded with its excuse. In a stranger's game none of that is available. You see only the board, which is what your future opponents will see too.

There is a well-established phenomenon in the neighbourhood — once you know an outcome you systematically misremember how predictable it was, which is Fischhoff's hindsight bias — but no study has measured error-detection in one's own versus another's chess game. The asymmetry is an observation coaches make, not a measured effect. It is also why a coach finds your pattern in one session and you have not found it in two years.

How to do it

If you take one thing from this page: the engine's biggest number and your biggest mistake are usually not the same move. Above they are four moves apart, and the one the engine shows you is the one with no lesson in it. Fifteen minutes, in the right order, is the difference between knowing you blundered and knowing why you were in a position where blundering was the likely outcome.