6

Currently, the reputation leagues assign arbitrary unique rankings to users with the same score. There are no ties. It would be more logical to assign the same rank to all users with the same score, and skip rank values for the duplicates. For example, if 3 users have the top score, then all three would be assigned a rank of 1, and the next best score would be assigned a rank of 4.

Presumably the rankings are generated by a SQL Server query using ROW_NUMBER(). Simply switching to the RANK() function would solve the problem.

2

On Meta Stack Overflow I wondered how the ranks are calculated when the reputation of several people is the same. Obviously, this is currently undefined.

I believe the ranking should in that case also depend on the weighted number of badges people have, e.g. gold badges could be weighted with 3, silver badges with 2 and bronze badges with 1.

Example:

Two people have the same reputation, though one has 2 gold badges, 10 silver badges and 20 bronze badges and the other one 1 gold badge, 15 silver badges and 15 bronze badges.

First person's badge number: 2 · 3 + 10 · 2 + 20 · 1 = 46
Second person's badge number: 1 · 3 + 15 · 2 + 15 · 1 = 48

The second person would have a higher rank than the first person.

This does not conflict with ties, which can still be done in addition to using badges. If two people have the same reputation and the same badge number, they get the same rank.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .