← All guides
Guide 05 · Using ChessDiary

HOW CHESSDIARY READS MESSY HANDWRITING (AND WHEN IT CAN'T)

By the ChessDiary team

Every scoresheet OCR system eventually meets a page it can't fully read — a rushed time-scramble scrawl, a smudged pencil line, or a "1" that could just as easily be a "7". ChessDiary's parser, built on Google's Gemini model, doesn't just guess silently in these cases. It flags exactly how confident it is in what it read, and where.

Understanding what that confidence signal means — and what to do when it's low — turns a frustrating half-parsed game into a two-minute fix instead of a scoresheet you give up on.


1. WHAT THE PARSER ACTUALLY DOES WITH UNCLEAR WRITING

When Gemini reads a scoresheet image, it isn't matching letterforms against a fixed template the way older OCR engines do — it's reasoning about the page the way a person would: this looks like a knight move because it's followed by a file letter, this squiggle is probably a "5" because the column above and below it are also numbers. That context-based reading is what lets it get through genuinely messy handwriting that a strict character-recognition system would reject outright. It's also why an isolated unclear character rarely breaks the whole game — the parser can often infer it from the notation pattern around it.

2. WHY AI READING BEATS TRADITIONAL OCR HERE

Traditional OCR is built for printed text — clean, consistent letterforms in a known font. Handwritten chess notation breaks nearly every assumption that relies on: everyone's handwriting is different, players write faster as the clock runs down, and a symbol like x carries specific chess meaning a generic text reader has no way to know. Gemini's model was chosen specifically because it reasons about the page in context rather than matching shapes, which is what makes it usable on genuinely rough club-level scoresheets.

3. HOW CONFIDENCE GETS FLAGGED

Every parsed scoresheet comes back with a confidence level — high, medium, or low — along with any specific notes about what was hard to read. A high-confidence parse usually means the handwriting was clean enough that there's little to double-check. A low-confidence result doesn't mean the parse failed; it means the model made its best guess on one or more moves and is telling you exactly where to look before you trust the result.

4. THE MOST COMMON MISREADS (AND WHY)

5. WHAT TO DO WITH A LOW-CONFIDENCE PARSE

Every parsed game — regardless of confidence — is shown to you as a move list before it's saved, not saved automatically in the background. Step through it against the actual scoresheet (or your memory of the game) and correct anything that looks wrong before confirming. This review step exists specifically because no OCR system, however good, should be trusted blindly with a record you might want to study seriously later.

6. WHEN IT'S WORTH RE-PHOTOGRAPHING INSTEAD OF CORRECTING

If more than a handful of moves come back uncertain, it's usually faster to retake the photo with better lighting than to manually fix each one — see our guide on photographing a scoresheet for what actually improves parse accuracy. A five-second reshoot with even lighting often turns a low-confidence parse into a clean one.

ChessDiary's Gemini-powered parser reads photos, PDFs, and screenshots of scoresheets automatically and shows you the result before saving — so a messy page costs you a review, not a lost game.