How it works

Every number on the results page comes from a deterministic pipeline. No language models are used.

01

Parsing the game

The PGN is read on the server. Players, ratings, event, date, result and every position are extracted. Only the first game in a file is analyzed.

02

Engine evaluation

Each position is evaluated by the analysis engine before and after the move that was actually played. The engine runs entirely on the server; nothing is analyzed in your browser.

03

Per-move features

For every move we record the engine's preferred move, the evaluation before and after, centipawn loss, whether the played move matched the engine, and how complex the position was.

04

Position complexity

Complexity measures how sharp the position is: how far apart the plausible candidate moves are and how many of them are close to best. Matching the engine in a complex position is far more informative than matching it in a forced one.

05

Rating expectation

Expected accuracy is derived deterministically from the player's rating. Observed accuracy above expectation is the core statistical signal.

06

Suspicion scoring

The detector combines engine agreement, centipawn loss, complexity and the rating gap into a score from 0 to 100 per move, then aggregates sustained behavior and the strongest clusters into a game-level Engine Assistance Likelihood.

07

What this is not

The output is a statistical anomaly measurement. Strong human players legitimately produce high engine agreement, especially in simple positions. Nothing here proves that a player cheated.

Ready to try it?

Upload a PGN file or paste notation. No account needed.

Analyze a game

Results indicate statistical anomalies and should not be treated as proof of cheating.