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+10

^{D/400}

equivalently, given R,

set D ← 400 log

_{10}(1/R - 1)

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

P1 - P2 ← 400 log

_{10}(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