I was once an active member of an online community that employed a reputation system – which comprised of liking/disliking individual posts and gaining/losing reputation points with weight given by seniority of the caster – and I found it to be a fantastic incentive to contribute positively to the message board. Each user’s rep was clearly visible so I really wanted to build a positive reputation and I put a lot of effort into making my posts insightful. (“PLEASE LIKE ME!! I WANT TO BE COOL TOO!!”)
We have trust levels in Discourse, which sort of convey stature, but to me trust levels indicate activity level more than anything. Semi-active users will sit at trust level 2 and the most avid users will hit the pinnacle: trust level 3.
But trust levels don’t say much about the quality of a user’s posts. There’s got to be a better way to score each user on the merit of their contributions – and then also display their accrued reputation. I concur with @JJames that it would be helpful to differentiate users in some way.
Originally I was going to propose adding dislikes to penalize users for poor content (because I’ve seen this be effective) and factoring in likes to tally a reputation score, but I had trouble coming up with a good mockup and I imagine it would be intensive to assimilate dislikes into the backend.
Instead here’s a simpler idea:
Likes-to-Posts Ratio × Total Likes Ratio = Reputation
Likes-to-Posts Ratio = Your Total Likes Received / Your Total Posts
Total Likes Ratio = Your Total Likes Received / (Global Total Likes Received - Your Likes Given)
*Excluding PMs and specified categories.
*Flagged posts, mentions, and linked posts could factor in as well.
And here are a few example users (assume no likes given by them for this):
Global Total Likes Received = 1,000
- User 1: 50 likes, 50 posts (0.05 reputation)
- User 2: 10 likes, 2 posts (0.05 reputation)
- User 3: 7 likes, 1 post (0.049 reputation)
- User 4: 20 likes, 100 posts (0.004 reputation)
- User 5: 10 likes, 50 posts (0.002 reputation)
- User 6: 3 likes, 100 posts (0.00009 reputation)
I think that formula works pretty well for giving a relative reputation. Users 1, 2 and 3 all have the essentially the same reputation with varying like and post counts. User 4 has twice as much reputation as User 5 with the same like-to-post ratio but double the sample size. User 6 is not very reputable.
This should hold up over time too because the Global Total Likes Received will keep increasing, so there is incentive to keep posting otherwise your reputation share will naturally decrease. New users won’t be able to jump in with an initially high like-to-post ratio and become more reputable than someone who’s been around longer either. (There could also be a minimum post threshold to be met before a user’s reputation is calculated.)
The only problem is I don’t know how to depict the reputation score in a meaningful way. I haven’t taken statistics in a while, but maybe standard deviation could be used to place each user in a percentile which could then be represented with a bar under each user’s avatar:
– 50th percentile (average)
– 100th percentile (above average)
*Note darker green after 50% to more clearly show who is above average.
Hovering over the bar would give a tooltip with the percentile (and/or maybe user-defined terms for ranges of percentiles). You’d immediately be able to tell if the user in the conversation is generally a knowledgeable and helpful person.
This could discourage users from posting unless they think they’ll get likes. In some instances that would be a positive; in others it would be a negative. A good conversation doesn’t always need to involve likes.
Users may also be less inclined to like each other’s posts. In the proposed formula a user’s reputation isn’t affected by themselves giving likes, but the act of giving a like then encourages others to like that post too (which will then detract from the user’s reputation). This needs to be addressed but I’m not sure how. Maybe compare the user’s likes given/likes received ratio to the global likes given/likes received ratio and deduct for a negative disparity?
I’m oblivious to any obvious performance issues that this proposition would cause. Enlighten me!
My formula or standard deviation idea might be awful using actual numbers. (Any statistics majors in the house?)
That’s all I’ve got … I wanted to at least throw this out there and see if anyone can improve upon the idea. Thanks for reading!