Game Analysis

Paste a PGN or Lichess URL to find missed tactics in your games. Runs in your browser, no sign-in needed.

or paste a PGN

Paste anything - we'll figure out the format

I played:

The default. About 9 times depth 12.

Auto-sync games from your account (coming soon)
8
7
6
5
4
3
2
a1
b
c
d
e
f
g
h

What this analysis does

Paste a game and this page replays it against Stockfish. Every move gets a classification, and the moves that gave up ground also get a tactic label: the tactic the engine would have played instead, separately from any tactic in the opponent's best reply. It runs entirely in your browser: no sign-in, no upload, no server-side work. The engine is a Web Worker and the game text never leaves the tab.

The question it answers is narrower than "how good was this game". It is: where you gave up ground, what tactic did you miss or allow?

What you can paste

  • A PGN, pasted straight into the box.
  • A Lichess game URL. The page fetches the score from Lichess's public export.
  • A chess.com or Lichess username, to pull your recent games without copying anything by hand.

How the result is judged

Each position is evaluated once, to a fixed depth. Comparing the evaluation before your move with the one after it gives the ground the move gave up, measured in centipawns - hundredths of a pawn. Playing the engine's top move is classified as Best; other moves are classified by the evaluation change.

Blundergave up 200 centipawns or more
Mistakegave up 100 or more
Inaccuracygave up 50 or more
Bestplayed the engine's top move or gained 20 or more
Goodeverything in between

A tactic label is attached to the first three rows only. When a move gave up at least 50 centipawns, the page asks what the engine would have played in that position instead, and names the tactic in that move. This is labelled as a missed tactic. It also checks the opponent's best reply after your move and shows its tactic separately, together with the reply's move notation. This does not mean the opponent actually played that reply. Allowed tactics are not added to the summary's missed-tactic counts.

The page reports missed and allowed tactics. It does not confirm the ones you found. Geometric motif detection checks only the first best move, so it can miss a fork or other tactic that appears later in a variation. A move that held the evaluation is never examined for tactics at all - which also means a tactic you passed up without losing anything is not counted against you.

What it does not detect

The detector labels only motifs whose definition the code actually tests. Twelve are checked: mate in one through mate in five, promotion, underpromotion, discovered attack, discovered check, fork, pin, and hanging piece.

Six that this site teaches are deliberately left out: skewer, smothered mate, back-rank mate, deflection, removing the defender, and double check. Earlier versions labelled some of them with heuristics that did not really test the motif. "A knight delivered mate" is not a smothered mate, and "the king is on the back rank" is not a back-rank mate. A wrong label here is a false statement about how you played, so the page shows nothing rather than something wrong.

Restoring any of them means writing the real geometric test first.

Other limits worth knowing

  • The engine searches to a fixed depth in your browser. A deeper desktop engine can disagree, particularly in long forcing lines.
  • A single game is a small sample. One missed fork is not a weakness; the same motif missed across many games is the signal.
  • Nothing is labelled below half a pawn. A move has to give up 50 centipawns before the page looks for a tactic in it, so an edge smaller than that does not register.

Questions

Q. Does it need an account? No. Nothing is stored on a server and no sign-in is asked for.

Q. Where does my game go? Nowhere. The PGN is parsed in the tab, the engine is a Web Worker in the same tab, and the result is rendered from memory.

Q. Which formats work? Standard PGN, Lichess game URLs, and chess.com or Lichess usernames.

Q. Why does it say nothing about a tactic I clearly missed? Two possibilities. It may be one of the six motifs that are not detected on purpose, listed above. Or the move did not give up 50 centipawns - tactic labels are only attached to moves that lost at least that much, so a tactic passed up in a position you held is not labelled.