Change to reputation calculation - use discounting?

I think it's really important that the model for users' scores (reputation) is changed. Specifically, I think the score should be discounted over time such that more weight is given to points that have been awarded recently.

(This applies generally to gamification and has been in the back of my mind for a while. Perhaps this has been suggested/considered before, but I couldn't find any related questions on here, so (encouraged by Jeff's latest blog post) here goes...)

Let us assume that an incentive for users to post answers to questions is to gain points. As it stands, the reward given to new users is severely diluted - the value associated with a point in the early days is much higher than the value of a point today.

My proposed solution in its simplest form would be to calculate a user's reputation based on the number of points they have been awarded in the last month. Or, preferably, a more complicated algorithm that was calculated over a longer period:

  1.0 * [points from last month]
+ 0.9 * [points from month before last]
+ 0.8 * [points from month before month before last]
+ ...


Of course, this could be calculated more granularly, or with a non-linear function.

This would provide an incentive both for old members (to retain their score) and new members (making it possible to catch up with users on the leader board). The playing field would be levelled and the risk of stagnation reduced.

Thoughts?

EDIT: Just found this question which looks similar.

-
False implies everything. I mean, I don't think your assumption that people only post answers to gain points, so everything following from that is mere.. well. eeuhm, for lack of a nice word, let's say "less interesting to discuss". –  Nanne Feb 4 '12 at 12:25
@Nanne, not everything is Boolean. I'll update the question. –  Joe Freeman Feb 4 '12 at 12:39

Leagues for all stack exchange sites already exist.

These let new comers compete on a level pegging on a weekly, monthly and yearly basis.

-
That's cool. I noticed that a similar league table also exists on the individual sites. But what I'm suggesting is more fundamental - a more effective way to promote active users. –  Joe Freeman Feb 4 '12 at 9:47
@JoeFreeman - I appreciate your suggestion, but I think you may underestimate the effect on entrenched users (like myself) this would have. –  Oded Feb 4 '12 at 9:49
Well, that's the whole point... –  Joe Freeman Feb 4 '12 at 9:53
@JoeFreeman - But punishing users for being long time "loyal" users can achieve the opposite of what you are suggesting. –  Oded Feb 4 '12 at 10:02
@Downvoter - care to comment? –  Oded Feb 4 '12 at 10:06
I've posted this before, but.... 4.bp.blogspot.com/_GPZk_objsdk/R5Eaugle9pI/AAAAAAAAADw/… –  Pëkka Feb 4 '12 at 10:47

If we do just focus on rep:

With the current model, if a newcomer sticks around and posts excellent questions and answers over a long timeframe, the initial disadvantage from coming in late is diluted.

This encourages people to stay and post good questions and answers, which supports the aims of the site directly.

If, however, you dilute the value of older posts you generate some bad behaviours:

• you encourage new users but discourage them from staying around
• people would game the system creating new accounts regularly to get the higher rep multiplier
• you actually end up penalising your best contributors

tl;dr - focusing on the wrong performance indicator generates wrong behaviours

-
"people would game the system creating new accounts regularly to get the higher rep multiplier" hää? Could you explain what you mean by that? –  CodesInChaos Feb 4 '12 at 11:59
@CodeInChaos, I think Rory is referring to extra points that new users get. Though, I wasn't aware of this - I thought new users were just rewarded with badges that don't affect reputation? –  Joe Freeman Feb 4 '12 at 12:18

People creating high-quality content is essential for the Stack Exchange model of Q&A: you don't want to do anything that would annoy or detract people from providing that content. Instead, you want to keep them happy. This reputation scheme does the opposite by saying, "yeah, well, you produced high-quality stuff in the past, but what have you done for me lately?"

While that type of biting-the-hand-that-feeds-you might make sense if Stack Exchange was a news service or if all content was ephemeral, the goal of Stack Exchange is to build up a repository of lasting content: penalizing people for producing questions and answers that stand the test of time is counter-productive to that goal.

We really don't want people creating lots of quick-hit content instead of spending time perfecting great, long-lasting answers: that makes us little better than your run-of-the-mill content farm and would only serve to irritate those who take the time to write timeless answers.

-
With discounting, long-lasting answers would continue to reward the user as long as they continued to receive votes. Answers that went out of date would not receive up-votes, and hence this would encourage the author to update their answers. To clarify - the discounting would be applied based on the time that the points were assigned; not the time that the question was asked. –  Joe Freeman Feb 4 '12 at 12:14
@Joe what you propose would work if upvotes were truly distributed over time, but in reality, the vast majority of upvotes is accumulated during the first 24 hours after a question is asked. –  Pëkka Feb 4 '12 at 15:52

And (not so) surprisingly the way to get to all-time-high is to also top the weekly and monthly lists for many weeks and months.

We're not gonna beat Jon Skeet anyway, unless you use negative weights on posts older than 1 year, so who cares?

-
Hey... we can dream! –  Andrew Barber Feb 6 '12 at 5:03

I totally disagree to this. In fact, it's possible that trusted people go to act-meta. Like dealing with flags, improving question and other activities that does not reward with rep. Thus the decay of reputation would render them unable to carry out those operations in a certain time.

We are not in a competitive world, but in cooperative. There is enough rep for everyone. Compare yourself in leagues if you want, but you can't say "this one is too old now". Reputation show your quality and has to include history. Would you go see war veteran and say: ok give me back your medals you did not fight for your country recently?

-