There were two problems with the system as it was
First problem: rep power spiraled out of control, blasting nearly every active poster off the rep scale entirely. This rendered the entire system meaningless in the short term, and utterly pointless in the long term.
Second problem: setting rep factors to a level that doesn't cause things to spiral out of control shuts out new users, making them unable to have a meaningful role in the rep system
Basically, the population has endpoints that are simply too high. The top users have >6000 posts (terra's currently at 7850, bud's at 6299, assertn at 6896) and have been around as long as the forums have existed. Other users have been around since the forums came into being, but have spent large amounts of time inactive. Still others are newer, but extremely active. And then there's the complete newcomers, who just haven't had any history with us at all.
The reputation system is supposed to be a way to encourage users to participate and a mechanism to give each other feedback.
However, as we've seen the last two months (wow, pretty much exactly … I first turned on and explained the rep system on March 11, it's now May 12), there are big problems with the implementation. Many of you have pointed this out.
There's three variables to control rep power: membership time, post count, and rep score. I think they should all count. But, if any one variable is set to a value that allows new members any influence, old members, high-postcount members, or people who've accumulated large amounts of reputation already become too powerful.
In the previous system, things were controlled by a linear equation, :
Code:
Power = (post count/post factor) + (user age/age factor) + (reputation / rep factor).
Since these are all integer ops, they lock a user into having no influence until they've exceeded at least one of those factors..
But some quick math shows us that if we have a low value, then we get disproportionately powerful people in the mix. With all the thresholds at 30, a user like AssertnFailure would get 229 rep power from his post count, and 33 from his age. And that's not including the huge reputation that he would quickly be able to build with other people having that scale of power. Clearly, this is broken.
But setting this value so Assertn doesn't have 230 rep power just from his post count renders the post weight meaningless. The old value was 400 -- meaning users with 800 posts only got 2 points from it, while Assertn STILL got 18 from it.
There are a lot of users around who registered back in 2003, and maybe posted a couple times (enough that their accounts didn't get purged for being inactive and having <2 posts). If age alone a substantial rep factor, then those people will be at an advantage. A user who's been around for 3 years, but only made 3 posts in august 2003 and has never been back shouldn't have more power than a user who's made 300 posts in the last 3 months.
Lastly, there's reputation score. This is the most variable of the lot, because it jumps forward by the power of the person giving you rep. This quickly spirals after a certain threshold - while the equation is linear, the growth along it is quadratic, based on the average rep value of the participants.
You may be asking yourself at this point, "what's wrong with all of that?" The problem is, the rep display only scales up to 1000. While I can add higher values to the reputation categories, I can't easily change how the display boxes scale. Meaning after a certain point, the average growth rate of reputations becomes greater than the intervals between display categories.
Further, Tuning any value such that the top end users aren't excessively powerful means shutting new users out of that field as an influence mechanism. And there will inevitably be users who are extremes at any, or even every category.
When I applied the brakes, the highest rep power calculated out at 186. Not very far away, the next was 178. Now, that's just too damned fast … and as I said, this is a quadratic growth. A single rep hit from one of the highest end reppers increased a user's displayed reputation by nearly two full boxes. That's … at risk of being redundant, too damned much. It means that EVERYONE very quickly goes off the displayable scale of reputations, one way or the other, based on the whims of a small group of more powerful (ie: more popular) people.
Now, my whole goal in the reputation system experiment was to encourage users to participate - to try to raise both the participation volume, and the average quality of posts. And you know, the system succeeded at that, on the short term. But at the same time, it's pretty plain to me that on the long term, the growth spiral was going to continue indefinitely, powers were going to continue to grow quadratically, and a single hit would be able to completely fill or flatten any user's rep display.
Even worse, individual users would get the power to disenfranchise anyone they wanted to. Think about it … if user X has a rep power of 200, they can neg rep a newbie, and drop their rep to -100 singlehandedly. Because that's where I set the threshold where reps don't count any longer, that user can no longer participate in the system until someone else finds it in their heart to toss them a positive rep and drag them out of the depths. But I think it's a natural tendency to pre-judge someone with those angry little red boxes proclaiming "this user sucks" - and that's more likely to swing more people to neg rep them.
Now, this scenario aside, if a new user who's just crossed the threshold into having their rep hits count (at 20 posts, by the old value), gets positive repped by someone with 200 reputation, and the rep factor is 25, that 200-point hit hands them 8 more points of rep power. Still pales in comparison to the 200 points that the giver has, but it's more influence than someone with 20 posts and no prior reps should have. This is sort of a power proliferation problem - by giving you rep power and making the rep factor smaller than your power, inherently every hit you make will be giving the receiver more firepower. And again, with the quadratic expansion of power factors, before long it would get to the point that by simply giving a rep hit, you would give enough power to another person for them to immediately give someone else another point of power (ie: two tiers of power proliferation from a single hit -- this would happen at a rep power of 625 -- with 2000 posts and being a 1 year member of the forum, that would be a rep score of a bit over 15,000 -- not too far off, seeing how growth had already reached higher than 1000 points per week for the top repped people).
Again, this in itself isn't much of a problem, it's just an inherent quality of the system. By using your rep score to calculate your rep value, you get this sort of thing, and this is where that quadratic growth factor comes from.
And the thing is, I like that attribute of the system! Or rather, I like the core meaning of it. I want it to be the case that if you are more popular, you've got more influence. That just makes sense -- let the system be a democratic meritocracy. But at the same time, I don't want it to be the case that if you're more popular, you're practically a god, and if you're less popular you're insignificant - because new users are inherently less popular than older ones, regardless of what they try to do. Part of my goal is to attract and keep new users, to keep constantly revitalizing the forums with a stream of new people who stay around. A community like this has two paths: grow and thrive, or stagnate and die, and I'd be ignoring my role as an admin if I encouraged it to stagnate and die (although, admittedly, it would make my life a little easier ).
So … to summarize the problem, if the system is going to be meaningful and sustainable, then it needs to accommodate both new users and old, and give them fair influence. But fair isn't a linear equation, and linear equations in calculating power lead to quadratic growth and the implosion of the system as a whole.
So I changed the equation …
Here's the new general equation, roughly:
Code:
Power = 1 + sqrt(post count/post factor) + sqrt(age / age factor) + sqrt(rep score/rep factor).
(there's some added logic for negative rep scores to keep things rational)
You guys have put 2 months and about 4000 reputation hits into the old system. I didn't want to discard it, even though it was broken. So instead, I squarerooted all the values of all previous rep hits. Then I recalculated everyone's rep based on the new values for every hit.
The recalculation of total based on all of that has dramatically moved people, as you've seen. As for what your current rep power is, see RepCalcv2.xls . The top users are still the top users, but they're not so dramatically overpowered anymore.
I think all of this levels the playing field. Basically, as you get higher and higher values, you get diminishing returns. There's still value in doing more, but it's harder to attain that value. This lets me open all the doors. Every factor is at 30, but users at the extremes won't get incredibly disproportionate amounts of power.
Finally, a new guideline: quit signing your reps. It's ok if you sign a rep that's thanking someone for someone doing a favor for you (like ... making you a new sig, or solving a problem for you), or if you're asking a favor from them (like, "please pm me that link"). But if you're signing most of your hits, it will be interpreted as rep solicitation, and punished severely (like ... re-squarerooting your received hits, or simply disabling your ability to leave rep).