4

I noticed a brand-new user asked this question on SO:

https://stackoverflow.com/questions/37034218/please-help-me-with-a-code

It immediately received 4 down-votes, but the user's rep stayed at 1 because it doesn't go below 1. Then someone up-voted and the user's rep went to 6. Is that the desired behavior? If the up-vote had come first and then the down-votes, the rep would have totaled 1 in the end.

  • If you know that rep cannot be negative, why are you surprised that rep cannot be negative? – Servy May 4 '16 at 17:36
  • 4
    I'm not surprised that the rep cannot be negative. I'm surprised that the rep is not 1 at the end regardless of the order of down/up votes. – rory.ap May 4 '16 at 17:37
  • 1
    Which would only be the case if rep could be negative. Else you're asking why 1 + 5 = 5 and not 1. – Servy May 4 '16 at 17:38
  • No, if the rep were always a recalculated total of votes where the min was 1, it would be 1 in the end. – rory.ap May 4 '16 at 17:40
  • 2
    That would mean that the rep is actually negative, but the number displayed would be 1 even though the actual rep would be negative. – Servy May 4 '16 at 17:41
  • 3
    No, it would mean the rep was calculated based on the value of all votes: In our case, the rep after the up-vote would be MAX((-2) + (-2) + (-2) + (-2) + 5, 1) = 1. – rory.ap May 4 '16 at 17:43
  • Sorry, I meant MAX not MIN of course. – rory.ap May 4 '16 at 17:44
  • 3
    And the effect of computing the rep that way would would mean that the value would be negative, if a 1 rep user were to be downvoted, and the number you would be displaying simply wouldn't actually reflect what their real reputation is. It would be letting people get negative rep and just not allowing them to see it. – Servy May 4 '16 at 17:47
  • That's essentially what happens now, right? If 4 people down-vote (forget about up-votes for the time being), the "actual" rep, as you put it would be negative, but they're just not allowed to see it. That's not how I'm thinking about this. There would be no "actual" and "displayed" value. There would only be one value, which is computed again after every vote and equals the result of this calculation: MAX([Total Vote Weights Positive and Negative], 1) – rory.ap May 4 '16 at 17:52
  • 2
    No, that's not how it functions now. Now, if someone has 1 rep, you know they have 1 rep. You know that if they get a question upvote they'll be at 6 rep, because they were at 1, and you add 5, and now they're at 6. And since rep can't ever go below 1, it cannot be negative. In your system, if someone's rep is displayed as 1 rep you have no idea how much actual rep they have, and upvoting a question of theirs could put them at 6 if they were actually at 1 rep, or it could leave them at 1 rep if they were actually at -50 and just had a 1 displayed next to their name. – Servy May 4 '16 at 17:56
  • You keep getting hung up on this notion of "actual" rep. I'm not advocating for an "actual" rep. The system does keep track of the number of up-votes and down votes; we know that. Those are always available. My system is saying "forget about their previous rep -- calculate their new rep from the up votes and down votes" (understanding that you can't go below 1). There's not "actual" or "fake" rep involved. – rory.ap May 4 '16 at 17:59
  • 2
    And yet the effect of such a change is exactly the behavior that I've described. It would behave incidentally to simply allowing rep to be negative, except you're inventing a new numeric system to avoid calling the negative numbers negative numbers. I simply stated what you described using the existing numeric systems that the vast majority of the world uses. – Servy May 4 '16 at 18:01
  • "to avoid calling the negative numbers negative numbers" -- it sounds like you think I'm referring to absolute value. I'm not. – rory.ap May 4 '16 at 18:13
  • 1
    I'm aware that you're not referring to the absolute value. You're asking why rep cannot function as if it is (for example) -5 and be displayed as 1. That is not an absolute value. – Servy May 4 '16 at 18:35
9

I see you are struggling with the concept that a down-vote is somehow "forgotten" when you hit bottom rather than incurring some future debt payable when they gain more reputation. This is internally consistent with how the site works; the order of events really does matter… and it works both ways.

When a user hits the 200-reputation cap for the day, we don't award those points on another day when they haven't hit that cap. Those points are truly lost, much like the down-votes are when they fall below the minimum reputation level set by the system. I hope that helps.

  • Thank you for the answer, that makes sense. – rory.ap May 4 '16 at 23:35
8

If the up-vote had come first and then the down-votes, the rep would have totaled 1 in the end.

Yep. Because that was the order of events.

Is that the desired behavior?

For users with hardly any rep, does it really matter all that much?

  • Of course it doesn't really matter. That's not my point. I'm not niggling over a specific user's vote count; I'm just wondering about whether that's what should happen. – rory.ap May 4 '16 at 17:35
  • 1
    That's how the system was designed. Events happening one after the other. The end reputation reflects the voting pattern. – Oded May 4 '16 at 17:37
  • 1
    Why would the order of votes, instead of the total value of the votes without regard to order, ever be important in a system like this? – rory.ap May 4 '16 at 17:48
  • 3
    Because going by order of the votes makes the system simpler, and at scale simple performs better. – Oded May 4 '16 at 17:54
  • 1
    Ahh, see now that's an explanation I can accept. – rory.ap May 4 '16 at 17:54
  • @roryap Even if that weren't the case, the system was explicitly designed for rep to not be negative, which would be the effect of computing the rep as you suggest. If they really wanted the behavior that you're describing they could achieve it by simply not preventing rep from being negative, and still have the same performance that it currently has (technically better, as it would have one less thing to do). If rep were allowed to be negative, then order wouldn't matter (at least for the situations in question here).. – Servy May 4 '16 at 17:58
  • 2
    I keep repeating myself. You understand that if you apply a mathematical "max" function, like this in .net, providing it the computed up and down vote values and "1" as the second argument, it won't ever get the negative rep that you keep insisting my system would be computing. – rory.ap May 4 '16 at 18:03
  • 2
    @roryap Yes, it won't ever display a negative number, it will simply function as if it were a negative number when any numeric operations are performed on it, even though all of those negative numbers are displayed as "1". That is why I'm saying the actual value would be negative, while you'd be displaying "1", because for all intents and purposes it would be indistinguishable from a negative number, except for being displayed as "1". – Servy May 4 '16 at 18:38
  • 1
    @roryap Don't forget, users can edit their questions and answers to improve them... so by making their rep changes apply in order of receipt, it helps them get a leg up if they do edit and improve the question/answer. :) If they asked a crummy question at first and then they fixed it, I say let them have the extra rep. Many users never bother to fix their questions. – Catija May 4 '16 at 19:21
  • @Catija -- I agree with that in theory; however, if the user didn't have a "1" rep to begin with -- say they had a 101 instead, then their net reputation would be negative. In this case, it would be 98 afterwards. Which is the crux of my question... – rory.ap May 4 '16 at 19:36
  • 1
    @roryap If the user has 200 rep on a site, they should know better how to write a good question or how to make certain that their question is a good fit for the site. 101 rep does not mean the same as 1 rep. – Catija May 4 '16 at 19:49
  • Not to detract from anything, but I felt the need to nit on the last sentence. :D "For users with hardly any rep, does it really matter all that much?" - The less rep they have, the larger the penalty of a downvote. (relatively speaking) A $100 parking ticket will hurt a billionaire a lot less than a minimum wage worker. :P – Mysticial May 4 '16 at 22:10
2

Rather than thinking of reputation as being "totaled" from a list of accumulated downvotes and upvotes; you should think of it as being stored as a single value at each moment. It is updated each time a vote is cast, but it doesn't have any memory of previous votes.

I can see why you'd think it does; the "total score" model does a good job at representing how post scores work (people can even view the number of downvotes and upvotes separately for a post). But post scores actually do not have any direct effect on the reputation earned by a user. Whatever correlation exists is due to certain actions which have an effect both on the post's score, and the post's owner's reputation score.

For example, an upvote always adds one to the post score, but it adds five or ten points to the post's owner's reputation score (depending on if it's on a question or answer). A downvote always subtracts one from the post score, but it subtracts two points from the owner's reputation score, as long as this would not put the owner below one rep.

This disconnect certainly can be counterintuitive, but even if it is a problem, the system has been in place for too long for it to be feasible to fix it. Some historical failed proposals: Should we reduce rep bonus for upvotes on posts with a negative score?, Should up and down votes cancel each other?

  • 1
    And yet it doesn't work exactly like that: if I downvote a 1-rep user's post, and then reverse the downvote, they don't gain rep from the reversal. – Ilmari Karonen May 7 '16 at 21:14

You must log in to answer this question.

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