[Math] Improving the Elo rating system to account for game results

scoring-algorithm

I am looking for a ranking system for office table tennis. The popular option is the Elo rating system http://en.wikipedia.org/wiki/Elo_rating_system. This system is also popular in Chess I believe where the results are very binary (win or loss).

However in table tennis I'd like to take into account how much the player won by, if they won 21-9 this should be worth more than a 21-19 result. Similarly if they won by a greater margin against a higher ranking player it should be worth even more than the ELO system would normally grant.

Has anyone encountered such a system? One that also takes into account the final score, not just the win.

Best Answer

I've recently being working on this for a system to rate our (highly competitive) office table football. I found a solution in a slightly strange post featuring an "interview" of the Elo algorithm.

Essentially, you apply a multiplier to the K factor to account for margin of victory which is calculated as:

Margin of Victory Multiplier = LN(ABS(PD)+1) * (2.2/((ELOW-ELOL)*.001+2.2))

Where PD is the point differential in the game, ELOW is the winning team’s Elo Rating before the game, and ELOL is the losing team’s Elo Rating before the game.

It works quite nicely due to the inclusion of the natural algorithm, since large wins are given more weighting but very large wins don't affect the ratings too greatly.

Related Question