For some time now, I've been getting complaints that the MDL rating system is too harsh, and ratings drop too much on the back of expired wins. However, ratings do not rise on the back of expired losses. I will briefly explain the previous system, it's flaws and what this current change is all about.
Old System:- Games expire after 5 months.
- At any given date, the CLOT gets all games with finish date >= (today - 5 months). All games prior to this are considered as expired.
- All of these games are used to compute the Elo rating for every player from scratch(using the standard Elo algorithm). Due to this approach, the set of games used to compute Elo is always changing, which leaves players with high ratings very susceptible to rating changes on the back of expired games. Case in point - myself during my long winning streak(I couldn't sustain my rating, let alone improve on it). Another recent example is timon, who was falling quite a bit without new finished games.
The Elo rating system doesn't handle game expiration very well and is generally considered a continuous rating system. We've all seen RTL where players come back after a year or two with very high ratings and hog the top spots on the ladder without justifying it with their recent results. The game expiration component on MDL was one of the ways I chose to deal with this problem. By making games expire, I ensured that any player with a high rating had to justify it with current results. This wasn't an ideal solution, but it was the only one I could think of when I first created MDL.
Over time, I've observed the rating system on MDL and learned more about such systems. Recently, I had a long chat with Math Wolf about MDL's rating system, and we came up with a slightly different rating system. I'm calling it the MWElo rating system as it's mainly Math Wolf's idea.
MWElo System:- Games will never expire in this system.
- The underlying principle of any rating system is that it needs enough data to be able to accurately estimate a player's skill level. So we need to provide incentives to be active on MDL.
- To achieve that, this system uses the concept of an activity bonus. It awards an activity bonus of k/8 = 4 points(k-factor = 32 on MDL) for each finished game. This bonus is awarded to both the winner and the loser at game completion.
- The activity bonus is capped at a max of 80 points. This ensures that if you can guarantee a certain level of activity, you will receive most of the possible activity points. It also prevents someone who is very active from getting too many activity points.
- Every day, the total activity bonus points for every player will decay by 2%. This decay ensures that a player must remain active in order to keep their activity points. 34 days of complete inactivity(0 games finished) will halve your activity bonus [(1-0.02) ^34 ~= 0.5]
- The displayed rating on MDL is the sum of the true Elo rating of a player and their activity bonus(similar to the seasonal ladder). The Elo rating is used to determine player match-ups. This ensures that players of equal skill level are more likely to be matched up. However, the ranks are computed using the displayed rating.
- This system also introduces an additional component which will converge your Elo rating towards 1500 if you have been inactive for too long. The criteria* is that if you haven't finished a game in the last 50 days, your rating will converge towards 1500 by 1 point every day after the 50th day. For ex - If my rating is 1800, and I've been inactive for 80 days, my rating starts decreasing(if rating was <1500, it increases) by 1 every day after the 51st day. So by the 80th day, my rating would be 1800-30 = 1770. Over time, if I go completely inactive,I will converge to 1500.
This system is in preview. We will evaluate its performance over the next week and decide if we want to keep it, adjust it or switch back to the old system. I would like to thank Math Wolf for spending a lot of time and coming up with this system. I've compiled a list of the old/new rating for every player on MDL which can be found here -
https://goo.gl/X1gJEnI will post a change-log in my next post. Keep in mind that this may system may contain some bugs which I will fix as soon as I find them. The change touches a large portion of MDL's code-base. If you notice any issues with other MDL features, please let me know.
*(current criteria is if you haven't finished a game in the last 5 months.. This will be changed to finish a game in last 50 days at a later date).
Edited 7/31/2017 04:28:19