adurysk's blog

By adurysk, history, 4 years ago, In English

Hi,

I have seen a lot of chess tournaments publishing performance rating. It can be a really good motivator to see at what rating did you perform in the last few contests.

Not sure how to ask for this feature, so posting a blog. Can we please have this feature in CodeForces?

Thanks in advance!

  • Vote: I like it
  • +255
  • Vote: I do not like it

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by adurysk (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it +34 Vote: I do not like it
  • »
    »
    4 years ago, # ^ |
      Vote: I like it +16 Vote: I do not like it

    In that script, the performance is just old_rating + 4 * delta.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +26 Vote: I do not like it

      That's a very close approximation though. IIRC in the "real" performance rating there is another quadratic term that almost always gets rounded off anyway.

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Yes, this feature can be borrowed and adjusted from atCoder.

»
4 years ago, # |
  Vote: I like it +69 Vote: I do not like it

Carrot does this pretty well.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Nice extension!

    I see that it is showing rating performance as Infinity for rank 1, which I am pretty sure shouldn't be the case.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +61 Vote: I do not like it

      Based on the available information about CF’s rating system, this actually turns out not to be especially unreasonable.

      Recall that the performance corresponding to a rank is the rating at which this rank gives exactly zero delta (thus, above this value, achieving the given rank would decrease rating). The Codeforces rating system essentially computes each participant’s expected rank by summing the probabilities that they lose to each other competitor (and adding one), increasing their rating if the participant’s rank is better than their seed and decreasing their rating otherwise. There is, of course, no finite rating at which a participant’s seed is better than or equal to first place, and thus, no rating at which a participant should receive zero delta for winning.

      In practice, there are two reasons it might be possible for someone achieving rank 1 to see no change in their delta. First, CF requires rating changes to be integers, so competitors with extremely high ratings could receive a rating increase less than one upon winning, which would be rounded to zero. Second, CF’s anti-inflation metric could make it impossible to avoid a negative delta, given a sufficiently high initial rating. However, both of these scenarios require an extremely high initial rating vastly beyond what anyone has achieved in practice. Beyond being somewhat hard to calculate accurately, it’s unclear that this performance level would be especially meaningful, given that nobody has or ever will reach this hypothetical rating. As a result, reporting first place’s performance as infinity seems like a fairly reasonable decision to make, as it’s unclear that showing a performance level over, say, five or six thousand would be much better.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        I see. Good points, thanks!

        I was used to chess rating performances which used to be finite even with perfect scores. Just got to know they use a hard value of +-400 for each win/loss + opponent's rating.