56

Users keep raising the same questions on Meta after a loss in reputation overnight and have no clue as to why. It would be helpful to have a clear mechanism for recalcs and to leave a tersely annotated audit trail to at least indicate where the rep has gone.

Questions like the following:

Notice a pattern? Unannounced rep recalcs are a scary beast! Since quite a lot of questions and answers get moved back and forth between the trilogy sites, the total rep score has this tendency to be a bit off. This leads to rep recalc requests, which can only be performed by moderators (who already have enough on their hands as is).

Make the rep recalc mechanism less of a surprise. Do it once a month or once every 2 months, on a fixed schedule. To not hit the servers too much, do it over the course of a week, instead of in one go for every user on every site. Having a system-instigated recalc would be less taxing on the servers than self-appointed recalcs.

Having a clear schedule makes it easier for users to get used to rep losses and gains; it stops being a total mystery (this might also prepare them for the rep recalc that will have to be performed when the weight of downvotes will be increased, wink wink, nudge nudge).

A short summary of what has happened to the rep would help clear up the repeat raises on Meta:

  • rep lost by migration to other sites (Don't add too much detail to this, there's no need to see how you've lost each point. Simply say "you've lost 42 points from questions migrated to meta, get over it".)
  • rep gained by migration from other sites
  • rep lost/gained through deletions of any kind
  • rep lost due to voting irregularities (explicitly say that no further details can be provided for this part).

Transparency, in my opinion, is one of the better qualities a community can have. Losing massive amounts of rep with no explanation leads to bad blood (since rep is highly valued by members of the community). Having a mechanism that clearly allows you to see what has happened to it prevents a lot of the problems we have now.

Now, if you don't mind, I'll go back to my corner and anxiously await the [status-declined] tag. In any case, Jeff, at least give it a thought before shooting it down.

Edit: case in point, I lost nearly 200 rep points on meta since posting this question about 2 hours ago (only thing that could explain this would be if a manual rep recalc had been triggered during this time). What should I do about it? Ask another question on meta about it?

7
  • 3
    @John Smithers that question, however, does not address my main problem. You don't know what happened. The fact that the rep was recalculated without anyone knowing (and on a random schedule) doesn't help much.
    – alex
    Jan 14, 2010 at 9:43
  • @softcopied user: Extend the discussion, don't scatter it! You forced Jon Skeet to copy his statement he made on another dupe of your question. Jan 14, 2010 at 10:30
  • 2
    I support this idea. If it was just known part of the process, people would know why and the impact would be minor to most.
    – Troggy
    Feb 3, 2010 at 23:46
  • 2
    I also support this idea: a quick note on the SO blog, "rep recalc today", would be nice. I don't like looking at the rep and going, "say, I had more yesterday. I think. Am I insane?". Feb 3, 2010 at 23:53
  • Yeah, honestly, I just lost another ~300 rep points for no apparent reason on SO. I am done caring at all about rep, this is just dumb. Mar 22, 2010 at 21:13
  • @Jeff I'd say this is status-completed. I voted to close the question, since this has now been solved and is too localized.
    – alex
    Mar 7, 2012 at 8:34

7 Answers 7

19

I agree that a regular rep recalc would be nice in terms of avoiding large changes, although I'm not sure whether it's viable in terms of server strain. (I imagine it's a fairly expensive operation.)

I think it would be nice to show the change in rep, but I don't think the source of the change is available... the system isn't tracking changes, it's just recalculating your total rep. I guess it might be possible to look at the voting history for deleted and migrated questions - if that voting history is even maintained - but I don't think it's really necessary.

Just a message of "there was a rep recalc; you lost X points; click here to see common causes of rep changes" would be good enough, IMO.

9
  • Migrations and deletions are easy to follow, so just showing how many points you've lost for each one could be done. I think the server strain can be managed by doing recalcs for a certain period, not in one go. This is partly inspired by the way Google launch some new features in Gmail and other products ("you'll be seeing it rolled out over the next few weeks")
    – alex
    Jan 14, 2010 at 9:31
  • 1
    @hardcoded user: When you say they're "easy to follow" - I'm not sure that all the required information is currently being stored. Yes, it could be stored - but obviously that makes it more complicated. As for doing recalcs "for a certain period" - I think that would require rather larger changes.
    – Jon Skeet
    Jan 14, 2010 at 10:11
  • Deleted questions/answers are still in the database (10k+ rep users can see them, right?). Migrated questions are also in the database (you can see they've been migrated, otherwise you'd just have questions disappearing into thin air). That's quite a lot of information, yet there might be even more in the databases, things we can't see. By a certain period I mean a week. Just schedule a periodical task to do a recalc every x minutes for a week; I can't see how that would be incredibly difficult (there are already quite a few scheduled tasks running, for recent activity, badges etc.)
    – alex
    Jan 14, 2010 at 10:22
  • @hardcoded user: Yes, the questions are still there... but I don't know if any of the votes are - and that's what is really important. As for the "certain period" I still think you're underestimating the changes required to perform a recalc of how reputation changed over a certain period... or rather, you can do that, but you have nothing to compare it against. I think changing this would take more effort than the benefit.
    – Jon Skeet
    Jan 14, 2010 at 10:27
  • 1
    Just reading Jeff's latest blog post (blog.stackoverflow.com/2010/01/…), I saw this: We have way, way more server power than we need. Super, put it to good use, then :). Since system-wide rep recalcs have been done before (see Marc's response here: meta.stackexchange.com/questions/7954/…), maybe it's not such an unknown quantity, as we might think.
    – alex
    Jan 14, 2010 at 10:35
  • @hardcoded user: Yes, I read that after writing about the server strain too. It's presumably not a terribly unknown quantity to Jeff, but it may well still be something he'd rather not do regularly. I would hope that once a week would be feasible though...
    – Jon Skeet
    Jan 14, 2010 at 11:10
  • if a rep recalc is done ofren (say every week for a given user) and recored on the history, then the user chould se what happen between the two recalcs to see way the rep changed. Jan 14, 2010 at 12:13
  • @Ian: That would mean knowing what had happened between two recalcs, which may be tricky with current structures. It's hard to say without knowing the implementation details though.
    – Jon Skeet
    Jan 14, 2010 at 13:54
  • @Alex: Having "way more server power than we need" is not a call to use it frivolously.
    – devinb
    Jul 26, 2010 at 18:28
11

Isn't it possible to show the user a message "Your rep has been recalculated (see epxlanation +href)" the next time he visits the site?

2
  • It's not only the message. Just make the whole thing more predictable. That's my main desire, to have a bit more openness when it comes to recalcs. Having them scheduled seems better, in my opinion.
    – alex
    Jan 14, 2010 at 12:39
  • A message would be enough
    – Casebash
    Mar 19, 2010 at 10:34
10
+300

I believe a rolling reputation recalc would be sufficient. Rather than doing it all at once for everyone, just iterate through all the users at a rate of x recalcs per day.

Further, there's no real need to recalculate anyone with under 1k reputation. Although I'd fix it at 1,200 so even if they drop 20% of their reputation, they won't lose any privileges they've already gained.

There are about 7,000 users with 1k+ reputation. If you do a rep recalc for one user every 15 minutes, then you'll iterate through the entire userbase every 3 months.

If you want yearly recalcs, then do a user every hour.

You could even measure DB load and only do the recalcs when the site is lightly loaded, as often as every 15 minutes - there is plenty of CPU time and DB bandwidth for this during the lower usage times. This would give people at least 1, but no more than 4 recalcs per year depending on the site loading. A simple, "Your reputation has been recalculated" notification with a link to a faq item about recalcs and why their reputation might have changed. As the site grows the recalcs will become less frequent per user, and you might consider adding additional rules - if the user has been inactive since the last recalc, don't do a recalc. If the last recalc had them change less than 5% of their rep, then skip this one, and do it next time (ie, less frequent recalcs for those that appear to have fewer issues), and so forth. But this might not be needed at all as long as the site can iterate through the selected userbase once a year.

By making it a standard procedure, people may be annoyed, but they'll learn to accept it and move on to more important complaints, like why their question was closed in under 30 seconds.

1
  • 2
    It's not that big of a hit, from what I understand. Marc Gravell, in a previous answer to another question, said a rep recalc for a user took about 1 second (meta.stackexchange.com/questions/7954/…). The idea of rolling recalcs is really nice.
    – alex
    Feb 3, 2010 at 20:47
5

Rather than doing site-wide, or rolling recalcs, do a queue of recalcs.

There is a small set of actions to posts which result in a reputation disparity:

  • Deletion
  • Migration
  • Abuse detection
  • ??? (Please edit other examples where reputation isn't updated but should be)

Assuming that the system isn't going to change to rectify these situations dynamically (ie, a recalc will always be necessary):

When any of these actions occur, take all the users that were or might be affected and add them to a queue. The queue will contain the user number, the reason for the recalc (post deletion, migration, abuse detection), and, if available, the relevant post reference. Periodically the system will go through the queue, perform the recalc, and post not only a notification that the recalc occurred, but the reason and associated post, if available.

3
  • If the system is efficient enough, then every cause for the recalc will be caught and noted, and you can drop the notification, and simply put a note in the recent activity vote tab showing the rep loss. The back end might still be performing a full recalc, but the user never need know the mechanism.
    – Pollyanna
    Feb 4, 2010 at 16:01
  • -1 That's like a hack to fix issues you know about. A real rolling recalc also fixes issues you don't know
    – Andomar
    May 19, 2010 at 13:26
  • @Andomar - If there are reputation calculation problems that they aren't aware of, then they should be root caused and fixed. Performing a hack that envelops all the problems actually increases the likelihood that a problem will never be found and fixed.
    – Pollyanna
    May 20, 2010 at 5:22
3

A good alternative might be to alert users (via the orange pop-down bar) next time they sign on that their reputation has been recalculated.

There should be a link to some page describing why their reputation may have changed.

3
  • 2
    See answer immediately above. :)
    – mmyers
    Feb 3, 2010 at 19:08
  • @mmyer Ha, thanks. I dunno how I missed that...
    – jjnguy
    Feb 3, 2010 at 19:10
  • Anything that explains what happened would help. Making the recalc a recurring action will reduce the impact it has right now.
    – alex
    Feb 3, 2010 at 19:27
-2

Marking as completed due to

How do I audit my reputation?

and

Self-instigated rep recalc

2
  • Why did you delete some of the answers on that question?
    – ChrisF Mod
    Mar 21, 2010 at 22:15
  • 1
    Jeff dunno if I missed a post about it but are these going to occur more frequently (ie. scheduled)? Or is this going to be a one time site-wide thing since calculation methods have changed for now? Mar 21, 2010 at 22:42

You must log in to answer this question.

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