### ojuz's blog

By ojuz, history, 6 months ago, ,

Hi, everyone!

Recently we've seen a lot of people complaining about the merciless Codeforces Rating Formula — if you fail in one round, your rating will decline too much(something like -200) and it will make your long-term effort to make your rating increase meaningless.

So we decided to compute your Codeforces' ratings using Atcoder's Rating System! :D

We will try to update the ratings each time the round is over. We welcome your suggestions on comments :D

Some information:

• [UPDATED] Since Codeforces and Atcoder are different platforms, we applied some tweaks on the rating formula. Is this a reasonable choice?
• Div.1 & Div.1 + Div.2 rounds: Center = 1600, RATEDBOUND = ∞ (we thought Div.1 is more similar to AGC, not ARC)
• Div.2 rounds — Center = 1000, RATEDBOUND = 1500 (RATEDBOUND + 400 = 1900)
• Div.3 rounds — Center = 800, RATEDBOUND = 1200 (same as ABC)
• We didn't implement the p(0 < p < 1)-rated feature, so the semi-rated round is fully rated here.

•
• +301
•

 » 6 months ago, # |   +22 So cool!
 » 6 months ago, # | ← Rev. 2 →   +24 I'm only 1500? I think the f function written in the pdf is too strict... (my first starting rating was 25)
 » 6 months ago, # |   +30 Suddenly I'm just 1650 due to AtCoder metrics :(
 » 6 months ago, # |   +9 I'm now a "newbie" :(
 » 6 months ago, # |   +47 Heh, tourist is still 1st in this universe.
 » 6 months ago, # |   +26 We recalculated the ratings with the new rating bounds. Div.2 bound is increased to match with the Codeforces standards, and Div.3 bound is increased to match with ABC. Possibly your rating has been increased, check once more!Also the ranklist is now separated into two -- just the same as Codeforces.
•  » » 6 months ago, # ^ |   +8 Nice
 » 6 months ago, # |   +13 Performance is acting weird. I'd expect 12th place at CROC final to give me much better performance than 2876 and definitely better than in AIM Tech Round 3, where I had 22nd place and performance 2898.
•  » » 6 months ago, # ^ |   +8 Yes right, your performance for CROC final should be 2914, not 2876. For now we don't know why this happened, the same code gives different results. For now, the only thing we can imagine is that the ratings wasn't calculated chronologically, so that APerf s were calculated differently. But we calculated the ratings in increasing order of startTimeSeconds, so this wouldn't be the problem. We will definitely investigate, thanks for your comment :D
•  » » 6 months ago, # ^ |   +8 It takes too much time and cost to reproduce the same situation, so we will see if the same bug happens when we compute the new ratings according to the following Div.2 round. Maybe this wouldn't give a nice result (since it's Div.2), in that case we have to wait a little bit more.
•  » » 6 months ago, # ^ | ← Rev. 3 →   0 No, your performance was definitely 2876. We mistakenly took into account every contest (until 4 days ago), not before that CROC final. This is how the performance graph looks like: (x-axis is the performance, and y-axis is the corresponding rank — 0.5)You can see the whole rating graph here. Maybe it happened because there were too few participants who has too high ratings in the CROC finals?
 » 6 months ago, # |   +39 Can someone write a userscript that replaces Codeforces rating with this rating?
 » 6 months ago, # | ← Rev. 2 →   +4 Thank you!Note that something like "My real rating is X but now it shows Y, it increased/decreased..." doesn't make any sense because ratings are just relative values. You should compare the rank instead.EDIT: Do you want rating X in your rating to be as strong as rating X in CF, or rating X in AtCoder? In the former case I think the ratings should be multiplied by a constant less than one (and possibly tweak centers), and in the latter case the centers should be raised.
•  » » 6 months ago, # ^ | ← Rev. 2 →   0 We are not sure. The reason we decided to increased the bounds was it seemed the RATEDBOUND for Div.2 deserved more than 1200, and we thought it would be nice to give some kind of a motivation for low-rated users. And then we didn't adjust anything since we thought, as you mentioned, the absolute values of ratings are not important. Anyway, thanks for your suggestion :D
 » 6 months ago, # | ← Rev. 2 →   0 Sorry for being late, we just updated the ratings for the Educational Codeforces Round 44. printed out all the variables during the computation to see what is going on. We will investigate on them and find out what the problem was (from this comment)~UPD: for now, it seems everything is fine.
 » 6 months ago, # |   +14 I believe that Div. 2 Center should be increased. The performance of Div. 2 participants is acting quite weird: andboth have 1900 performance on Round 484, however their place on that contest differs really much (1 vs 122). There is also one problem gap between this two users and they still recieve equal performance (!). I am convinced that this problem needs to be solved as although crafting.oj.uz rating seems really nice for Div. 1 users, it is not as good for Div. 2 ones :(
•  » » 6 months ago, # ^ |   0 We were aware of this situation, but we were not sure whether this is actually a problem, and how to fix it. When I look at the last ABC, 1st to 50th have the same performances. (although there were unrated people inside) There were about 3x participants in that Codeforces' round, so it seemed reasonable that 1st-122nd people have the same performances. Even if it we consider this is a problematic situation, we don't find a good way to fix it. We believe this comes from the RATEDBOUND, not from the Center. But we're not sure it is a good idea to increase the bound more than now.
•  » » » 6 months ago, # ^ | ← Rev. 4 →   0 Well... I don`t actually think that it is correct to match Div. 2 rounds and ABC. I believe that Div. 2 rounds more correspond to ARC rounds, where such situation is rare. Anyway, the problem is much more evident on Educational Round 44, where people who solved 4 problems and people who solved 6 problems have equal performance value:4 problems: https://crafting.oj.uz/user/aeternalis16 problems: https://crafting.oj.uz/user/crhkrAnd i consider THIS to be a problem :(
•  » » » » 6 months ago, # ^ |   +5 There are 3215 active Div.1 users in Codeforces while there are only 119 reds on Atcoder, so we thought it was not a good idea to compare ARC with Div.2 rounds. Anyway this situation seems to be awkward. Maybe we should increase the bound to something like 2400, to match with yellows-oranges on Atcoder?
•  » » » » 5 months ago, # ^ | ← Rev. 3 →   0 We tried to set the bounds to match exactly with Codeforces Center is always 1500 Div1: RATEDBOUND = ∞ Div2: RATEDBOUND = 1900 Div3: RATEDBOUND = 1600 and the result was: tourist's rating being skyrocketed (it was > 4000), and the behavior you've mentioned not being resolved (because everybody's rating has increased). Now, we really don't know how to deal with this :p
 » 5 months ago, # |   0 I'm new in Codeforces. I'm curious about how to make a multiple-user rating graph. Could someone tell me? Thanks!
•  » » 5 months ago, # ^ |   0 Use Codeforces API to get the data, and then draw the graph using any programming language or tool you like. From its style, I guess that the graph shown above was drawn with Matplotlib in Python.