Proposal: votes, scores, and answer order

SO features new answers for like 15 minutes and I guess that works ok. But then that particular site has massive traffic, which smaller communities won’t have. 7 days seems excessively long for a potential crap answer to sit on top though - this will only encourage the “rep chaser” variety of posters.

The most important part by far no matter community size, is that a random user coming in from Google in search for answers, easily finds the best/most correct answer. Preferably because it is on top with most up-votes.

So if featuring old but up-voted answers means that late new answers get less attention, then so be it. The specific community can moderate old posts and make notes about outdated answers through edits etc, or possibly delete old incorrect answers completely. Also, something like late answer review, like SO has, would be possible.

The behavior could differ for logged-in and logged-out users. People coming from Google don’t care about new versus old; they’re going to view the page once and never come back to it. Community members have more interest in curating the site and can benefit from highlighting new answers.

(I didn’t know that SO did this. I know that if a new answer comes in while you’re viewing a page it comes in at the top, but that’s different.)

Communities will have different cadences and velocities, so if we do this the amount of time for the special positioning needs to be configurable. A site that doesn’t want it at all can turn it off.


Another option would be to disable the “featured spot” for answers having many downvotes, similar to how SE hides downvotes questions from the homepage.

Not sure whether that works, but it might allow for fast removal of bad answers from the top spot. If you’d still like to see the new answer, you’d have to sort by activity.

Also I think the new answer indicator should still be kept, even if voted to the bottom.

1 Like

Sounds like what you want is a small sort-order bump for new posts. This bump decays over time with the time constant automatically adjusted based on overall site traffic. For active sites, the new question bump decays more rapidly than on low-traffic sites.

So basically, the post being new would have the same effect on sorting as some extra upvotes. With the (upvotes+n)/(upvotes+downvotes+2*n) sorting, those “extra upvotes” could even be a non-integer, for example something decaying linearly with time until it reaches 0. Although a fixed value being added during a fixed time (during which the post is visibly marked as new) is probably more transparent.

So the new scoring formula would be (upvotes+bonus+n)/(upvotes+downvotes+bonus+2*n).

This general scheme would also allow for other “bonus votes“. For example, if we implement accepting the answer by the OP similar to SE, instead of unconditionally putting it first, we could give it a bonus of a certain number of votes, so that it tends to the top, but sufficiently many votes can override it. This would avoid the situation of a low-votes accepted answer sitting above a very highly voted non-checked answer.


This thread has been inactive for a while. Here is what I understand the current proposal to be. If there is no contrary feedback, I’ll add it to the functional spec in 48 hours.

  • For each answer we display raw upvotes and downvotes. This makes controversy visible.
  • For each answer we compute a score thus: (upvotes + bonus + N) / (upvotes + downvotes + bonus + 2N). Scores are not directly displayed. Default N is 1 but is configurable per-site.
  • We order answers by score, with newer answers winning ties.
  • For questions older than (default) 6 months, new answers are labeled “new” and given a bonus in the scoring formula for the first (default) 7 days. This allows new answers to have more visibility when there are high-scoring answers present already. The amount of the bonus is TBD. All values are configurable per-site, including turning this feature off.
  • (Early, but not required for MVP): a user, after voting, can choose to make that vote public. People viewing the answer can see that there were N public upvotes and M public downvotes, take some action to see who they came from, and decide how to weigh those people’s opinions.

There could be other uses of the scoring bonus in the future.


If/when we do this, User Profile should have a default “votes are public” status. That way when each user votes, an extra click will be needed only if that user wants to make public when normally not public or make not public when normally public.


This seems to summarize what was said.

In reading this over, I’m left wondering what incentives there are for making your vote public. Public votes are likely to be more reliable, and are certainly more useful. We should encourage them. To that end, there has to be some reason to make your vote public.

I’d personally probably make most votes public, but I’ve heard a lot of objection to that out there. It seems we need some incentive for people to do the Right Thing.

1 Like

I see it as mainly useful for experts to signal their approval or disapproval – it’s a step beyond voting to endorsement (or its reverse). On many topics one might know enough to vote but not enough to endorse, so this is an available extra but not required. I can imagine that different sites would evolve different cultures around public voting.

1 Like

OK, but what are you going to give them in return for sticking their necks out, especially in the case of downvotes?

It could be made a privilege. I think calling it a privilege makes it more likely for people to use it (because, after all, you have earned it).

The question is how hard it should be to earn that privilege. The harder to earn, the higher is the psychological weight of those named voices (both as signal “this is an expert vote”, and as bragging right, “see, I’ve earned this right”). On the other hand, the easier it is to earn, the more people are able to use it.

Another incentive could be a higher weight for named votes. Maybe a named vote is worth 1.5 unnamed votes.

1 Like

What you’d give them is “top-cover” perhaps – i.e. from the moderators.
What do you ever get for posting?
Moderators are meant to let you act within the site norms, with any commentary staying civil, informative.
It’s true though that on SE the votes are mostly private, though you can eventually gather insights who votes and how.
Discourse here I see has public “likes” but no “down-votes” at all, so – that’s pretty safe, because “if you can’t say something nice” then you necessarily can’t say anything.
The usual way to disapprove something on SE is to post a comment – comments are the hardest thing to moderate, sometimes, when somebody is abrasive – but you are though supposed to be able to do that (i.e. comment) constructively and inoffensively.

What do you suggest?

I’m of a similar opinion to some others here - I see these public votes as endorsements (they could even be called that in the UI). I don’t particularly see that there has to be any sort of bonus for making your vote public, especially upvotes. The argument is slightly stronger for public downvotes, but given the small risk, the challenge will be identifying a proportionate bonus. Progress towards some sort of privilege, perhaps?


Optionality. It’s in no way required, but it’s a way for someone who wants to publicly support or oppose an answer to do so expediently, without writing the Nth “+1” comment. On some sites this will be common and on some it will be for exceptional cases; it really depends on the people and possibly the subject matter.


I don’t like the idea of votes being public.

People who want to know who downvoted their posts usually aren’t wanting to send that person a plate of cookies, but rather argue with that person about the correctness of the downvote. I have had people take out their anger on me when a completely different group of people closed their question for instance.

Even if Bob for example was voting in ways that the site deemed counterproductive, I am not sure what use know that it was Bob instead of some anonymous voter would help. Meta posts putting one person on trial is never pleasant, and you really can’t focus on the behavior and not the person if you are talking about the behavior/votes of a single person.

Making votes public is going to discourage them, and since the group of people voting and especially downvoters is pretty small, do we really want to be discouraging voters?


Votes shouldn’t be default-public, and I’m not thrilled about the idea of having a user setting that lets people make their own votes always public. I understood the earlier discussions – and this aligns with how I see it working, too – to be about a rarer case where somebody feels strongly enough about a vote to say “yes I want to advertise this”. People might do that with a downvote in cases where they think an answer is actively dangerous, for example.


I don’t know what that means.

Maybe downvotes are “informational only” when anonymous, and actually count for something when public. Anonymous downvotes would add to a tally others can see, but only public downvotes actually ding your rep (or whatever “score” there is).

Or simply understand why. Once the reason is known, the post can be fixed, or perhaps an argument made as to a misconception by the downvoter.

Another reason for public downvotes is that those doing them for malicious reasons are less likely because everyone will see that.

Making only public downvotes “count” would be one way around the latter problem.

“Top cover” is a military metaphor, sorry. It means that moderators, having superior power and oversight, will try to protect you against any retaliation – discouraging other users’ rude replies to you, detecting and reversing “revenge downvotes” and other voting patterns. It is tedious though (to moderate) and only partially effective. Votes are a sensitive subject and SE makes them all private for a (sociological) reason.

Even then you get complaints (“please don’t do ‘drive-by’ downvoting, i.e. don’t downvote without posting a constructive comment to explain why”).

And then some people’s comments are abrasive too (like just “-1 this answer is wrong” on a topic to which there might legitimately be some variety of answers, or where there’s one questionable statement in an otherwise good answer).

Anyway I gather that SE’s design tries to limit or suppress inter-user interaction – i.e. “cross-talk” in both senses of that word.

Should there be a per-site setting: (1) all votes are public; (2) all votes are secret; (3) the caster decides whether to make their vote public or secret?

1 Like