How Elo Gain Is Calculated
The math behind Opening Coach's Elo estimates.
Win Probability from Eval
Stockfish evaluates each position in centipawns (cp). We convert this to a win probability using a logistic function:
The constant 0.00368 comes from Lichess's win probability model, where it was derived by fitting a logistic curve to 75,000 positions from 2300+ Elo rated rapid games using scipy.optimize.curve_fit. At +100cp it gives roughly 59% win probability, and at +300cp about 75%.
Per-Mistake Impact
For each mistake, we compute the win probability you lose by playing your move instead of the engine's best move:
We then weight this by how often you make the mistake across your analyzed games:
A mistake you make in 20 out of 500 games has 4% of its Δp counted. This reflects how much that specific mistake is dragging down your results on average.
Converting to Elo
We sum the expected-score gains from all mistakes, then convert the combined improvement to Elo using the inverse of the standard Elo expected-score formula:
The gains are summed before the conversion (not converted individually then summed) to avoid overestimation from non-linearity in the Elo scale.
Limitations
- The estimate assumes fixing a mistake means always playing the engine's top move in that position, which is optimistic.
- Opening mistakes interact — fixing one may change which positions you reach, affecting others.
- The logistic constant is an approximation. Real win probability depends on time control, rating, and game phase.
- Elo gain from openings alone won't fully materialize if middlegame and endgame play doesn't keep pace.