There is a request for a comment on this issue Controversial posts and comments #2515. Do you have any ideas on how best to implement this?
I’d like to see some more people chime in with opinions, but maybe that’ll come with a PR. At the very least, it’s something that can be moved forward with.
My first thought is to rank items by
totalVotes / score
. This would prioritize posts that get lots of votes in both directions.Example:
def getControversialScore(upvotes, downvotes): return (upvotes + downvotes) / abs(upvotes - downvotes) getControversialScore(50, 10) # 1.5 getControversialScore(4, 5) # 9 getControversialScore(6, 30) # 1.44 getControversialScore(30, 28) # 29
It might depend on the definition but I’d probably expect engagement/total to play a bigger factor.
As it is it weights very heavily towards evenness:
A:(11, 10)
=21
B:(99, 90)
=21
They have the same ratio of votes but I’d expect
B
to be more controversial since more votes are tied up in the controversy / it got more attention. Maybe most people just don’t care aboutA
so they didn’t bother to vote.If you square the numerator then the busier comments would score higher.