Rocket League Match Statistics Calculator
Team 1
Team 2
Outcome Table
Variable | Low End MMR | High End MMR | Average MMR | Worst Case Team 1 | Best Case Team 1 |
---|---|---|---|---|---|
Mean Skill Team 1 $(\mu_{x})$: | |||||
Mean Skill Team 2 $(\mu_{y})$: | |||||
Mean Skill of Match $(\mu_{X-Y} = \mu_x - \mu_y)$: | |||||
Match Standard Deviation $\biggl(\sigma_{X-Y} = \sqrt{\sigma^2_x + \sigma^2_y}\biggr)$: | |||||
Match Quality: | |||||
CDF $P(X > x)|_{x=0}, T_1$: |
Probability Density Visualizations
About
Terminology
Worst/Best Case
The worst case scenario for Team 1 is when the MMR range for all players is taken as the lowest possible within their tier/division, while Team 2 uses the highest. The reverse is true for the best case scenario.
Mean Skill $\mu$
This is the statistical value which represents a player's skill rating. It is different but proportional to MMR, which is given by the following equation:
$${MMR} = {\mu}{s} + o$$
Where $s$ is a scale factor and $o$ is an offset. To the best of my knowledge, the values Psyonix uses for this calculation are $s=20$ and $o=100$ [source].
Mean Skill Team x $(\mu_x)$
The mean skill rating of the collective team, which is a straight average of individual team member skill values.
$$\mu_x = \frac{\displaystyle \sum_{i=1}^N \mu_i}{N}$$
Where $N$ is the number of players on a team
Mean Skill of Match and Standard Deviation
This is where it starts to get neat. We're interested in obtaining the distribution of the difference of our two normally distributed variates. In this case Team 1 and Team 2. It turns out this difference is itself a normal distribution with mean and standard deviation as referenced in the results table above. This derivation is more than just a simple reference so I leave [this source] if you're interested in the details. As noted in the assumptions, the standard deviation for all players' skill is assumed locked at 2.5, which is why we see a constant 3.54 value for the match $\sigma$ across the board in all scenarios.
$$ \sigma_{X-Y} = \sqrt{\sigma^2_x + \sigma^2_y} $$
For any given team, the average $\sigma$ will simply be 2.5. That means $\sigma_x = \sigma_y$.
$$ \sigma_{X-Y} = \sqrt{\sigma^2_x + \sigma^2_y} $$ $$ = \sqrt{2{\sigma^2_x}} $$
Match Quality
The match quality value is a rating of the 'goodness' of a matchup. The closer this value to 1, the more ideal the match. This metric is highly dependent on the standard deviation, and to truly obtain a value of 1 we would need to have zero deviation. This is not realistic in practice or principle, nor is it possible with a minimum $\sigma = 2.5$. Thus, in reality, the closest we can approach is $Q \approx 0.83$.
CDF
This is the cumulative distribution function of the resulting match. Evaluated for a specific range (that is, $x > 0$) it gives the probability of a win for Team 1 (orange). It is the integral of the density function for $x > 0$. It follows that the probability for a win by Team 2 is simply $1-P(X > x)|_{x=0}$.
Assumptions/Gotchas
This calculator is not going to be 100% representative of what we see in the Rocket League matchmaking system for a few reasons, and I've detailed them below. Nevertheless, it gives a strong first approximation and idea of what in fact is transpiring behind the scenes. It's not some dark wizard magic; it's math.
- This calculator assumes all players have reached a $\sigma=2.5$, or rather, they've already played sufficient matches to settle with reasonable certainty where they 'belong'. This will vary greatly for unranked and new players, and so this calculator is unsuitable to determine if those matchups are fair. Remarkably, TrueSkill reaches rather accurate convergence within approximately 10 iterations (which is why we have 10 placement matches), so it shouldn't take long to land where you should.
- There is a value used in TrueSkill that specifies the width of a 'skill class', the $\beta$ term. This is the value range which indicates a percentage win over another with constant results. Jeff Moser's paper on the algorithm makes reference to a value of 4 corresponding to an approximate 80% win rate. In Rocket League terms, this would correspond to roughly an entire tier difference. So, for example, a Gold III Div 2 player would be expected to beat a Gold II Div 2 player 80% of the time. I've err'd slightly on the conservative side and chosen a smaller value of $\beta = 3.7$
- This calculator has no knowledge of the weighted averaging system that we know Psyonix has implemented. From my understanding, the higher the rank disparity of a team, the greater their win rate versus another team with a similar mean skill but smaller disparity [source]. Since I don't know how Psyonix has chosen to implement this weighting system, I have left it out entirely. Given this, I would expect that the actual system would present matchups where a smaller skill disparity is actually more favored to win.
- To all the Grand Champions that found their way here: I'm so sorry. There's really only one division and the disparity is going to be all over the place. This calculator is almost certainly useless for you. At best, you can check the extreme outcomes (best/worst cases) at the high and low end of this rank.
References
TrueSkill
Normal Distributions
- Normal difference distribution
- Matt Bognar, Ph.D - University of Iowa Department of Statistics and Actuarial Science