The mistakes you keep making
Checkup names the move that decided each of your Chess.com games. Across all of them, it shows which mistakes come back.
Your email is the only personal data Checkup keeps. No tracking cookies. The rest tells me what to build next.
AI-generated explanations (Claude, by Anthropic) are reserved for ages 18 and over. Terms, Privacy

Where this is
The screenshots come from a real game. The dots and statuses below report where the project stands.
Chess.com import, engine analysis and the per game report.
Player statistics across every game you have imported.
Opening repertoire analysis, and exercises built from your own weak spots.
Lichess import.
What it does
The move that cost you
A chess engine will flag dozens of moves in one game. Most of them did not matter. Checkup ranks what it finds by how much the position swung, and puts the moves that decided the result at the top.
Why it was wrong
Each flagged move gets a written explanation: what you missed, and what the position asked for instead. A language model writes it from the engine's own best line.

Every named move is checked
A move that appears in an explanation is verified against the actual position before it is shown. A move that does not exist in the position is not displayed.
The same game gives the same report
The engine runs at a fixed depth. Run the analysis again next month and the verdict does not move.

Across every game you played
Find out when you gave up too soon
Checkup reads your whole Chess.com history from your username and measures how you play across all of it, by time control, by period, rated or not.
Games you resigned too early
It counts the games you resigned while the engine did not consider the position lost. That is a decision you made, not a move you played.
The move where you leave theory
It finds the point where your game leaves the opening book, and tells you whether that move gets flagged more often than your others. Leaving theory is not a mistake, and the page says so.
The phase that costs you
Errors per hundred moves in the opening, the middlegame and the endgame, each with its interval. The endgame figure is a floor, because a fault in a decided position moves the evaluation too little to count.
Errors that come back
The same kind of error, in the same opening family, across your history.
Under a set number of games a rate is not shown at all, and the page tells you how many games are still missing. No language model touches any of these numbers.
Where every verdict comes from
Checkup is built from parts that do not do the same job. Each one is held to its own, and none covers for another.
Stockfish judges the position
A local engine at a fixed depth of 15 evaluates every move. It produces the curve on the chart and the label on a flagged move. Nothing else does.
Plain code counts
Player statistics, intervals and thresholds are computed by deterministic code. No language model is involved, and the statistics page carries that stamp: no language model on this page.
A language model puts one line into words
The explanation under a flagged move is written by a language model from the line the engine already found. Every move it names is checked against the position before it is shown. It writes nothing the engine did not find first.
A number is never generated. A sentence is never invented.
Feature list
- Chess.com import Your games are fetched from the public Chess.com API using only your username, with no Chess.com password.Shipped
- Move classification Moves are ranked by how much the position swung, at a fixed engine depth.Shipped
- Written explanations Every flagged move gets a sentence, built from the engine's own line.Shipped
- Self contained report The report is one page that opens without loading anything from a server.Shipped
- Player statistics Where you lose material, which phase costs you most, which openings keep losing.Shipped
- Leaving theory Where your game leaves the opening book, across your history, and whether that move gets flagged more than the rest.Shipped
- Opening repertoire What to play instead once you are out of book.Not built. Planned.
- Targeted exercises Positions drawn from your own recurring mistakes.Not built. Planned.
- Lichess import Chess.com is the only source today.Not built. Planned.
Known limits
Only illegal moves are caught
An explanation that names a legal move with the wrong consequence is not detected today. The move exists in the position, the reasoning about it may still be wrong.
There is no Brilliant badge
Checkup reports what went wrong. It does not hand out compliments, and that will not change.
One source
Chess.com games only. If you play on Lichess, Checkup has nothing to read yet.
It will not make you better on its own
Checkup tells you what happened in a game. The work after that is yours.
Questions
Is Checkup free?
Pricing is not decided yet. The analysis engine will be released under the AGPL. The hosted version is what is being built now.
Do I need to give my Chess.com password?
No. Chess.com publishes a public API for data anyone can already see without logging in, and Checkup reads your games through it using nothing but your username. There is no field to type a Chess.com password into.
Does it work with Lichess?
Not yet. Chess.com import works today. Lichess is the next source planned, and this page will change the day it does.
How is this different from the game review I already get?
Most reviews give you a number and a label per move. Checkup is built around the small number of moves that changed the result, explains them in words, and tells you plainly what it cannot measure.
What engine does it use?
Stockfish, running at a fixed search depth. The depth and the thresholds used to classify a move are written into every report, so you can always see what produced a given verdict.
Will it tell me my move was brilliant?
No. There is no brilliant class. Checkup finds mistakes and missed wins, which is where the improvement is.
Is there AI in Checkup?
Yes, in one place. A language model writes the explanation under a flagged move, from a line Stockfish already found, and every move it names is checked for legality before display. The engine evaluations and the player statistics come from Stockfish and from deterministic code. No language model touches a number.