Generic text recognition reads shapes. Reading chess notation needs something more: the letters are ambiguous, the handwriting is fast, and — crucially — there is a rule set that says which readings are possible at all. This page is about that step, between the photo and the file.
Why chess handwriting is its own problem
The alphabet in play is tiny and badly conditioned. b against 6. Q against 9. 0 against O. f against t. A general text model has no reason to prefer one over the other; in a move list, one wrong character silently produces a different, still-plausible game.
Then there is what people actually write. Real scoresheets contain shorthand (dc for a pawn capture), crossings-out, arrows meaning "same as above", ep and =Q scattered in the margins, and the occasional move recorded in the wrong column.
The board is the disambiguator
The move that makes this tractable is refusing to read the sheet as text. Each move is played onto a board as it is recognized, and the position constrains what the next token can be.
Nbd2versusNfd2— usually only one of them is legal, and the other is ruled out before you see it.dccannot staydc: from the position there is usually exactly one pawn on the d-file that can capture, so it expands todxc5.- A castle written
0-0is read asO-O, because zero-zero is not a move. - A move that could not have happened at all — a knight that cannot reach that square, a capture of a piece that is not there — is marked red instead of being written into your game.
That last point is the difference that matters. A misreading that produces an illegal move announces itself. You review a handful of colored entries rather than proofreading forty moves against a sheet you may not be able to read either.
What the colors mean
Red is an illegal move: the reading cannot be played in that position, so something upstream is wrong — the move itself, or an earlier one that put the board in the wrong state.
Amber is a low-confidence move: the model read something, but not with enough certainty to commit. The editor shows the moves that are legal in that position, so if Nbd2 and Nfd2 are both possible you choose between them rather than typing. There is no separate "ambiguous" category; an unsure reading is amber, whatever the reason for the doubt.
What still needs you
Two cases the rules cannot settle:
A confident, legal misreading. If both Nbd2 and Nfd2 are legal and the model was sure of the wrong one, no validation will tell you which you played. The replay board catches it: step through the game and the position stops matching your memory.
A sheet that is wrong. If the original recorder skipped a move, the game diverges from that point and validation marks the divergence, not the cause. Fixing it means going back to the position — or to your opponent's copy.
Editing uses the pencil button beside each move, and it costs nothing: only the recognition itself uses credits. Correct a move and the rest of the game re-validates from there.
Notation this understands
Standard Algebraic Notation, as FIDE requires it: piece letters KQRBN, pawns unlettered, x for captures, O-O and O-O-O, + and #, =Q for promotion, and disambiguation by file or rank. If you want a refresher, Chess notation explained covers the whole system, and 7 common notation mistakes covers what goes wrong when people write it in a hurry.
Descriptive notation (P-K4, N-KB3) is not supported. Moves written that way are shown as scanned, but they are not converted to algebraic, not replayed and not checked, so an old sheet needs translating before it is scanned. Descriptive vs algebraic notation shows how.
Related
- Photo to PGN — the capture that feeds this step
- Chess PGN converter — what comes out the other end
- Convert a chess scoresheet to PGN — the whole process

