What is meta? ×
Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 133 Stack Exchange communities.

Currently, the interaction of over-the-cap votes and downvotes depends on the timing of the events: downvotes that come in before an over-the-cap vote get cancelled out, while the ones that come in after an over-the-cap votes stay in place. This may lead to minor inconsistencies.

Consider an example: user A gets to a daily cap of 200 through upvotes, and then the following sequence of events takes place:

  1. At 10:30 user X downvotes A's answer for -2
  2. At 10:31 user Y upvotes A's answer for +2 (+8 gets capped out)
  3. At 10:32 user X reverses the downvote for 0 (+2 gets capped out)
  4. At 10:33 user X downvotes the same answer again for -2

Theoretically, the undo-redo in steps 3 and 4 should not change anything. It wouldn't if it were not for the cap: if A's daily reputation had been 100 instead of 200, the net result of steps 3 and 4 would be zero. This is inconsistent.

Is this a bug or an intended behavior? If it is an intended behavior, is there a rationale for it?

share|improve this question
2  
Just a sanity check, do you run a rep recalc to ensure that this behavior wasn't temporary? Many rep oddities surrounding the rep cap get resolved on their own. –  Servy Aug 13 '12 at 19:01
1  
@Servy This example is theoretical - the interaction I saw included an edit of the answer, so event #3 has happened about two hours after the event #1; it was allowed because of the edit. I did not force a recalc, but I waited for about fifteen minutes for the number to fix itself - this is usually enough for the periodic recalculation to kick in and fix the number; it did not fix it. I ended up deleting the answer, because there was a much more detailed one that I upvoted. –  dasblinkenlight Aug 13 '12 at 19:09
    
For a long time, I've considered pulling an Office Space and installing a script that piped overflow reputation to my account. I will have gained 10 rep from this hypothetical person. –  gobernador Aug 13 '12 at 20:14

1 Answer 1

up vote 1 down vote accepted

I don't see what the problem is. The final downvote that's being counted occurred after all the previous gain events, therefore the -2 should still stand.

By undownvoting, the user is basically cancelling the previous downvote. In reality if you recalculated, it should update as if #1 and #3 never existed (if they occur on the same day, they're completely removed from your reputation history as well), and #2 gained you 0 reputation due to the cap. Then #4 was a new downvote that occurred after the previous event was already capped, triggering the -2.

It's not events #3 and #4 that are cancelling out to be 0 (in your 100 scenario), it's #1 and #3 that are cancelling out to be 0, and #4 is enforcing the current -2.

It may be a "sneaky" way to enforce your -2 on someone, but it's not a bug.

share|improve this answer
    
I guess the "1 and 3 cancelling out" explanation makes sense, although I suspect that it's a case of "working as coded" as opposed to "working as specified" kind of behavior :) –  dasblinkenlight Aug 13 '12 at 19:50
    
I have a follow-up question that came out of this discussion with casperOne: do you think that SO may be open to changing the way the over-the-cap votes interact with downvotes by allowing over-the-cap votes to offset same-day downvotes in cases when both the upvote and the downvote are for the same question or answer, regardless of the timing? –  dasblinkenlight Aug 17 '12 at 14:44
    
That seems like an overly complicated way to allow a user to keep a mere 2 reputation. –  animuson Aug 17 '12 at 18:24
    
That depends on the number of downvotes: the answer "cost" me -18 points (some of which were offset in between by +2 upvotes to this and to other answers), ultimately prompting me to convert the answer to CW. –  dasblinkenlight Aug 17 '12 at 18:30

You must log in to answer this question.

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