So,
It's pretty clear there won't be a perfect system. But the current one is definitely not working. It hasn't worked for years, but when solo carry was more impactful and the games where less snowballing skill alone could save games which made teams less relevant than today. Now, people can see the flaws of the MMR system, especially in lower than diamond leagues, where the "population" is huge compared to the end of the "league"
Now you question is how does the system generate the values, the system already gets those values
https://am-a.akamaihd.net/image?f=https://news-a.akamaihd.net/public/images/articles/2018/august/stats/Stats_Combat_EN.jpg
Are those parameters absolute and clear? No, definitely. But they are the best you can get without AI. A further study from big data Riot gathers can reveal other parameters in the future.
So why rely on them then? Because they are the league average, let's call them Skill Performance Indicators (SPI).
What is the +2 and -2 div ... it's the player pool. Why this pool:
- SPI don't work on the whole pool as a player in Bronze might have it easier to hit better SPI
- Because if the MMR doesn't exists anymore then you need a player grading system, and that remains solely the league structure.
- A 1 division pool is small and can lead to big que times. Same with +1 and -1 division. +2 and -2 is indeed a little stretch but I think Riot can play with these numbers.
Why keep the SPI in the first place? Because while the division is an average skill indicator the game is structured in 5 different roles with at least 2-3 playstyles for each role. So you need a deeper grading for better matchmaking.
Also,** very important**, the SPI must be based on pool average otherwise you can have skewed results favoring underperforming and disfavoring overperforming, something you don't really want. You want good players to climb, and bad players to demote. You also need a way to track him swapping to abuse the system, I called this abuse rating. You simply track how often he swapped with his lower positions and how big is the difference.
SPI should be calculated based on Challenger best median values over 20-50 games
How will the system works abstractly:
Let's take John, he is S1.
First the pool is created: S3 S2 S1 G4 G3
From this pool, the games compute the average pool SPI for John's selected positions.
The SPI scale is 0-1.
Let's say John has a jungle SPI of 0.2 and an ADC SPI of 0.3. The pool average SPI is 0.4 and 0.5 for these positions. John occasionally has and abuse rating of 5% of his matches, so his abuse score is 0.05. His highest rating is the top with 0.4 SPI.
Because John has an abuse score of 0.05 this means 0.05 * 2 (<- a constant that Riot should use to adjust the abuse prowess) = 0.1 (the score is capped at 1) of the difference between the highest is added to other SPI. So his new SPI are Jungle: 0.2+0.1*(0.4-0.2) = 0.22 and ADC: 0.3+0.1*(0.4-0.3) = 0.31
Now let's return to the system. A quick recap: Jungle SPI: 0.22 , ADC SPI: 0.31 and Average Jungle SPI: 0.4 and Average ADC SPI: 0.5
The game now creates a team. He looks for other people with John SPI for Jungle since is his primary role. But because of John's SPI being bellow the average for league, the game will look to matchmake him with someone who has a better SPI than John by a factor of a difference. The constant should be adjusted by Riot after field test. How will that work:
John Jng SPI: 0.22 - person to matchmake John should be at least 0.22+ 0.4 _ (<- average jng SPI) _ - 0.22 * Skill Gap Constant (let's take it 0.25) =0.22+ 0.18*0.25 = 0.22+ 0.045, so the game will search around 0.265 with a small variation (let's say +-0.005 or +-0.01, i dunno, these should be tested in field)
The game has a hard time to find a jng in those values, tries on ADC. Computes the ADC SPI and finds one.
Voila, you'll have the whole team nearly balanced.
For further balance, they can factor the fact someone is below or above the median SPI and try to balance the number so that each team has the same bellow and above players
Hope this clears the air. Imho this will be a way better system. Not saying there aren't other better ideas out there, but Riot should make their mind and implement one already