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.

  • 1
    $\begingroup$ Usually those types of systems are less accurate than a standard ELO-like system. Especially if you don't have a huge number of games to let ratings stabilize. $\endgroup$
    – Silynn
    Jun 28, 2014 at 3:12
  • $\begingroup$ You could have a simplified version where you use ELO but if the loser scores less than 10 points that counts as two wins for the winner. $\endgroup$
    – vadim123
    Jun 28, 2014 at 3:37
  • $\begingroup$ (1) You might consider putting this over at stats.SE since it's essentially a statistical/modeling problem; (2) It wouldn't be too difficult to modify Elo (which is, after all, at heart based on the difference between 'expected result' and 'actual result') if you had a good sense of what a ratings difference should correspond to in terms of a game-score difference. The problem is, that takes a goodly amount of data. I would agree with Silynn's comment - until you're well and truly convinced that Elo or even simpler systems like a basic ladderaren't_ good enough for you, stick with them. $\endgroup$ Jun 28, 2014 at 3:53
  • $\begingroup$ "in Chess I believe where the results are very binary (win or loss)", not binary: in chess there are also draws, accounting for a large percentage of game results (the more the elo and the longer the time control, the more the draw percentage) $\endgroup$ Sep 7, 2017 at 15:03

2 Answers 2


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.


For this issue, I'd use the Margin to define a term between 0 and 1, here called $\mu$. The scores of Player A and Player B are A and B, respectively.

$$\mu_A=\frac{A}{A+B}$$ and $$\mu_B=\frac{B}{A+B}$$

however, for the final steps of this, we use the term $\mu_W$, which is the higher $\mu$ of the two.

In cases of a no-contest victory, the Winner would earn $\mu=1$, and the Loser would earn $\mu=0$.

In cases of ties, both players would earn $\mu=0.5$.

(In the following cases, A and B are interchangeable, depending on who is the Player in question)

In cases of smaller margins, the following limit holds true: $$\mu_A=\lim_{A\to B}\frac{A}{A+B}=0.5$$

In cases of larger margins, the following limit holds true: $$\mu_A=\lim_{(A-B)\to \infty}\frac{A}{A+B}=1$$

In reference to the scenario you provided $\mu_W=0.7$ in the case of 21-9, while $\mu_W=0.525$ in the case of 21-19. With these factors in mind, I posit that these factors should not be applied directly to the $S$ term in the following function, the recalculation in the Classical Elo: $$R'_A=K_A (S_A - E_A)$$ but, should be applied in this modification: $$R'_A=K_A^{\lambda^{\mu_W}} (S_A - E_A)$$ which, ultimately makes $K^\lambda$ a limit for the maximum movement, while keeping the movement at $K$ in cases of ties. I set $\lambda$ using the following: $$\lambda=1+\frac{\ln{y}}{\ln{K_A}}$$ with $y=2$ or $y=1.5$, although any $y$ could be used.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .