Stack Exchange uses rewards to encourage participation:
- Votes for good content
- Badges for good questions, answers, and behavior
- Reputation bonuses for valid edits
- Increased responsibilities for good contributions
Quite arguably, Stack Exchange uses principles from Skinner's Operant Conditioning Chamber, which randomly rewarded rats with food every time they pushed a lever. Stack Exchange, Facebook, and video games are all smashing successes because people get addicted to rewards for behavior. The formula clearly works.
If you look at the list of rewards above, most of them depend on voters. Voting is one of SE's core currencies. Votes reward quality content, which ultimately makes Stack Exchange a better place. Even if a user doesn't continue asking or answering questions, we want him to come back to consistently vote good content up and bad content down.
As it stands today, users who mostly click the vote button1 get no consistent rewards2. Those users are "paying it forward" by providing tangible feedback from their peer-review efforts. Suppose you're competent in a subject... or perhaps even a subject matter expert participating in a small beta site... maybe you only visit once or twice per day (which isn't often enough to pounce on the trickle of questions). How long would these experts continue to altruistically "pay it forward" when they get nothing back, other than occasionally a little more information? Speaking as someone with access to one beta site's vote patterns, on the whole, these people don't silently click the vote button for more than a few weeks. After that, they either lose interest in voting, or worse, lose interest in the site. My conversations with other beta site moderators reinforce this notion. It's a real shame, because those competent users / experts are the people we really need to continue driving good content into stack exchange.
- Randomly give incentives to voters (on average) every 42 votes (based on today's daily vote limits)
- +2 points if total reputation is less than 200 points
- +5 points if total reputation is less than 2,000 points
- +10 points if total reputation is less than 20,000 points
- +15 points if total reputation is greater than, or equal to 20,000 points
- This bonus is optionally retroactive (based on SE preferences)... I personally don't think it should be retroactive
- This bonus should show up in reputation tab tallies as "User voting bonus"
- For small beta sites with low question velocity, perhaps you want to use a few points to "sink the hook"; i.e. increase the vote reward frequency for the first few user visits and then tail off to one reward per 42 votes over time. I don't have enough data to have input on this algorithm.
- This bonus should not apply to daily reputation cap limits from votes received
- Temporarily lower the vote reward frequency for voters in the top-X% of votes over time.
- No more than 500 points may be earned by this bonus when your total site score is under 10,000 points
- After 10,000 points, you may earn an additional 500 points from the vote bonus.
- Above 20k total reputation on the site, there should be no vote reward caps since the user is trusted.
- To avoid incentives for robo voting, temporarily (and silently) stop offering the random bonus if the user voted (on average) more than once every X minutes (value of X is subject of debate, and I don't have enough data)
- The baseline bonus frequency probably should have jitter (i.e. it should not be constant); this is to ensure that people can't assume they can calculate what they should have been awarded. The system is intentionally opaque to non-StackExchange employees.
- Optional: After randomly earning the bonus, perhaps the user should complete a captcha before points are credited to his account. This countermeasure is included to address vote automation; it should be used when automation is suspected.
Q1. When is this feature request beneficial?
- If the site's question velocity is high, it might not make much difference because there is ample opportunity for anyone to get points if you want them. Nevertheless, this is an incremental improvement for similar reasons that apply below.
- If the site's question velocity is low / modest (such as the many sites now in beta):
- SE's privilege thresholds feel like handcuffs if you don't have much reputation
- There is often a low question to SME ratio
- If you feel like you make no progress towards more privileges, you loose interest and quit voting
- If people quit voting, this is a negative incentive for people to put (sometimes hours) into answering an otherwise good question, only to get a measly two votes. Ultimately this dynamic is a negative drag on the whole goal of launching the beta site.
This could be a significant improvement for the beta sites, since it rewards the positive contributions of silent reviewers (who may otherwise feel that they are just a cog in the system).
Q2. Why should Stack Exchange developers / management care (and prioritize implementation of this feature)?
- More voting ultimately means more page views (because people review / vote more often)
- More page views == higher Google SE ranking
- More page views == more SE ad revenue
- Other well-documented reasons
Q3: If you mechanically reward voting, won't you inadvertently encourage people to vote for crap just to get the rewards?
- This is why I suggest we reward voting A) randomly and B) set the random threshold where the incentive is beyond what you could mechanically get on a single day of voting... so an incentive after more than 40 votes (on average)
- See the "Limits" section in the feature request for specific robo-voting counter-measures
Q4: What if these limits on the reward structure (asking, answering, editing) are part of the core design of Stack Exchange?
- Answering, asking and editing are certainly valuable, but votes are what make people continue contributing. After a site has high question velocity, ask-answer-edit is enough, but you have a chicken / egg problem on small sites. Besides, if I spend my hours voting good content up and bad content down, that's positive participation that we still want to encourage.
- Stack Exchange gets money from views, and the more votes we encourage, the more views we get (i.e. from voters).
- The incentives are scoped such that the overall contribution to a user's reputation is still small, but it's something so they don't feel like it's all output and no input
Q5: If the incentive is random, how do we audit the incentive trail?
- Use the documentation in the reputation tab or
<site_name>/reputation, just like other bonus awards.
Q6. What algorithm might someone use for this incentive?
- Establish the baseline incentive frequency based on the user's past voting behavior. Assume for sake of argument that the baseline frequency chosen is one incentive award for 42 votes (on average).
- Pick a random number between 1 and 42 for every time the user voted on a unique question or answer within the last day; if any one of the random numbers comes up as a 1, then the user gets the incentive for that day.
- Even if there are multiple 1s per day, we shouldn't offer the incentive more than once in a single day
- The algorithm should account for the reality that you can revoke an upvote within five minutes, and it might need to account for editing the same post to remove your previous vote. That's part of the reason I am starting to believe the award should happen on a daily basis instead of instantly after a vote.
Q7. What about abuse / gaming the system?
- If SE detects intentional abuse / gaming, then SE should have the option of suspending incentives temporarily or indefinitely for that user
- It should be obvious, but I'll just say it... The incentive is an extra something given to encourage good behavior, it's not a right or something you deserve just because you voted X times.
Q8. What do you mean by "Top-X% of votes over time"?
- The idea is to build a histogram of question / answer votes per user, measured over a longer period of time (maybe a week or so?).
- If a user falls into the upper X% of that vote distribution, then we offer fewer incentives. I don't know what threshold or time period to use; for sake of argument let's say the incentives are lower if a user falls into the top 10% of votes given over the period of a week.
Q9. If you lower the incentive frequency for people in the Top-X% of votes given, isn't that is a disincentive for good behavior? Also, what do you mean when you say "temporarily raise the reward threshold"?
- Anyone who consistently votes 40 times per day is a hero. Thank you for doing the right thing (and I'm assuming it wasn't robo voting).
- Using the word disincentive assumes:
- You really can know the frequency that you could have been awarded.
- You know where the Top-X% threshold is
- A significant motivation is purely for the incentive (which is not the intention of this, anyway)
- I will openly admit that I suggested this limit because:
- I assume that if you're an honest top voter, you don't need an incentive as often... status quo works :-). In @Ward's case, he was a top-voter long before this proposal.
- I hope to provide a disincentive for robo voting
- The system is intended to be opaque to the masses; we should not know the real algorithm for incentive awards, or even know the incentive frequency for awards to other people (because we can't see their individual votes anyway).
- Regarding the question of what temporary means; I consider that relative to the histogram used to measure this, but I don't know what time period SE might use.
Q10. What if the baseline incentive frequency was variable every day, so people couldn't predict when they "should" get an incentive?
- That sounds like a good way to implement it.
Q11. Meta has different dynamics that the other sites. Should every site have the same incentive award frequency?
- That sounds like a good argument. The incentive frequencies probably should be influenced by site dynamics; however, I don't have enough data
Q12. Maybe there could be a high barrier that you have to get over to start earning this bonus?
- I am not sure I like this idea, because the whole point is to give incentives to the average person who comes to SE and silently just reads / votes a few times every day. I wouldn't expect that person to ever be a voting hero
1: At some point in time, assume they asked sufficient questions in the past to start voting.
Thanks to ChrisF and WaxEagle for very useful feedback while writing this up.