Matchmaking and Ranking FAQ

I compiled a list of commonly asked questions which I have attempted to answer below.

I will update this as new questions come in and also if changes are made that require changing the answers (matchmaking / ranking tweaks, etc.)

The FAQ starts with matchmaking questions. If you have a question about ranks, skip down to Ranking.


MMR or Matchmaking Rating
The most accurate prediction of a player’s ability to win matches. See TrueSkill2 for an in-depth explanation. MMR tells how well a player is expected to play their next match given their history, party size, the playlist, and a given game mode within the playlist. In the data, it is currently hyper-accurate at predicting who will win each match.

CSR or Competitive Skill Rating
The visible rank players see (e.g. Platinum, Onyx 1522, etc.). A visible indicator that combines how much a player has won with how difficult the wins have been for a given playlist. CSR will follow MMR around if players prove they deserve the expected MMR.

MMR is what we expect players to do, CSR shows what they’ve actually done.

to4, to3, to2, etc.
Short for “team of 4” and refers to a pre-made fireteam (party) of that size. So a to4 is the same as a fireteam of 4 friends that have created a party before matchmaking.


How does Halo 5 matchmaking work now?
The matchmaker will find the best match possible given who is available without making you wait for more than 5 minutes. It will also only make you wait longer if it knows a better match is coming. If it knows it won’t be able to make a better match, it will match as soon as possible with what’s available now.

What about MCC matchmaking?
Due to the age of MCC and its underlying services and components, MCC uses a completely different system than Halo 5. The following FAQ is only relevant for Halo 5.

How do you define best match possible?
The matchmaker considers the following the most important factors, in priority order:

  • Good teammates - Good latency - Finding a group of players that the team balancer (a separate system) will be able to create equally skilled teams with (50/50 win chance).
    Why did I get this match? It is clearly unfair.
    A small portion of matches will be unfair. They only happen if it is the only available match during a reasonable waiting time for at least one of the parties in the match. How often unfair matches happen is directly proportional to the number of players around your own skill and region currently trying to play the playlist.

Why am I playing against Onyx and even Champs as a Diamond player?
This will only happen if it’s a choice between the Champ just not playing at all or playing against you. It means that the Champ or Onyx would have to wait around 30-60 minutes to find another Champ/Onyx, and the matchmaker currently does not want to make them wait that long.

Why do I still get bad teammates sometimes and after a very short wait?
You always get the best teammates possible within the window you can search. The matchmaker tracks who is currently searching and it will not make you wait if it knows better teammates just aren’t searching any time soon.

For example, an Onyx player prefers at worst Diamond teammates. If they get a Platinum teammate, that means they would have had to wait well over 5 minutes to get only Diamond teammates, which is past the wait time tolerance.

When Onyx players do get Platinum teammates, the team balancer (separate system) will still try and balance the teams so that they have a winning chance.

Why do I still get bad latency or an EU server (as a US player) or a US server (as an EU player), often after a very short wait?
The same reason. There were not enough EU players available within the 5-minute possible search window, so the system saw no point in making you wait 5 minutes only to match US anyways. If the system knows that there are not a lot of EU players searching, it will quickly give you a US server rather than waiting 5 minutes and then still giving you a US server.

On the other hand, if the system knows EU players are coming, it will make you wait a bit longer in order to get an EU server. If you are finding longer wait times, with this matchmaker, that means your match will actually be better than the short waits. So, it’s a good thing.

As a side note, the matchmaker allows wider skill-gaps on closer servers, so sometimes you will get an EU server, but have potentially worse teammates.

Why do I match full fireteams as a solo player?
There are two main situations where a solo player can match a full fireteam:

  • When the matchmaker asks the Skill system how good a full fireteam is, the skill system will automatically inflate the number (MMR) it sends back to the matchmaker by a large amount to capture the benefits of being in a full party. If that inflated number is still close to the MMR of a group of solo players (or combination of solo, to2, to3 for 4v4), the matchmaker will allow the match. In the actual data, these full fireteams are not winning more than expected, so the skill system is correctly boosting their MMR. In fact, when the solo players have a higher MMR than the full party, they win 71% of the time. So we generally don’t get complaints from this group. - When a stacked party at the top of the skill system has no other options but to match you anyways. If it’s a question of “just don’t let the stacked party play at all” or “have them play an unfair match”, the matchmaker currently errs on the side of “play an unfair match” When this happens, you will still get the best teammates possible for this encounter, and it will still try for as close of opponents as are available. This can still lead to unfair matches, but that’s the compromise the matchmaker makes.Also, this doesn’t just apply to full parties, this goes all the way down to even just solo players. There are some solo players that are so good that at certain times of the day and in certain playlists, the matchmaker can’t find a fair match for them either. So, it does the same thing, allowing that solo player into a match the system knows they will win to allow them to play at all.

Why don’t you just force full parties to match other full parties?
The matchmaker will match them against another full party if that’s actually the better match. If they match you instead, it means that the next closest full party was WAY worse than your team was. So it happens if forcing the next closest full party was an even worse match than playing vs. solos (e.g. to4 Onyx vs. to4 Diamond is much worse than to4 Onyx vs. 4 solo Onyx players).

99.99% of full parties can be matched fairly against other groups of players without them winning more than their fair share (around 50%).

For the other 0.01%, at the extreme this comes down to asking whether a stacked party of Onyx players should play against 4 solo Onyx players, a full party of Diamond players, or not play at all. In general, the system stays healthier when it errs on the side of the closer (though still admittedly unfair) stacked vs. solo matchup than having the Diamonds face full Onyx parties too often.

This does mean top-skilled solo queuing players in less popular objective-based playlists can sometimes have frustrating matches, but that’s traded-off against allowing high-skilled friends to play together at all.

We try not to prevent people from playing without solid data showing they are driving away more players than they are bringing in. That is currently not the case.

Why am I seeing all these Champs in my match, I’m only Diamond?
This often happens early in the season when there are low-level Onyx players who show as Champ because the first players past 1600 will get Champ. So, these aren’t really “Champs” per se, just Onyx players who played more games early in the season, and Onyx mixing with Diamond is OK when pop requires it.

Ranking or CSR (Competitive Skill Rank)
How do ranks work?
The goal of the ranking system is to provide players with a Rank that represents their historical ability to win matches against like-skilled opponents. For example, a Diamond 3 player with Diamond 3 teammates should beat other Diamond 3 teams 50% of the time. If that same player wins more or less than 50% of the time given equal teammates vs. equal opponents, their rank should go up or down.

However, it’s usually nearly impossible to ensure perfectly similar teammates and opponents, so instead the ranking system relies on a skill system to do the math necessary to adjust match outcome expectations based on the skill of all of the players actually in the match, and how they were assigned to teams.

How do you do that?
We use TrueSkill2 to determine player skill (also called MMR or matchmaking rating), and then we use Elo’s rating system to compare a player’s current CSR to their MMR, their teammates’ MMRs, their opponents’ MMRs, and a given match’s outcome. This results in a probability that the player was expected to win a given match given their CSR and everyone else’s MMR.

If a player’s CSR is correct (close to their MMR), and they play like-skilled opponents with like-skilled teammates, they will tend to go up +15 on a win and down -15 on a loss. If it was an easy match, however, they will go up less (e.g. +10) and down more (e.g. -20). The amount a player goes up and down is determined by the probability a player with that CSR would have won that match. If a player wins a lot of matches, but they have a really high CSR and were expected to win them, the player’s CSR is already correct and does not need to go up. Likewise, if a player loses most of their matches, but they were against much better opponents, the player’s CSR is correct and should not go down.

Note: for players Onyx and up, it is +5/-5 for even matches, and can go down to +1/-9 for matches that are too easy.

Why do you use TrueSkill2?
We have compared TrueSkill2’s accuracy on millions and millions of players and matches to several competing skill systems (including classic TrueSkill) and found it to be significantly more accurate at predicting who will win matches. Because the goal of the ranking system is to be accurate at telling players their ability to win matches, we chose the most accurate system at predicting that.
Why not just show the MMR then instead of CSR?
MMR is how we predict a player WILL do. CSR is what they have actually done. We prefer players to show they deserve their MMR before awarding it immediately. This also makes CSR a smoother version of MMR. MMR itself tends to be volatile and can sometimes swing up and down quite a bit as a player swings in performance. CSR tends to keep it even keel with a player’s established performance.
Why am I getting only +1 for a win but -9 for a loss?
There are two main reasons this can happen. These apply to any player, though I will be using the amounts that an Onyx player goes up and down rather than sub-Onyx because it’s more common there:

Reason 1:
You are in a somewhat stacked team, so you tend to play a lot of easy matches, meaning you have a 90%+ chance of beating your opponents. In this case, in order to prove you deserve to go up in rank, you need to win more than 90% of the time.

If you are already at the correct rank and playing teams you beat 90% of the time, then, out of 10 matches, you will win 9 gaining a total of +9 points, and lose 1 (-9) ending up back where you started. This is because you are playing as predicted, so your Rank should not go up. To prove the system is wrong, you must win more than it already predicts against a given opponent. If you are playing opponents your CSR predicts you to go 9-1 against, you need to go 10-0 in order to prove you should move up.

If the system could find you even opponents at your Rank, and your Rank was correct, then you would win 50% of your matches and get +5 on a win and -5 on a loss. So out of 10 matches you would win 5 (+25) and lose 5 (-25) and also end up back where you started. In order to rank up in that case, you would have to win more than 5-5 out of 10, at least 6-4, to move up in Rank.

If you are in this situation, it will be slow going and there’s no easy way around it other than changing the matchmaker to just not give you easy matches. But then you would have super long wait times and overall probably rank up at around the same rate, but with just less actual play time.

One solution to this is to play solo instead. You will lose a lot more matches that way since it will probably be able to balance teams without you being in a stack, and you will have worse teammates, but your rank will move faster. It may float down a bit at first because players tend to play better than their actual skill while in a party. That’s the trade-off.

Reason 2:
This can also happen if your CSR is currently well above your MMR. You will be matchmade at your MMR which is lower than your CSR, giving you matches that LOOK easy to your CSR, even if they don’t FEEL easy to play. You will see -9/+1 just like in the above case while your CSR floats back down to your MMR OR your MMR goes up through improved performance over time.

For example, you have an Onyx CSR but your MMR has floated down to Diamond due to poor recent performance. To the Ranks it now looks like an Onyx player is playing Diamond opponents, so you get very little on a win, and lose more on a loss.

What causes my CSR to get above my MMR?
A few main ways:

  • You have played significantly worse the last few matches. MMR can drop very quickly if the system sees evidence that you are playing worse than before. - You have been playing with a stacked team that is able to win more than 90% of their matches because no fair opponents are around. This will result in your CSR slowly creeping up because the system is giving you +1 when it should probably give you closer to 0. - You usually play in a party but are playing solo. The system naturally increases your Rank by however much being in a party helps in a given playlist. Your CSR then represents how you play in a party instead of solo, so when you switch back to solo it will float down to how you play solo.Does CSR take my personal performance into account at all?
    I carried my team and we lost, and I still lost a lot of CSR, why is that?
    The CSR system itself does not currently consider anything about in-game performance. So, playing well in a match will not reflect in that match’s CSR update at all.

However, TrueSkill2 DOES see that better performance and your MMR goes up when this happens. You don’t benefit from it in that match itself but having a higher MMR results in matching harder opponents, which results in you getting more CSR when you beat them.

The reason why we don’t now change it to use TrueSkill2’s performance results after the match is because H5’s original data plumbing as well as UI don’t support it, and we aren’t currently updating H5 while Halo Infinite is in development.

But I keep winning games, shouldn’t my Rank just keep going up?
Not necessarily. Your Rank should only go up if you are actually playing better than players at your CSR. If you are winning matches just the same as everyone else at your CSR, or if your KPM/DPM are the same against those opponents as other players at your CSR, then your CSR is correct and should not go up.

Unlike traditional sports, there is no schedule where you are guaranteed to play every possible team. Instead, you play a mix of different skilled teams, usually near your own skill. Because of that, a skill system is necessary to determine the actual difficulty of your schedule.

If ranks just kept going up on wins, then the entire system would inflate and the ranks would all be meaningless. The current system ensures that the rank you think you want and deserve is actually worth earning, rather than a consolation prize.

I know I’m better than my Rank
The current system is highly accurate at predicting player outcomes, so it is unlikely that just your rank is off. We have reviewed several cases and found that when players ask about this, their ranks are correct. When we look at their win% against similar opponents, it is near 50%, but under 50% for harder ones, in addition, we find players have in-game performances on par with those at their rank, and worse than those above them. The ranking system is designed to only let players pass others if they are actually winning / playing above those other players’ skill.

How did my Champ rank go down on a win?
Your actual CSR can’t go down on a win, but your Rank stacked against the rest of the Onyx players (Champs are just the top 200 Onyx) is effected by the matches of all those other Onyx players. So another Champ can pass you if you both play and win, but they got more CSR than you for their win (had a harder match). Or if a player gets in 2 matches for your single match. Your Champ stacked rank depends on how every is playing around you. It is also possible for your Champ rank to go UP on a loss if you lose less than someone above you, etc.

Can you show me the distribution of ranks in Halo 5?
Sure, here is a chart showing what percent of each playlist’s population is in each rank 2 months into the Spring 2020 ranked arena season:

What are the CSR boundaries for the Ranks
Each Rank is divided into 6 sub-ranks (1-6) at 50 CSR intervals as well.
Bronze: 1-299
Silver: 300-599
Gold: 600-899
Platinum: 900-1199
Diamond: 1200-1499
Onyx: 1500+
Champ: Top 200 Onyx players so depends on the playlist.

If you’ve made it this far, thanks for coming! We will update and maintain this list as needed.

If you have additional questions beyond these, the easiest place to ask them is on the most recent Matchmaking Update thread (by me) or at my twitter (@joshua_menke).