A cooperative game in which two players share a final score on each match.

I would like to have an individual ranking for each player in the system considering all matches between all players ever played.

A typical score varies from 500 to 7000 (in theory, from 0 to 10000+).

My first thought is to use the score as the ranking itself as follows:

  • Player-A with NA matches (ever played) and ranking RA plays with Player-B with NB matches and ranking RB.
  • The expected score is (RA+RB)/2 (this is an assumption that is probably close to reality, but I don't have enough data).
  • The actual score was RX, which is distant D = RX-(RA+RB)/2 from the expectation.
  • The new ranking for Player-A is RA+D/NA and NA is incremented.
  • The new ranking for Player-B is RB+D/NB and NB is incremented.
  • A new player enters the system with 1 match and ranking 0.

My specific questions:

  • Is there an existing ranking system designed for games like this?
  • If my assumption is correct, is the proposed system good?
  • If my assumption is not entirely correct, what should be changed? It is guaranteed, at least, that RX is between RA and RB.

1 Answer 1


I would use the Elo Rating system. It’s what is used for chess and a variant of it is used for CSGO.


  • 2
    $\begingroup$ AFAIK Elo is not designed for cooperative games and does not take into account points (only win/loss). How could it be adapted? $\endgroup$
    – Contaso
    Jun 5, 2019 at 18:48
  • $\begingroup$ Actually you might want to look in to TrueSkill 2. microsoft.com/en-us/research/uploads/prod/2018/03/… $\endgroup$ Jun 6, 2019 at 2:09
  • $\begingroup$ I don't see how TrueSkill 2 could be adapted. It also seems to be unnecessarily complex to this game. $\endgroup$
    – Contaso
    Jun 6, 2019 at 11:02

You must log in to answer this question.

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