Sign in

Enter your email and we'll send you a magic link to sign in. No password needed.

Sync your analyses and progress across devices.

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:

winProb(cp) = 1 / (1 + e-0.00368 × cp)

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:

Δp = winProb(bestEval) - winProb(playedEval)

We then weight this by how often you make the mistake across your analyzed games:

gain = (occurrences / gamesAnalyzed) × Δp

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:

Elo = -400 × log10((0.5 - totalGain) / (0.5 + totalGain))

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.