Improving the Elo rating system to account for game results

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.