UCRFL
UCR Foosball League
Rating change calcuations
back to main
The calcuations are based on the relative rankings of each player and also the difference in score for the games. After each game the ratings
for each player is adjusted as such (pseudo python code):
factor = (0.75, 1.00, 1.25, 2.00, 4.00)
base = 500
weight = 25
sweight = 50
for player in winners :
adjust = math.floor( ( average rating of opponents - player.rating + base + score difference * score weight ) / weight )
if adjust > 0 :
adjust = adjust * factor[score difference - 1]
else :
adjust = adjust * factor[- score difference]
player.rating += math.floor(adjust)
for player in losers :
adjust = math.ceil( ( average rating of opponents - player.rating - base - score difference * score weight ) / weight )
if adjust < 0 :
adjust = adjust * factor[score difference - 1]
else :
adjust = adjust * factor[- score difference]
player.rating += math.ceil(adjust)