I am a first-time user of this site, and am not sure what determines how broad a question is. I consciously limited the question to general principles in order to avoid making it too broad (by asking for examples, etc.).

Nevertheless, if it is too broad, let me know in the comments, and do suggest how to narrow it down.

The question

I am aware (through chess) of the Elo rating system and how it works. Basically if you know the ratings of two players, you can calculate the expected score of both of them, and adjust their ratings based on the actual score.

However, I was wondering how this system is adapted to work for games in which the margin of victory matters.

Specifically, I was wondering how the rating system can be extended so that one can calculate not only the expected score but also the expected margin of victory or defeat from the ratings of two players/teams.

I'd also expect the system to take into consideration the actual score as well as the actual margin of victory when adjusting the ratings after a match.

A hypothetical example

The actual details needn't be the very same as what I mention here, but the general idea goes like this:

Consider a rating system where Chelsea and Man City have ratings 2000 and 2100. I'm looking for a rating system which not only predicts the score (around 0.64 for City) but also the margin of victory.

Considering that the rating somehow gives us an expected margin of +3.2 for Manchester City, and the team wins 2-0, I'd also expect the system to reduce City's rating for not winning by a large enough margin.

But I do wonder if two variables (expected score and expected margin of victory) are needed or just one (expected score) does the job.

In short

What are the general principles and methods involved for extending the Elo rating system to games where the margin of victory matters?


1 Answer 1


A simple version of ELO can be cast as a logistic regression: for players $i,j$ with ratings $R_i,R_j$,

$$P(i\mbox{ beats }j)=\frac{1}{1+\exp(\beta(R_i-R_j))}.$$

So you could just as easily predict score instead by using a different link function, for example a lorentzian or gaussian:

$$P(\mbox{Game score}=x)=a\exp(-\alpha|\beta(R_i-R_j)-x|^\gamma)$$,

where the game score can be positive (in favor of $i$) or negative (in favor of $j$). So you don't need to calculate the probability of beating and just directly optimize the game score.

  • $\begingroup$ That sounds promising. I thought of something similar, where the expected margin of victory $m_e$ is given by $m_e=A({2S_e}-1)$ and $S_e$ is the expected score, calculated as usual $\left(S_e=\frac{1}{1+10^\frac{-d_R}{400}}\right)$. Then, $\Delta R=K(m_a-m_e)$, where $m_a$ is the actual margin of victory. The constants $A$ and $K$ can, I guess, be obtained by some experimentation. $\endgroup$ Commented Jan 6, 2018 at 15:54
  • $\begingroup$ Could you edit your answer to elaborate a little on how the ratings are updated once the result of the game is known? I'm not sure if I understand fully. $\endgroup$ Commented Jan 7, 2018 at 13:38
  • $\begingroup$ @HarryWeasley: The most straightforward way to update result for players $(i,j)$ with a new datapoint is to recalculate $R_i,R_j$ by updating the loss function, via gradient descent. $\endgroup$
    – Alex R.
    Commented Jan 8, 2018 at 18:15
  • $\begingroup$ Sorry to be so bothersome, but I'm not an expert, and didn't quite understand some of the terms (especially 'loss function' and 'gradient descent') you used in your last comment. Could you rephrase the same in simpler terms? :) $\endgroup$ Commented Jan 8, 2018 at 18:28
  • $\begingroup$ @AlexR. what is the function represented by β? $\endgroup$
    – user160104
    Commented Nov 27, 2018 at 9:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.