Your MMR explained
Valve's matchmaking system uses the TrueSkill rating system or something very close to it. If you want to learn more about the algorithms behind this system, you can read about it here but it's fairly complicated.
To put it simply, your actual skill is determined by a hidden mean skill value and your uncertainty value. Because player skill can vary from game to game, this system basically suggests that your skill in any given game has a high chance of being around your mean skill rating but there's also a low chance you play really bad or really well compared to what your skill level would suggest.
To make this clearer, let's say a player has a mean skill rating of 3000 and an uncertainty rating of 500. The system predicts that the player has a 95% chance of playing on the same level as a player with a mean rating of 2000 to 4000 but also <1% chance that they may play as good as someone with a mean of 4500 or as bad as someone with a mean of 1500.
Note that mean skill rating is not the same as your visible MMR. Based on the TrueSkill system, your visible rating is a conservative estimate of your true skill rating. Microsoft determines the visible rating as 3 deviations below your mean skill rating which means that the game is 99% certain you are going to play above this level. What this means is that if your mean skill rating is 3000 and you have an uncertainty rating of 500, your visible MMR is going to show only 1500.
Adjusting your mean rating after games
Your mean skill rating increases after a win and decreases after a loss, always. It does not matter how you won, by how much you won, what your GPM was at the end of the game, your K/D/A, none of it matters. The game only cares whether you won or lost then adjusts your rating accordingly.
How much your rating changes is determined by your uncertainty rating and the average skill of your team compared to your opponent. If your team has a higher average rating and you win, the game says that is expected, so your team gains less points. If your team has a lower rating and cause an upset, you gain more points. The opposite applies if you lose.
The gain/loss of points are then split among individual players based on their uncertainty rating. If your uncertainty level is high, you will gain/lose a higher percentage of the points assigned to your team. Basically, if your uncertainty rating is 500 and your team's total uncertainty rating is 1500, you will end up gaining/losing 33% of the total points your team is assigned. Essentially this means that people with high uncertainty ratings gain/lose more points than people with lower uncertainty ratings. This is to help quickly make new players' MMR more accurate.
Adjusting your uncertainty rating after games
After each game, the system learns more about you as a player and is more confident about your rating. This is reflected by your uncertainty rating dropping gradually. In games where the system heavily favors you to win due to your team's higher ratings and you do win, uncertainty changes very little because nothing new was learned. If a team loses or wins unexpectedly, uncertainty changes a lot.
As one can imagine, gradually uncertainty rating becomes 0. This can be a problem because if your uncertainty is 0, you will gain/lose 0% of your team's assigned points after a game (as explained above), effectively stagnating your skill rating.
The system combats this by slightly increasing the uncertainty rating before the outcome of each match. This allows the system to track skill improvements of players over time and ensures that the skill uncertainty never decreases to zero ("maintaining momentum").
I won all 10 of my initial ranked games and my MMR is 3000 while my friend lost all his games and has a MMR of 4000. WTF Volvo???
Your 10 calibration matches don't actually determine your MMR as valve has lead you to believe. Your initial MMR is already pre-determined by your mean skill in unranked play. This is why you were not matched against completely new players in your first game. Your rating does not start from 0 and jump up until it hits your true rating.
You start where you left off in unranked but your uncertainty rating is reset to very high. Your rating changes more than it normally would in unranked but not so much after 10 games that it would make a big difference to your rating. If you were a 2500 rating player and you won your 10 matches, you would be 3000 but your friend may have been a 4500 rating player so he dropped to 4000 after losing 10 matches.
I finished my 10 calibration matches, why am I still getting matched with people who are playing their first game?
For all intents and purposes, 10 matches is an arbitrary number of matches. The game already has your rating even before you play your first match. After 10 games, all it means is that the system is slightly more confident of your rating. Realistically, it takes a lot more than 10 matches to determine a truly accurate rating with very low uncertainty.
I just won my game, have the highest GPM and most kills in the game, why did my MMR go down? This is so broken!!!!
Firstly, GPM and kills will not have any influence on rating. The system only determines whether you win or lose not by how much.
MMR can drop after a win or increase after a loss and here's why. If you remember how MMR is calculated from your mean skill rating: MMR = mean - (3 x uncertainty). Mean always goes up after a win and goes down after a loss. In a game where the system heavily favors you to win and you do win, your uncertainty drops very little and you gain very little points. If you recall, the game adds some uncertainty to your rating before each game to stop ratings from stagnating. In such games, the amount your uncertainty drops after the game is not enough to offset the extra uncertainty the system applies to you before the game resulting in your uncertainty actually going up and in conjunction with only a very slight increase in mean rating, ultimately results in a net decrease in MMR.
Let's look at an example. My mean rating is 6000 and my uncertainty is 500 so my MMR would be 4500. I just finished a game where I am heavily favored to win. My team gains 300 points to be distributed between our players. The system adds 50 uncertainty before the game and my uncertainty drops to 480 so I am at 530. My team's total uncertainty is 2000 so I get (530/2000)x300=about 80 points. My new MMR would be 6080 - (3x 530) = 4490. A net decrease of 10 MMR.
The same can be said for an increase in MMR after a loss. When the system thinks you have a high chance to lose the game, your mean loss is small and if you get a large decrease in uncertainty, it can offset that small mean loss and even result in a net gain. This generally only occurs when you first start ranked while uncertainty is high and is essentially a failsafe against new players getting stomped and losing a bunch of their rating points.
Valve stated that individual performance can play a role in my MMR. I got a game where I went 20-0 but my team were noobs and I still lost. I still lost points despite doing so well. What gives?
TrueSkill does not take individual performance into account. This is basically what Microsoft had to say about it:
in a team game the only way to assess someone's skill towards the team objective is to consider the team objective only. Any auxiliary measurements such as number of flags carried, number of kills, kill-death spread, etc, all have the problem that they can be exploited thereby compromising the team objective and hence the spirit of the game. If flag carries matter, players will rush to the flag rather than defend their teammates or their own flag. Some may even kill the current flag carrier of their own team to get the flag. If it is number of kills, people will mindlessly enter combat to maximise that metric. If it is K-D spread they may hold back at a time when they could have saved a team mate. Whichever metric you take, there will be people trying to optimise their score under that metric and this will lead to distortions.Despite what valve has said in passing, I believe the above holds true for Dota 2. If they want to make a MM system that is fair to all players on a team game, it's foolish to take individual stats into account. A core position player on average will always have the better stats compared to supports but both are needed to achieve the overall objective. If stats such as GPM or K/D/A mattered, you will start seeing people farm these stats in order to artificially inflate their MMR. This defeats the purpose of the game and ruins it.Obviously, it is difficult to update individual players' skills from team results only. To understand the difficulty and the solution consider the following analogy: Suppose you have four objects (players), each having an unknown weight (skill). Suppose further that you have a balance scale (game) to measure weight (skill) but are always only allowed to put two objects on each side of the balance. If you always combine the same pair of objects, the only information you can get is which pair of objects is heavier. But if you recombine the players into different pairs you can find out about their individual skills. As a consequence, the TrueSkill ranking system will be able to find out about individual players' skills from team outcomes given that players not only play in one and the same team all the time but in varying team combinations.