I think many of us have at some point been dispirited, when an answer on an advanced topic that took a lot of effort to write received very few upvotes; and answers on basic subjects that took much less effort are upvoted far more.
So I've been wondering if it is possible to implement an additional reputation score that rewards high-quality answers more than basic answers. I have such a proposal, and I'm interested in what everyone thinks about it.
The idea is as follows: the standard reputation system treats every vote the same: each vote counts as 10 points. That's all very nice and democratic, but it doesn't reflect the quality of an answer; the score depends heavily on the popularity of the question. But perhaps we can also give answers a weighted vote, such that the score you get not only depends on how many votes you received, but also on who has given the upvotes. In particular, a vote from a high-rep user will give you a higher score than a vote from a low-rep user. Now, I'm not in favour of having this 'quality score' displayed on every individual answer, because that might influence other voters. Instead, I'd prefer for each user to have an 'overall quality score', calculated from all their received votes combined, updated once a day, and displayed next to their total reputation.
The rationale behind this is that the high-rep users are knowledgeable on a broad range of subjects, including specialized topics. So they will likely also read and vote on these more advanced subjects. Therefore, while these topics attract less votes, those votes are more likely to come from high-rep users (though not always; there are also specialists who have not built up a high reputation. No system is perfect). On the other hand, more basic questions will attract more casual users with lower reputations. Also, high-rep users have more experience with the site, and will more often recognize and appreciate a high-quality answer.
The next problem is then to decide how the votes should be weighted. There are of course a lot of possible ways, so I'll just give a simple example. Consider the following distribution: The horizontal axis has all the users who have voted at least once, sorted according to their reputation, from highest to lowest. The vertical axis has the total amount of upvotes given by each user. Then divide this distribution into 9 areas, representing 9 user groups, such that the total amount of votes that each group has given is roughly the same (some rounding off is needed so that each user falls into one group). The upvotes of the group of highest-rep users are worth a score of 18; the votes of users of group 2 are worth a score of 16; the votes of users in groups 3 to 9 are worth 14, 12, 10, 8, 6, 4, and 2, respectively. In this manner, the average score of all the votes of the entire site will be 10 (rounded off).
In other words, if you get an upvote from someone in group 1 (the top users), you get 18 points. If you get an upvote from someone in group 9 (the lowest-rep users), you get 2 points, etc.
One can refine this system further:
- Assign an additional quality score to a received bounty;
- Assign a higher quality score to votes from people who have posted an answer to the same question. After all, a vote from a 'competitor' is an acknowledgement that your answer is of high quality;
- Downvotes can also be taken into account.
Would there be any interest in this feature? Is it worth doing? Is it actually doable? Do you have alternative ideas? I look forward to your feedback.