Meta Stack Exchange is where users like you discuss bugs, features, and support issues that affect the software powering all 158 Stack Exchange communities.

What is meta?
Here's how it works:
  1. Any Stack Exchange user can ask a question
  2. The community provides support, votes on ideas, and reports bugs
  3. Your voice helps shape the way Stack Exchange operates

It would be neat to see which answers have the largest divide over up-votes/down-votes. Sorting them by their controversial status, that is.

share|improve this question
Has anyone asked the data dump have common this is? – dmckee Jul 27 '09 at 22:39
Greasemonkey script, Jonathan? – deleted Jul 27 '09 at 23:08
@Isaac, I would take care of it if they served up the number of upvotes to downvotes. But unfortunately we only get to see the resulting value. – Sampson Jul 27 '09 at 23:47
You can view all votes from the dump, would be slightly outdated for somethings but should be effective for most of the large wikis. – Ian Elliott Jul 28 '09 at 0:08
I don't like having to click on each and every answer to see the controversy: Backlink to my recent question: – LamonteCristo Aug 19 '15 at 2:16
up vote 5 down vote accepted

Sorting for this would be easy. Sort order would be the minimum of up votes and down votes (highest to lowest).

I don't think that's such a bad idea actually. But I do think if we had it we would need to be able to see upvotes and downvotes, not just net votes, even if it was just via a tooltip.

share|improve this answer
I agree - we would definitely need to see the two values. – Sampson Jul 28 '09 at 1:10

A simple formula would enable us to calculate the controversy percentage of one question:


Of course, one question would need over 4 votes or something similar in order to be eligible.

share|improve this answer

As controversial posts aren't seen as good, I don't think there's going to be an option to sort by controversy.

share|improve this answer

This would be cool to see for questions and answers. This is a possible badge idea too. "controversial question" and "controversial answer" for like 10 up and 10 down votes.

share|improve this answer
This has been shot down several time and for good reason: it would encourage trolling. – dmckee Jul 27 '09 at 23:28
I guess the more I think about it, you are right. Sometime you really got to make sure to think about your ideas from every single angle good and bad. – Troggy Jul 27 '09 at 23:46
Well, 'ya know: it sounds good at first. And if you managed it with a serious answer it would be an accomplishment. – dmckee Jul 28 '09 at 1:29

I'm not sure how your algorithm would work exactly...

If you imagine the "divide" in terms of a number line:


You could see that the "divide" could be the total number of votes (say 4 downs and 5 ups = 9 votes)

But, in theory something with 0 down votes and 10 upvotes would rank higher because the total would be 10. The same could be said for something voted down 10 times and upvoted 0.

How would you reconcile this in your idea of great "divide?"

share|improve this answer
Digg currently has an algorithm for this. Without much thought, I'm not immediately sure how it would be best acheived. I'll give it some thought :) – Sampson Jul 27 '09 at 23:49
ABS(UpVotes-DownVotes), closer to zero, the more controversial. – Ian Elliott Jul 28 '09 at 0:08
@Ian Elliott: I'm more tempted to use (UpVotes+1)/(DownVotes+1)... [The plus one to remove the possibility of Div Per 0). That way the number of votes doesn't affect the score it gets. Closer to zero, more controversial. – Andrew Moore Jul 28 '09 at 0:29
@Andrew: That won't work, putting a divisor in the mix will skew the values as x/y approaches 1 . 40/30 > 35/35 > 30/40 , but 35/35 is clearly more controversial. Albeit my formula isn't perfect either, but it's the best you can get with a simple equation. I may be interested in formulating something more accurate later. – Ian Elliott Jul 28 '09 at 0:53
@Ian Elliott: I meant closer to one is more controversial. The zero was a typo. Actually, to improve a bit on my previous statement: (MIN(UpVotes,DownVotes)+1)/(MAX(UpVotes,DownVotes)+1). That way, you always have a value between 0 and 1... See it as the controversy percentage. – Andrew Moore Jul 28 '09 at 1:26
Of course, you want a minimum number of votes to be eligible. – Andrew Moore Jul 28 '09 at 1:29

I sort of touched on this on the blog; reddit changed their sorts to partially disable the effect of controversial posts.

share|improve this answer

Here's an equation to do it:

controversy = (downvotes + upvotes) / absolute_value(score) + 1

A post with 17 upvotes and 1 downvote has a controversy score of 1.125.

A post win 29 upvotes and 32 downvotes has a controversy score of 20.333.

Here's an alternative equation if you want to factor in popularity:

controversy = (downvotes + upvotes) / (absolute_value(views * score) + 1) * (upvotes + downvotes)

A post with 0 upvotes, 1952 downvotes, and 5000 views has a controversy score of 0.3902.

A post with 128 upvotes, 127 downvotes, and 320 views has a controversy score of 204.8.

EDIT: The "plus 1" is to avoid dividing by zero, which would result in a controversy score of infinity.

EDIT: How big the controversy numbers are doesn't matter, because you're only sorting it.

share|improve this answer
Assume dividing by zero means "infinite controversy", hmm? Well, let's think about what would send the denominator to zero: if the upvotes and downvotes are balanced, sure, even if there is none of either. You're saying literally every single post which has never been voted on is "infinitely controversial". Posh. What was your purpose in posting this "equation"? – Dan Bron Jun 18 at 1:05

You must log in to answer this question.

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