elo scoring

  • Arpad Elo's expected-win-rate scoring system   e.g. nba elo

  • converts between

    • difference D = P1 - P2 of elo scores of two players, and

    • P1's expected winrate R when playing P2

  • given D,

    • set R ←   1   /   1+10D/400

  • equivalently, given R,

    • set D ← 400 log10(1/R - 1)

  • example, given P1's win rate vs P2 is .6, how much higher is her elo score ?

    • P1 - P2 ←   400 log10(1/.6 - 1)   ≈ 70.4

def winrate(x,y):
  return 1.0/(1.0+ pow(10.0,(x-y)/400.0))

def elo(r):
  return 400.0 * math.log(1.0/r - 1.0, 10.0)
score differences and win rates
  0  .50
 50  .57
100  .64
150  .70
200  .76
250  .81
300  .85
350  .88
400  .91
450  .93
500  .95