-118

Stack Exchange is currently in the process of migrating some of our backend infrastructure. Mostly, this migration comprises long-running behind-the-scenes work that doesn’t have an impact on the day-to-day functionality of the network. This post serves to earmark one small part of network functionality that is changing within the next week.

In case you’re not already aware, reputation leagues are an informal way of tracking reputation on stackexchange.com, and allows users to retrieve their relative position on the reputation highscores as compared to other users. We’re making a small change to the way we calculate and run the Stack Exchange reputation leagues page on the network site.

In the current state:

  • Any user over 200 reputation receives a rank in the reputation leagues (about 800,000 users).
  • Due to query timeouts, the data are often out of date or inaccurate.

Shortly after we deploy this change:

  • Only the top 400 users will be listed on the reputation leagues per site and time period.
  • Users who are not in the top 400 will no longer be able to view their rank in the leagues, but will be able to see how far they are from placing in the top 400 users.
  • The data will stay up-to-date, accurate, and refresh on a predictable interval.
38
  • 15
    currently, there's a top N% of the site/year link on profiles linking back to the leagues. For 'lower' ranked users, where would it go? Commented May 7 at 15:00
  • 47
    So instead of improving the queries and making them faster, you choose the quick way of just cutting this in 200000% (yes it's accurate based on the 800000 users you said here yourself). OK. Commented May 7 at 17:23
  • 9
    @ShadowWizardLoveZelda There aren't that many ways of making a query like this faster, and most of them would likely be a very large amount of work. I don't see how the reputation leagues would be worth that kind of effort Commented May 7 at 17:49
  • 28
    While I agree that it's probably not a great use of dev time to try to fix things to optimize things enough to maintain the current functionality, could the number potentially be larger (say, 10k) without significant work required to further optimize? My concern is that at a certain scale (glances at Stack Overflow) the amount of reputation required to break into the top 400 becomes somewhat impractical (currently ~205k for the all-time league on Stack Overflow; I don't even have enough to quite get into the all-time top 10k). Of course, the time-based leagues do mitigate this somewhat.
    – Ryan M
    Commented May 7 at 19:38
  • 48
    "a small change". This sounds like a great big change for anyone not in the top few hundred.
    – Richard
    Commented May 8 at 7:36
  • 11
    Could you confirm explicitly that the user lists at xxx.stackexchange.com/users will not be affected at all by this change? At first I assumed that's what you meant by "leagues", and downvoted the post accordingly, but after a more careful reading, it seems you're only talking about the lists that appear at stackexchange.com/leagues, which are checked by far fewer people (I'd almost call them a hidden feature) and therefore would be less of a loss. Commented May 8 at 14:08
  • 13
    That's correct, @Rand, it's just stackexchange.com/leagues. The per-site users page will not be affected.
    – Slate StaffMod
    Commented May 8 at 15:30
  • 8
    @Slate Would it be costly to not change it? Where is the maintenance cost if it isn't changed? Even a once-a-week update would be better than SE appearing to say they can't cope. Just asking. Commented May 17 at 19:48
  • 23
    I'm curious if you couldn't find like 95% of the savings in the costliness of running this by just increasing the cutoff to 1000 reputation instead of 200, while still retaining the usefulness for 99.99% of users currently above 1000 rep but not yet at 200,000 rep, where the new cut-off currently is.
    – TylerH
    Commented May 17 at 21:06
  • 19
    Devil's advocate: Why keep it at all? If it's expensive to run, just get rid of it rather than completely nerfing it. After the nerf, only 0.001694915% of SO's 23.6 million users have any use for it. We don't want to incentivise "more rep is more better" anyway, so why not get rid of it fully instead? Commented May 17 at 22:53
  • 11
    I do kinda keep an eye on the 'top per year' and top all time for some reason. Is it why I'm active? No, would I miss it? yeah. If you're going to gamify, high score charts are nice Commented May 18 at 9:48
  • 14
    How expensive is it going to be to not show ranking percentage for the majority of active users? Less engagement, less visitors, less ad revenue... As stated by others, the ranking percentage has been setting the 'stack'-communities apart from others. Other communities were already gaining ground, even before this change, like Reddit and Github. Commented May 18 at 10:19
  • 8
    Actually the "lower ranked users" are the ones affected by the league table positions. I am guessing the top 200, including the millionaires, hardly ever changes whereas the lower ranks are the ones where the movement will be seen. This is a "trending" measure. I vote to just abolish it.
    – MT1
    Commented May 18 at 12:28
  • 9
    Due to query timeouts, the data are often out of date or inaccurate. Ahem, my rates are reasonable. Commented May 22 at 12:59
  • 19
    I have been ranked top 10% on SO for many years. Now I am listed as "not ranked". Not only is our content sold to AI companies, we are now being discredited. So 'we make millions selling your content so that AI can defraud and replace you, but we won't spend a dime giving you credit and are now stripping you of ranking.' What a dystopian hellscape of a service. We are the ones being gamed (cheated).
    – Birkensox
    Commented May 24 at 17:04

16 Answers 16

74

I put this on my resume (for math.se) and have gotten jobs because of it.

You’re destroying a valuable feature for higher rep but not top-400 users.

If performance is the concern you could reduce the frequency with which the reputation leagues are updated (ex: once a month).

4
  • 6
    note that updates once a month would kind of defeat the weekly league
    – starball
    Commented May 19 at 20:06
  • 10
    Weekly leagues are a very fun feature from a gamification aspect. And I really wish they stayed but I guess all i'm proposing is that technically, we could do away with the weekly league and still preserve a general notion of reputation league that people are incentivized to participate in. Commented May 19 at 20:17
  • 3
    Good point! You could still use your rep (per period?) for that purpose, though (that's what I actually gather rep for as well). Of course, such measure would be less convincing and harder to understand, but still valuable.
    – EvgenKo423
    Commented May 20 at 5:18
  • 2
    And I honestly don't think running a query per site every week would bring down the servers either... Come on
    – kos
    Commented Oct 31 at 13:22
62

I'm curious.

What actually made this feature be expensive to run?

How does this change make it less expensive?

I'm having a hard time imagining. To be able to rank anyone (accurately), don't you need to calculate the same information that you would need to rank everyone, since one's ranking is relative to everyone else?

What makes this expensive compared to the /users page? (presumably- since that tab is staying). Is it the ranking diff from the previous period? I can't understand why that alone would make such a difference. Wouldn't the amount of storage and calculation work be constant per user?

At least for the weekly league, it wasn't even updated live on each request. At least- not according to How often do the User Reputation Leagues weekly stats get updated?. If the daily one was updated live and that was the problem, just make it update at a fixed time each day.

7
  • 6
    Exactly. The "Top X% total" or "weekly" query takes a couple of seconds to run at worst. If it adds up due to too many users refreshing their profile page constantly, make it a daily snapshot as the total ranking doesn't really need to be real time accurate. Especially since the daily rep cap of 200 + accepted + bounties rarely exceeds the 1% precision displayed on most profiles. If it's about the intraday ranking I personally would rather have this removed than the total or weekly as I can't imagine a user tracking it closely.
    – ayorgo
    Commented May 21 at 10:37
  • 1
    I don't quite understand the issue with the long-running query. Each user's reputation is known already. All that needs to be calculated periodically is the percentiles/reputation range of all top-% reputations, say the top 1%, 5%, 10%, 20%, 30%. Then for each profile view, just select the percentile for the user and show it. No need for pre-computing this for every user every day. Just do it at profile view. Can even be calculated client-side, no need to waste a single cpu cycle on that. What am I missing?
    – miraculixx
    Commented Jun 19 at 16:28
  • 5
    @miraculixx e.g. this SEDE query lists the top 0.1%, 0.5%, 1%, 5%, 10% - 50% reputation, where each percentile is the minimum reputation to be included in a percentile bucket. Runs in about 15 seconds. This could be calculated daily, and then for each profile view just select the user's percentile and display it (without needing to re-run the query). data.stackexchange.com/stackoverflow/query/1848635/…
    – miraculixx
    Commented Jun 19 at 17:48
  • 1
    This change makes the site cheaper to run because it makes people not use the site! Problem solved!
    – Slbox
    Commented Jul 31 at 22:35
  • I'm also confused about the "expense" part of running this query. If you have a question about improving query performance, I know a website that might be able to help you! Commented Aug 4 at 15:04
  • Interestingly, not only /users?tab=Reputation&filter=week stays, but it even appears to be updated more frequently than /leagues/.../week page. As of now, after the top-400 limitation has been introduced. My guess is that /users displays some sort of asynchronous approximation that is "eventually consistent" but inconsistent at any given moment, whereas /leagues aims to calculate the reputation and ranking precisely at certain time cut offs.
    – avm23
    Commented Oct 30 at 1:10
  • 6
    Leagues relies entirely on Redis caching to store data. The pressure it was putting on our Redis cache was quantifiably impacting the performance of load times for pages around the network. This is because the Leagues data on the Redis cache was an alarming 8 gigabytes large (across replicas). This implementation simply did not scale. Correcting it requires the Leagues implementation to rely on a different storage medium, but this necessitates a rewrite of the entire Leagues system. Reducing the data we attempt to store is a stopgap measure to reduce the cache memory allocated to Leagues.
    – Slate StaffMod
    Commented Oct 30 at 17:23
55

I'd like to respectfully request StackOverflow to reconsider this change.

The decision to stop tracking reputation rank for most developers seems a bit heavy handed. Many developers value their rank on StackOverflow and it's a small important reward for the work they have put into helping the StackOverflow community.

As others have mentioned tracking the reputation of only the top 400 developers is far too narrow.

Take my case as an example. I've been ranking at about the top .7% both for this year and for all time. And yet, currently, I'm not ranked. That's crazy. I'm in the top 1% of developers on StackOverflow and I no longer get a ranking?! What?!

The ranking page says I need 35 points for the week to be tracked.

enter image description here

While I think that's far too high of a threshold (35 points for the year would be much more inclusive), I've earned 50 points for the week and still no ranking.

enter image description here

Update 1 day after Original Post

It's Wednesday. I now have 40 points for the week (see below) and 50 for last week (see prior screenshot), but I still have no rank on my profile activity page.

So tell me again, how is this new system supposed to work? Maybe the issue is that of the 40 this week, 20 are from StackOverflow and 20 are from StackExchange Meta.

enter image description here

Update 3 days after Original Post

It's Friday. I now have 40 reputation this week just on StackOverflow alone which come from 20 today and 20 yesterday. And I have 50 on StackOverflow alone the prior week.

And still, the profile shows no ranking.

enter image description here

One thing I learned is that the "Prior Week" shown in the menu is based on a sliding prior week rather then a cutoff day. So the prior week today is a different set of days than the prior week yesterday or the day before. I guess this makes perfect sense. But it makes it even harder to explain why there is no rank on the profile.

@slate Here are multiple screen grabs showing what the points menu currently looks like in my account. The new algorithm isn't providing a rank on the profile for people who received greater than 50 points in the last week.

enter image description here

Here is a link to my StackOverflow profile: https://stackoverflow.com/users/1415614/ronc

Recommendation

If previously any developer with 200 reputation received a rank (about 800,000 users) and that was more than the system could handle without timing out the query periodically, how about raising the threshold to 1000 reputation points?

This would still be a large inclusive pool of developers, and for new developers, the hill to climb to get to that level (1000 points) is somewhat reasonable.

Raising the threshold from 200 to 1000 points should greatly reduce the amount of work the query needs to do and hopefully allow it to consistently return results without timing out.

But why does it matter?

A developer's rank, in many cases, literally helps them get jobs.

Don't take that away from them.

Developers shouldn't need 30K+ reputation to get ranked.

Motivation Misunderstood: Why Developer Rank Should Matter to Stack Overflow

Today, October 31, 2024—about five months since my original post—I revisited Stack Overflow and noticed a "Welcome back, RonC" message alongside a new chart displaying my reputation growth and badge progress. It made me laugh; it seems like Stack Overflow is trying to re-engage users by highlighting their progress.

However, what management is missing is that rank is the true motivator for developers. Without a ranking system, developer participation will continue to decline.

Management couldn’t have picked a worse time to remove developer rank. On the consumption side, developers are increasingly turning to LLMs for programming questions, and now on the production side, Stack Overflow has just removed a key motivator for participation.

enter image description here

18
  • 1
    While I respect the request to retain more ranking records, I'm not sure I understand this post specifically. To place on the weekly SO rankings, 50 reputation is sufficient. If you're not seeing yourself on the weekly rankings, that's likely because of a caching issue, and if you wait it should rank you. Monthly begins at ~330 rep, quarter ~900, yearly ~2700. While this is certainly not as forgiving as it used to be, it's certainly within the approximate range of your request - particularly weekly and monthly leagues, on which one places with far less than 1,000 rep gained.
    – Slate StaffMod
    Commented May 21 at 22:21
  • 3
    Additionally, the profile should still display the appropriate information if you place on any league. In other words, if you've gained more than 50 reputation on Stack Overflow in the past week, you should show as "top X this week," regardless of whether you place on the monthly, quarterly, yearly, or all-time leagues. That is, once the cached data refreshes.
    – Slate StaffMod
    Commented May 21 at 22:24
  • 9
    @State While those thresholds may be within the approximate range of my reputation ranking, I rank in the top .7% both annually and for all time, that's way too high a bar to require to get ranked. That kind of requirement will hurt our community. Developers should not have to be in the top 1% to get ranked.
    – RonC
    Commented May 21 at 22:50
  • @Slate you said "the profile should still display the appropriate information if you place on any league. In other words, if you've gained more than 50 reputation on Stack Overflow in the past week, you should show as "top X this week," and I love that idea. Look at my screenshot, I have no reputation shows for the week, month, year or all time. My profile now gives no rank info at all. (shrug)
    – RonC
    Commented May 21 at 22:52
  • 1
    If it still looks that way in a few days I'll poke a dev and see if some logic needs correcting
    – Slate StaffMod
    Commented May 22 at 0:49
  • @RonC Note that you only got 10 rep this week, not 50, which is also shown on your screenshots.
    – EvgenKo423
    Commented May 22 at 7:33
  • 6
    @EvgenKo423 Exactly. Last week doesn't count, or the week before that or the week before that. So at the end of this week when I have 35 for the week I'll get to see my ranking for maybe 2 days until the week starts over again. Is that how it's gonna work? That means that the vast majority of developers on StackOverflow will NEVER see their rank. That's going to hurt the community and community participation. It's a very bad approach.
    – RonC
    Commented May 22 at 14:12
  • 1
    @RonC This is a good point, you should probably write it clearly in your answer (and mark it as [feature-request] maybe?). Currently you mostly recap what's already been said. Yes, these leagues are for the current period, not a rolling ones. And I think they always worked this way, this just become more noticeable now. And you're right about the rep from different sites: the leagues are per-site.
    – EvgenKo423
    Commented May 23 at 5:38
  • 1
    hmm I can't help wonder... did you copy the name from VonC? ;-) Commented May 23 at 6:49
  • 1
    @ShadowWizardLoveZelda That's funny! I never heard of him but based on his points rating he's a powerhouse. Na, I'm and entrepreneur, marketer AND developer so on my dev accounts I typically use part of my name but not my whole name because I prefer to have the business side of me come up first in google. My name is Ron and my last name starts with a C so I just chose RonC. In hindsight, I wish I had chosen the first letter of my first name with my last name as I did with my GitHub account. Oh well.
    – RonC
    Commented May 23 at 11:56
  • 1
    @RonC, you can edit your display name. Go to your account page, then click "Edit profile" button in the top-right corner. Though...
    – Chris
    Commented May 24 at 20:37
  • @Chris You linked to the perfect cartoon. Amazing you could find that snipit. Nicely done! Yah, I knew about the ability to edit a display name but even if it updates all questions and answers I have done with regard to insert by and updated by, I worried it might not update references in plain text to me in comments or adjacent answers. That's the reason I didn't choose to edit the display name.
    – RonC
    Commented May 24 at 20:54
  • 2
    @Slate Not only does the system no longer show my ranking on my profile page, but also, there seems to be no way I can manually calculate my rank these days. The top users page use to list all users so it was possible for me to manually calculate my rank by month, year or all time. But now that page only lists the top 400 users, so how can I even manually calculate my rank?
    – RonC
    Commented May 29 at 13:52
  • 2
    @Slate I’d like to respond to your original comment to my post now that I understand the situation better. I'm in the top .7% on SO for the year and all time, and I will never get ranked under the new system if I need 330 rep for the month. My last 30 days rep on SO was 210. Devs value being ranked because it helps them get jobs. SO used rank as a way to build community. But under this new system, even if a developer is in the top 1% (me!), they don't get rated. That my friend is going to destroy the stack overflow community if stack overflow doesn’t fix this.
    – RonC
    Commented May 30 at 22:31
  • 1
    It's an interesting hypothesis but I find it a bit of a bold claim. As presented it seems to suggest that Stack Overflow is losing contributors because of a lack of a ranking system, but the truth is evidently more subtle than that. Can we really say that adding a ranking system would arrest the decrease in participation? Given that attrition does not appear to accelerate after limiting the ranking system, I find it challenging to believe it would decelerate if we restored the ranking system to its old functionality.
    – Slate StaffMod
    Commented Oct 31 at 16:34
37

That is unfortunate.

At a minimum some effort could have been put into offering a SEDE query to replicate parts of the functionality.

For example this SEDE query takes the most relevant reputation contributors (mainly votes) over the last month, quarter or year and given your userid then ranks all users and shows (roughly estimated) your place in the ranking.

-- timeframe : Timeframe "yy for year, qq for quarter, mm for month"

declare @cutoff integer

select top 1 @cutoff = v.id
from votes v
where creationdate < dateadd(##timeframe?yy##, -1,  DATETRUNC(week, getdate()))
order by creationdate desc

select id, displayname
into #users
from users
where reputation > 200

create index #ix_users on #users(id)

;with user_scores as (
select u.id
     , sum(
       case  v.votetypeid 
         when 1 then 15
         when 2 then 10
         when 3 then -2
         when 9 then v.bountyamount
         else 0
       end
     ) [total_rep]
from #users u
inner join posts p on p.owneruserid = u.id and p.communityowneddate is NULL
inner join votes v on v.postid = p.id and votetypeid in (1,2,3,9)
where v.id > @cutoff
group by u.id
),
users_ranked as (
select rank() over(order by [total_rep] desc) [rank]
     , *
from user_scores
)


select 'You' 
     , [rank]
     , concat('site://users/', r.id, '|', u.displayname) [Link]
     , [total_rep]
from users_ranked r
inner join #users u on u.id = r.id
where r.id = ##userid##
union all
select 'Community'
     , [rank]
     , concat('site://users/', r.id, '|', u.displayname) [Link]
     , [total_rep]
from users_ranked r
inner join #users u on u.id = r.id
order by 1 desc, [total_rep] desc

This query runs within the limit of 2 minutes on SO by excluding all users with less than 200 reputation.

I suggest we iterate on this version to see how much juice we can squeeze out of it without running out of resources. For example given bounties and accepted suggested edits aren't accounted for yet. Feel free to fork the query and have a go on your own.

Keep in mind SEDE is updated once a week on Sunday.
Use the educational SEDE Tutorial written by the awesome Monica Cellio.
Say "Hi" in SEDE chat.

4
  • 2
    Perhaps you need also something like p.communityowneddate is NULL in that query - e.g. like here? If we want to estimate reputation, we probably do not want to include CW posts.
    – Martin
    Commented May 18 at 17:11
  • 3
    @Martin yeah, that is a good call without a negative effect on the performance! Added.
    – rene Mod
    Commented May 18 at 17:50
  • 1
    "Feel free to fork the query and have a go on your own": and please run your experiments in a private window so the WIP revisions won't be saved and bloat the search results!!
    – EvgenKo423
    Commented May 19 at 5:22
  • Forked this to show also percentage and the time period starting from the beginning of the year, as it was on Stackoverflow. Commented May 19 at 15:32
32

I'm very unhappy with this feature being cut. I always used this X% number from my user profile to quickly estimate the total rep I'm going to get this year.

  • Due to query timeouts, the data are often out of date or inaccurate.

From what I saw, it used to update once a day on SO (along with some other stats, which I find appropriate considering the daily rep cap). Sure, such period is likely too big to accurately rank those in the very top of the list, but then this info will likely become outdated in a few seconds as well, so it's not really worth much accuracy anyway.
I don't remember it timing out and not being displayed at all (but I get that it's not calculated in real time, so this probably doesn't happen).

From my understanding, the biggest problem is to calculate the rep gain per period, but you still calculate them for all users! You only have to sort them and divide by user count in advance!
The All Time query linked below executes in 3 seconds (including the query itself), so that second part shouldn't be a problem.

From comments:

If you have a need to access analogous data, you may do so at your leisure using the Stack Exchange Data Explorer.

Are there any existing queries? I wasn't able to find anything except the All Time variant. Could you provide the one you used, so the community could use or try to improve it?
(this would be a great idea for an extension/​script if someone is willing to create it)

It was also not working as designed regardless, [...]

P.S.: You know what's really not working? The "people reached" thing when you write late answers.

3
  • You might want to check my answer for a SEDE query.
    – rene Mod
    Commented May 18 at 13:50
  • 2
    I don't remember it timing out - this is probably referring to aggregation queries that run behind the scenes, not anything us end users would see.
    – user1502910
    Commented May 18 at 14:28
  • concerning people reached, you should read meta.stackexchange.com/q/244534/997587
    – starball
    Commented May 18 at 17:45
28

"I'm a little upset" by this.

If there are some query timeouts, lot's of data (800k is a lot?), etc., can't you either:

  • include users with 500 (or 1000) reputation points in the statistics, instead of 200? This will greatly reduce the amount of data.

  • leave "Top % this year/month/overall" (maybe exclude week and day) on the profile page, and leave query feature for just top 400?

25

OK, here's another regression if we're talking about bugs here. When you're not ranked you get an award for nothing:
enter image description here

0
20

I finally made it to the top 1% of users with 200+ reputation on Cross Validated, and then that number disappeared. My last remaining motivation to post on Cross Validated disappeared along with it. The breakdown of how many users there are with which reputations also disappeared, so what use is it to know that I am #122? What does that mean? The baseline for comparison has disappeared. For example #122 of 400 does not mean much. Answer this: So what?

Software acceleration would most likely solve the problem. Why was this not done? The real issue for those who are ranked is how many total users there are and how many of those are expert enough users to be considered contributors. More than 200 for a reputation doesn't quite do that. I seriously suggest that you find something to provide feedback to users lest they abandon the site for greener pastures.

The prior Leagues method of ranking those with +200 reputations was flawed. The current Leagues of listing only the top 400 in the "Leagues" is even more flawed. For example, on a site with 400 users, they would all be listed, and on a site with 40,000,000 users almost no one would be listed. Thus, the current listing is useless. This problem could have been discussed with the users of Cross Validated and would have been by a more open minded administration. The attitude of "us" versus "them" is mechanistically predatory and is harming the quality of StackExchange (SE) decisions.

Consider, for example, that one can quickly calculate total reputation on a site, and the total number of users on the site. From that, one can calculate what the average reputation is on a site. So suppose that average is a reputation of 101. Now suppose, that an individual has a reputation of 10100. Then that individual has as much reputation as the mean reputation of 100 people. From that factor of 100 times, one looks up the level of expertise in a established lookup table. One then finds that 100 times the average reputation of our fictitious individual corresponds to that of, let use assume, a moderately advanced expert. All the implementation of that would require is to take a site, lookup who the professors, post-docs, undergraduates etc. are and from that build up a typical lookup table. The advantage of doing that is that unlike what is being done now, a basis for comparison that has some cross site validity has been established. The overhead for doing that is minuscule. The overhead for a ranking system, as is currently used is tedious, and the rankings are not very useful because the number of users who make a significant contribution is not similar between sites. The administration has not put a lot of thought into what reputation means. Think first, act later, and don't try to centralize thinking into a handful of employees to satisfy a few million users. That type of top down or communistic "central committee" approach is so top heavy as to be untenable for large scale management. It is, for example, why the Soviet system failed. One can run very large organizations, but one only does so if respect for natural law is maintained, that is, by delegating authority to those lowest levels at which the decisions are most naturally implemented. I seriously doubt that SE will consider proper management skills as that appears to be culturally unachievable given current SE corporate structure. Rather than repeating the same mistakes that led to the failure of the Tower of Babel, SE would be better advised to get religion. Seriously, SE would be better advised to make better use of the resources at their disposal.

13
  • 3
    Well, if the only motivation to post is to have the highest reputation, this is the wrong motivation. Reputation should be a bonus, something nice to have. Not the goal. Commented May 26 at 6:52
  • 2
    @ShadowWizardLoveZelda You are shadowboxing. I didn't say that.
    – Carl
    Commented May 26 at 19:28
  • 3
    @ShadowWizardLoveZelda To be clear, my motivations have been step-wise erased by bad decisions, among them, censorship and the erasing of "disinformation," leftist political activism in place of discussion, e.g., ESG, DEI climate posturing, and fascistic control of health care. The list is long and fairly repugnant. In total, it is enough to dissuade me from low quality discussions. It really doesn't matter if you downvote my attempt to inform you of the problems this site has. I consider it to be borderline beyond saving. This may be my last post.
    – Carl
    Commented May 26 at 20:45
  • 1
    But you did say it here, clearly: "My motivation to post on Cross Validated disappeared along with it" - it's hard to interpret it in any other way. Commented May 27 at 8:06
  • 1
    @ShadowWizardLoveZelda You persisted in misinterpreting my meaning when it was explained to you. Fine, I changed it to "my last remaining motivation to post..." I seriously suggest that you consider what is meant rather than attacking elements of style and reading in your own thoughts as if those motivated others just to find something that you, in isolation, find objectionable in other's thoughts.
    – Carl
    Commented May 27 at 18:00
  • 3
    I suspect this change is going to hurt our StackOverflow community far more than management understands. Later when participation likely declines because of this decision management will be scratching their heads wondering why. And they will likely attribute the decline to ChatGTP use, when in fact it was due their decision to remove key aspects of participation feedback, ie rankings. Sadly, this all started when they removed the developer story page and rankings by tag some time ago.
    – RonC
    Commented Jun 18 at 12:46
  • @RonC ChatGTP has the same problems. Don't use it. Use the Brave AI instead. The Brave AI takes answers directly from the search results. Google and others don't do that so the results are not current and it takes weeks to incorporate new disinformation, and disinformation is so thick on ChatGTP with so much bias that the text is either censored, e.g., politics, or it is otherwise absent, missing or so distorted that it is useless. Not so with Brave.
    – Carl
    Commented Oct 18 at 16:01
  • What is "software acceleration"? I even Googled it, to no avail. Commented Nov 3 at 7:53
  • @ShadowWizard It means to use more advanced numerical methods to speed up execution time for a function. Typically when one first computes the value for a function, e.g., List, it has a long execution time. However, with rewrite, functions can typically be made to have 10,000 times faster execution time on the same hardware platform, with sufficient attention to the details of exactly what is being done with software encoding.
    – Carl
    Commented Nov 3 at 9:30
  • @Carl ah, that is cache, and already heavily used by Stack Exchange. (with Redis.) Commented Nov 3 at 9:35
  • @ShadowWizard No, it isn't. You are talking about using hardware to accelerate an algorithm. I am talking about reducing the number of and simplicity of the encoding commands within a software execution of a routine. For example, if a routine needs to use cache 10000 times to get one answer, it will be slower than a routine that only uses cache once to produce the same answer, assuming both routines only use cache. For example, the first algorithm written to compute sin(x) was very slow, and more modern, optimized code for sin(x) is much faster, and is optimized at the bit level in binary.
    – Carl
    Commented Nov 3 at 9:48
  • Still no idea what you mean, but anyway, by all means, if you find a way to improve efficiency of SE developers, you can help them and it's always welcome. :) Commented Nov 3 at 12:39
  • @ShadowWizard The most general search term would be Numerical Methods. More specific to the need here would be list sorting routines.
    – Carl
    Commented Nov 3 at 21:33
14

If not a full reimplementation, please add back "top n%" stats for months, years, and all-time.

The statistics powered by the reputation leagues was an inexpensive incentive for both regular contributors (whose posts provide a positive asker experience) and new signups/contributors (who the company is actively trying to court). I think that the removal of these statistics is a significant negative for the community—devaluing prolific users' contributions and eliminating near-instant gratification for new users—but a bucket-oriented reimagining of the feature could make it both better and cheaper-to-run than it used to be.

I include in this the tag top users page linked under the descriptions on tag pages; the top user statistics are currently broken on SE. Perhaps that's just a bug, but I imagine it could easily be an unmigrated expensive query.


It might not be very intrinsically valuable to have a quickly-updating "league" where day-by-day a person can see whether they are #2975 versus #2973 (for all but the most competitive of contributors), but the leagues and stats did have a significantly valuable role: it provided some nice statistics that could translate their reputation into forms that non-enthusiasts could understand. As the reputation page still describes it:

Reputation is a rough measurement of how much the community trusts you; it is earned by convincing your peers that you know what you’re talking about.

Stack Exchange's status as a well-known public utility gives it some prestige, and its sense of reputation is a passive motivating reward for contributors with real-world résumé benefits. However, reputation has always been an arbitrary number calculated from votes received, (down)votes cast, bounties, and accepted answers such that one might have some difficulty conveying the meaning of a value like "49670 reputation" or "18 gold badges" to hiring managers, book publishers, colleagues, or others who might not know or care about the details of the reputation calculation.

Compared to absolute rep values or even full orderings, "top 10% in 2023" or "top 3% in May 2024" is much easier to understand. For the tag top users, one could likewise imagine being a "top 5% all-time contributor to Android questions and answers" to be of similar value: Even gold badges don't inherently describe their value or scarcity, and are difficult to earn on low-traffic tags where the value of niche expertise could be the highest. Statistics like "top n%" are self-describing and inclusive, gaining relative scale even if they lack precision compared to "#n", and they can also provide some immediate gratification for new contributors: you can still be a top 10% contributor for a given month or tag even if you happen to be #401 in rank.

To be mindful of cost, one could calculate only one significant figure (top 0.1% to 0.9%, 1% to 9%, 10% to 50%): for the purpose of communication, 27% ≈ 28% but 7% ≉ 8%, and that limits the number of percentiles to calculate to a pretty manageable list. Likewise, because this is intended to reflect contributions over time, this query could be run weekly or monthly while still providing its intended value. Finally, this is quite quick and cheap to calculate: each of those distribution tables is about 23 small integers—enough to fit on a cocktail napkin—and tools like PERCENTILE_CONT make it very cheap to calculate or approximate natively even on sharded or sampled data sources.

Please consider a reimplementation here: this might all be for imaginary internet points, but you had a pretty fast and compelling way to make reputation points meaningful outside of Stack Exchange, and I think it would be valuable for contributors and company both to see them come back.

11

I enjoyed every 1% increase that happened and ignored the meaningless raw rep score.

Just like figuring out what percentile a person's height is doesn't require measuring the entire population, get a random sampling, and figure out what roughly is each 1% increment's average is, then you have 100 values, and for the user page, just figure out what the closest value is for that user.

It doesn't have to be super accurate, and it doesn't have to update more frequently then once a week. Any variability up or down due to statistical error would really just make people more competitive and try harder to boost their score.

8

There seems to be a bug after this change. I have never reached 28k rep on Mathematics so I'm not sure where this surplus comes from.

enter image description here

5
  • Maybe the query they made "forgot" to exclude rep from downvotes you cast on answers. With 1,880 downvotes and the difference is 1561, it sounds reasonable. And I doubt they'll fix the query, as it will make it heavy again, and their whole point was quick and simple queries that will not take their precious resources. :/ (I'm surprised they even take into account daily rep limit) Commented May 18 at 16:42
  • @ShadowWizardLoveZelda That's an interesting suggestion but I can share that the vast majority of my downvotes are towards questions, not answers. I also considered whether the system treated the votes on my mathematics meta posts as reputation, but that can't be right either as the sum of the votes on my meta answers alone exceed 156. Commented May 18 at 16:55
  • 2
    @ShadowWizard: "their whole point was quick and simple queries that will not take their precious resources" – this whole situation doesn't quite add up with their acquisition statement: "Once this acquisition is complete, we will have more resources and support to grow our public platform [...]"
    – EvgenKo423
    Commented May 19 at 6:03
  • 3
    @EvgenKo423 old news, lots of ---water--- AI flowed in the river since then, drowning all the resources. They have nothing left for the non-essential things i.e. the things they can sell to AI companies. :) Commented May 19 at 9:25
  • 3
    This is a bug that has been a part of Leagues since the original code was written (!) and this is, surprisingly, the first time anyone's noticed. It does look like it might have been intentional, so we're going to ask around before acting - but on the balance, expect this to be fixed.
    – Slate StaffMod
    Commented May 20 at 15:37
8

Way too many users get ranked, just because they reached 200 rep and got an association bonus.

They are all slightly above 300 rep and have +110 weekly change. +10 from a upvote that pushed them past 200 rep and +100 from the association bonus.

Almost all ranks in the last quarter (#300-#400) are occupied by them.

#300+ league

According to this meta post, association bonus should have not have been counted.

6
  • "in the last quarter" <- I think you mean in the last week, right? That's where I'm seeing what you described (IIUC).
    – tdy
    Commented May 30 at 16:14
  • @tdy I mean the last quarter of the ranked list, not year.
    – gre_gor
    Commented May 30 at 16:16
  • 1
    Worthy of a separate feature request on its own, asking to exclude the association bonus when calculating the rep change in leagues. Commented May 31 at 7:52
  • @ShadowWizard This seems to be an old bug.
    – gre_gor
    Commented Jun 2 at 11:59
  • And currently I only see a few with the association bonus on the list.
    – gre_gor
    Commented Jun 2 at 12:09
  • So it's odd indeed, but still better be posted as a new bug report, IMO. Commented Jun 2 at 12:36
8

When I'm clicking on the '#3 overall' on my profile page:

enter image description here

I end up on this page which says I'm 'not currently ranked':

enter image description here

Clicking on the 'All Time' tab resets things back to normal, and I'm ranked again:

enter image description here

1
  • Yup, same when I click on this (in your profile), I see myself as "not currently ranked" even though I'm #8. Reload does not help, only resetting the view by click the "All Time" tab for example. Commented Jun 8 at 17:28
7

Choosing to see 50 users per page triggers CloudFlare's "too many requests" and cause all profile pictures hosted in SE to be blank.

This doesn't look nice:

partial screenshot showing many blank avatars

I suggest removing the option to see 50 users per page, perhaps the 30 as well, leaving it only 15 per page.

With only 400 total users available to page through, it's no big deal.

Note: actually, it's even worse: this cause the block to be network-wide, e.g. now I can't even see the images I upload here. Another option is to add a warning on the reputatuion league page that it might block access to images when viewed.

5
  • 8
    Or.. you know... fix the rate limiter.
    – Kevin B
    Commented May 20 at 14:42
  • @KevinB LOL. That won't happen. So they might "adjust" the requests threshold before blocking from X to Y, then from Y to Z, then CloudFlare will get mad at them and force it back to X because they consider it more secure, etc. etc. As long as SE choose to use hosts like CloudFlare, they can't really fix those things. Just try to tweak things until they almost work. Commented May 20 at 17:04
  • 4
    They can absolutely filter it to have different blocks on different types of endpoints, it’s expected for one page view to load hundreds of images, the rate limit should accommodate that as opposed to making using the site as a end user worse just to satisfy a self-imposed rate limit.
    – Kevin B
    Commented May 20 at 17:27
  • 2
    This bug is not related to the Leagues change. I would normally encourage reporting it separately, but in this case, I've already notified the team ;)
    – Slate StaffMod
    Commented May 20 at 18:32
  • 10
    The rate limiters have been adjusted for i.sstatic.net. I was able paginate through all 8 pages with 50 users per page without hitting the rate limiter. The original limiters set for i.sstatic in this case was too low for what the domain does.
    – Josh Zhang StaffMod
    Commented May 20 at 18:37
5

Not sure if it's a bug, but at least it looks inconsistent. If you've got no rep per period, the information about your ranking is not displayed at all (not even the "rep needed"):

enter image description here

Edit:
And the "month reputation" actually doesn't match with the audit page. This is because the latter doesn't account the rep lost due to "User was removed".

Not sure which one is correct here since technically I didn't lost this reputation this month, but rather didn't get it in the first place...

2
  • The stats is from the reputation audit page (/reputation).
    – EvgenKo423
    Commented May 22 at 8:24
  • I'm pretty sure they are doing an inner join votes on userid = posts.owneruserid and creationdate between dateadd(w,-1,getdate()) and getdate() or whatever their internal table is called and with zero rows in the projection for your userid there is nothing to be shown.
    – rene Mod
    Commented May 22 at 9:50
3

This is a really bad idea and undermines the whole reasoning behind a reputation system.

For instance, what an outsider gets from hearing about a 10k reputation on Stack Overflow? Bare with me: without context, 10k could be common or rare, it could be easy or hard, and therefore it conveys no information -- it's just a big number. And a placement in a ranking is the way to give it meaning and context.

To know/show how well one fares among a group is the core purpose of a reputation system. By removing ranking, we lose the context that gave points its meaning. Our contributions to the community become just points. It defeats the reputation part.

1
  • 1
    on one hand, yes. on the other hand.... ehhhhhh. the fact that reputation shown on the main leaderboard and on user cards is a single measure across posts regardless of tags makes it an apples to oranges thing. and different tags have different foot traffic, and some tag communities vote more, and older simple questions rake in a lot of rep... rep is more so a measure of usefulness of content over time. not as much how smart or qualified you are.
    – starball
    Commented Jul 31 at 19:37

You must log in to answer this question.

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