Analysis Policy v1: Engine, Budgets, and Thresholds
How does BlunderLoop analyze a chess game?
BlunderLoop analysis policy v1 runs Stockfish 18 lite, a single-threaded WebAssembly build, entirely in your browser. Each position gets a fixed time budget by device tier (400, 650, or 750 milliseconds), every evaluation is converted to a win chance with the lichess sigmoid, and each move is graded by win-chance drop: under 2 points best, 2 to under 8 inaccuracy, 8 to under 20 mistake, and 20 points or more blunder. The policy is fixed and versioned, so analyzing the same game twice under v1 produces the same report.
Engine
Reports are produced by Stockfish 18 lite (the stockfish-18-lite-single build): a single-threaded WebAssembly engine running in a Web Worker in your own browser. Nothing is sent to a server for analysis, and the single-threaded build behaves the same across devices, which keeps results reproducible.
Time budgets by device tier
Each position is searched for a fixed movetime chosen from three device tiers, so a full game (about 80 positions in a 40-move game) finishes in roughly half a minute to a minute. Devices are classified by memory and CPU cores; when in doubt, BlunderLoop assumes the low tier rather than overdriving an unknown device.
| Tier | Movetime per position | Depth cap | ~80 positions |
|---|---|---|---|
| Low | 400 ms | 10 | about 32 s |
| Mid | 650 ms | 14 | about 52 s |
| High | 750 ms | 18 | about 60 s |
Win-chance conversion
Every centipawn evaluation is converted to a 0-100 win chance with the lichess-standard sigmoid: Win% = 50 + 50 x (2 / (1 + e^(-0.00368208 x cp)) - 1). Centipawns are clamped to +/-1000 first, which caps cp-based win chances at about 2.46-97.54, and forced-mate scores map to the near-extremes so every mate ranks beyond every centipawn score.
Grading thresholds
A move is graded by how many percentage points of win chance the mover gave up, using the fixed v1 thresholds.
| Grade | Win-chance drop |
|---|---|
| Best | under 2 points |
| Inaccuracy | 2 to under 8 points |
| Mistake | 8 to under 20 points |
| Blunder | 20 points or more |
Consistency guarantee
The policy version (v1) is recorded with every persisted analysis result. Because the engine build, time budgets, win-chance formula, and thresholds are all fixed under that version, running the same game through analysis twice yields the same grades. If a future policy changes any of these rules, it will ship as a new version, and reports produced by older policies remain detectable and can be re-run.