Is there somewhere that I can find information about how ranks are calculated? I looked around the site, including the FAQ and didn’t see anything. I know that specific information on ranking systems is sometimes kept somewhat secret to prevent abuse, but is there anywhere that I can get the general idea?
- How does a 9x9 game affect ratings as opposed to a 19x19?
- Does final score have any effect on rating, or only the win/loss result?
- Are ratings adjusted based on one’s rank or one’s rating?
- Is the rank simply determined from the rating, or is the relationship more complex?
- What is the meaning of the big green “rank progress” bar on the profile page?
- Why do wins/losses against equal-ranked players have vastly different effects on rating?
Is there are a resource that answers some/all of these questions?
So first of all, we use a standard ELO rating system here on the site. Here are the answers to your questions:
- We use the following multipliers for board sizes: 19x19 (x1.0) 13x13 (x0.5) 9x9 (x0.25)
- Only the result will affect your rating
- adjusted by rating… rank is just symbolic
- It’s just determined by the rating, see (1)
- In the standard elo system that we use, ranks are 100 rating points wide… that bar represents your progress from one rank to another given your rating (though it gets weird if you are below 30k because 30k is the lowest we represent you)
- See (1) for our calculation algorithm. It’s a pretty basic system… the reason we use it is because it is easy for players to calculate what change to expect. Actually… you will lose more points for losing to a lower ranked player than an even ranked players. Also… you will lose fewer points losing to a higher ranked player (but you would gain more for beating them)… up to a certain point if you lose to a much higher ranked player you will not actually lose any points (likewise if you win against a much lower ranked player then you will not gain any points)
Unfortunately we are just two guys… we are a little slack on our documentation, but it’s not because we want to hide anything we just haven’t gotten around to it yet. We have been working on a very large update and more documentation is on the roadmap after the next release.
Thanks for the very thorough response. It definitely resolves my questions.
Looking back, I think that much of my confusion was stemming from the fact that I was expecting all of my games against 30 Kyu players to have the same affect on my rating. Now I can see that 30 Kyu players can have vastly different ratings, more so than at any of the other ranks. That would explain the “inconsistent” behavior I was seeing.
With some information from matburt, and a little experimentation, I reverse engineered the ratings update function. It is here: https://gist.github.com/thouis/746430e9f597c15d70b5 .
Note that it uses integer math, so it might be slightly different than what you might expect from the ELO equation on wikipedia.
At a glance, it seems like the formula given in your gist might exhibit some strange behavior around rating zero, and for negative ratings. Is that something you considered?
I’m not sure why you say that. There is probably some weird behavior in my reverse engineered code for when K_factor < 0, but that only happens at rating=3100, which is equivalent to an 18 dan pro.
You are right. At first glance, it seemed like the formula
board_weight * (122 - (r100 * 6) + (r100 * r100 / 15))
might achieve a local minimum around
r100 = 0, but after a second look, I see that the minimum doesn’t occur until a rating of over 3000.
About playing against a higher rank player, in my case I’m a 25kyu and I played a 12kyu in an even game, in the end I lost by 5.5 points, instead of losing points wouldn’t it be more accurate get points in this case?
ELO does not consider the quality of the win or loss only that it was a win or a loss… having said that, iirc I don’t think you would have lost points for losing to a player that much higher than you… or if you did it was extremely minimal.
- Edit… if you played an even game (with handicap) then it probably impacted you quite a bit.