I will try to use the same nomenclature as in this wikipedia page:
Where R is the elo rating of a player (RA of the player A and RB for player B and so on). QA, QB, QC … are the effective power levels of these players that result from that elo. EA, EB, EC… are the probabilities of winning a game for each of them, E1 and E2 are winrates associated with teams. In the following I will also introduce expressions for the wrong Team elo calculations and the ones I propose to be implemented instead.
The first part is just to showcase the general calculation error that is already applying to 1v1s. This error is minimal though, it even has an interesting effect that players need effectively a few fewer games to get to their real elo when climbing the ladder and actually, interestingly compensates another error that doesn’t come from the calculation but how ladder matches need to be setup. You see, the high end players don’t have a lot of opponents on their own level and they are mostly paired with lower ranked players. When they win they don’t get a lot of elo - and if they lose they can lose a lot in comparison, requiring them to only “creep” to their real elo. The calculation error of the elo system actually makes this creep a bit faster. I will also show at a later stage why the permanent miscalculation has little to no long-term effect on the 1v1 elo scale and though we should be aware of the miscalculation, there is absolutely no need to change anything for the 1v1 elo system from this.
Now the showcase what is done wrong, on an easy example of player A (400 elo) and player B (0 elo)
RA = 400
RB = 0
QA = 10^(400 / 400) = 10
QB = 10^(0/400) = 1
QA + QB = 11
EA = 10/11 = .909090…
EB = 1/11 = .090909…
With a K factor of 32 when A wins the new RA’ an RB’ values are:
EA’ = EA + 32 * (1 - 10/11) = EA + 32/11 = 400 + 32/11
EB’ = EB + 32 * (0 - 1//11) = EA -32/11 = 0 - 32/11.
Resulting in the actual power levels of
QA’ = 10.16887
QB’ = .98339
QA’ + QB’ = 11.15226
Which is bigger than the original QA + QB = 11. So for some reason in this match their combined power has increased. This is a result of a wrong linearisation of the added/subtracted elo, If the lower ranked player would have won, their combined power level would have decreased. The reason for that is, that the higher the elo the more difference slight elo changes make in the actual power level and the lower it is the less difference. So shifting them around like this will always result in an error when the players have different elos and the error is the bigger the bigger the elo difference of the players is.
From the elo perspective it looks like their combined elo is unchanged at 400. But that’s misleading.
I could formulate a correct formula here, but it isn’t really necessary as I described before. This mistake actually has little impact and doesn’t require to be fixed in 1v1s.
What reuires to be fixed though is that the Team elo calculation uses the same form of linearisation. Instead of adding the actual power levels of the players, it adds the elos. Which results in a miscalculation of the overall team elo. Though I actually don’t know exactly how the team elo calculations work, the general mistake is implemented and the result is appearant. Players with low elo have way too high impact and players of high elo have too little impact, resulting in teams haveing players “tanking” with really low elos getting an unfair advantage.
Now going finally to the Team elo calculation mistake and how I propose to fix it.
I need to introduce a new value nR1 (and nR2) whihc is the new elo for the team 1.
Also two functions Q(R) which gives the power level of an elo and R(Q) which gives the elo of a power level. They are inverse functions meaning Q(R(Q1)) = Q1.
Q(R) = 10^(R/400)
R(Q) = 400 * log(Q)
Now I want to define two teams of 4 player which are on the same power level and should be evenly matched.
QA = 5
QB = 5
QC = 5
QD = 1
QA + QB + QC + QD = 16
RA = R(QA) = 259.58800
RD = 0
QE = 4
QF = 4
QG = 4
QH = 4
QE + QF + QG + QH = 16
RE = 240.82400
The calculation of the team elos is the mean of the the players elo.
R1 = (RA + RB + RC + RD)/4 = (3 * 259.58800 + 0) /4 = 194.691
R2 = RE * 4 / 4 = 240.82400
So according to this calculation, T1 is more than 46 elo worse than T2. Meaning that the team elo calculation thinks that T2 is favorite and should win 56.6 % of the games. This is with comparably close elos aswell, we have teams with elo differences of close to 10x of this. The calculation SHOULD get to 50 %, as both teams are chosen to be on the same power level.
If I would have chose the teams like one team of 2 x 2000 elo players and 2 x 0 elo players and the other one consisting of 4 1000 elo players, the team elo calc would result in an “even matchup” with a winrate of 50 % each. But when you calc the corresponding team power levels, you would actually get to a result of 99.4 % winrate for the team with the different elos. Basically a guaranteed win if they don’t make mistakes. And from that win they would get K/2 elo points each - the amount they would get if they would have beaten an equally strong team. And ofc because of the wrong calculation they also will get paired with teams they can easily beat, as their calculated team elo is just too low.
The nR calculution I propose. (Note this is the most easy form and I will make a cR calculation at some point that will allow teams with different amount of players and handycap to be matched and fairly treated).
nR = R(sum(Q(Rn)) / n) [old calc is R = sum(R) / n]
nR1 = R((QA+QB+QC+QD) / 4) = R((5+5+5+1) / 4) = R(4) = 240.824 = nR2
Leading to the correct result that the two initally defined teams are evenly matched with a winchance of 50 % each
And in the other case of teams with 2 * 2000 , 2 * 0 elo and 4 * 1000 elo it will result in nR1 = 1879.58974 and nR2 = 1000. The chance of winning would be exactly the mentioned 99.4 % that result from the power level calculation.
I will stop the initial post of this Thread at this point. I want to talk about stuff here later, but I think this is enough for the opening post.
Upcoming:
- Different team sizes and a way to match them fairly with an accurate calculation.
- Handicaps elo calculation methods
- How to correctly calc elo gains and losses in TGs
- What this means in order to reduce griefing +
- Comparisons between the wrong and correct method
- Explanation why the wrong linearisation is almost irrelevant for 1v1s
Finally I also want to thank @Mercy9545 who could possibly explain much better than me what’s the issue with the wrong team elo calc and why the described new calculation is the correct one.
I hope at some point one of our content creators with mathematical backgrounds like twest or sotl will make a video about this. And ofc there are various other ways that could result in a solution. We don’t even need to use and fix the elo system, we could also define our own ranked system instead.