Stemming from discussion at Flag weight 500: How can you tell if you're still flagging correctly?
Statistically speaking, the current flag weight system is broken.
If I get 51% of my flags correct, ultimately I will reach 500. Shouldn't someone who flags correctly 90% of the time have their flags shown in the list first?
Conversely, if I flag 49% of the time I will reach 0. Shouldn't I be more highly ranked than someone who only flags correctly 10% of the time?
Why is it that someone who flags correctly 51% of the time gets to be at 500, while I'm stuck wallowing in the mud because I'm flagging correctly 49% of the time?
Flag weight also affects how many flag votes you have daily. If you flag well only 51% of the time, should you really be getting all the bonus flags the weight of 500 gives you?
Solution
I'd rather have a system that uses a sliding window of, say, the last hundred flags. How many of those were acted upon? It would easily translate into a percentage, and be very easy for the user to understand how well they are currently flagging.
It's technically more difficult to implement a sliding window than the current system, so an alternative system would have much the same effect, and should be easy to implement:
The higher the weight a user achieves, the less effect a good flag has on weight, and the more effect a bad flag has on weight, and vice versa.
So at 500 weight, good flags have no effect anyway, but a bad flag might drop the weight by twenty points or more. It would then take 10 good flags at two points each to get back up to five hundred. At the bottom, a single good flag will jump the user up by twenty points, and it would take ten bad flags to get them back to zero.
In the middle, each good and bad flag would be ten points up or down. In this way, users would tend to stay near the middle unless they had a better or worse than average flagging record, and if their average is under ninety percent, they won't be at 500.
It would be easier to implement than a sliding window, and it would still give a useful effect. One couldn't get to five hundred, then simply maintain a fifty percent average and stay at the top of the list.
A simple implementation:
A good flag: currentweight += ( 500 - currentweight ) / 25
A bad flag: currentweight -= currentweight / 25
Rounded up, so at four ninety nine you'll still get one point for a good flag to get you to five hundred, and vice versa.
As a comparison:
If you maintain a 60% flagging average, then it'll take you about 180 flags to get to 500, but you'll get there eventually. You'll also get 20 additional flag votes per day. If moved to the proposed system, you'd have about 275 to 330 flag weight, and it would only take about 30 flags at this rate to get to that point.
This means that not only does the system more accurately portray a user's true flagging accuracy, but it resolves more quickly, thus reacting to user trends more quickly, and giving better feedback to the user as the whether they are flagging well or not.
Accuracy Current Weight/Bonus votes Proposed Weight/Bonus votes
10% 0 0 50 0
20% 0 0 100 0
30% 0 0 150 2
40% 0 0 200 5
50% 100 0 250 7
60% 500 20 300 10
70% 500 20 350 12
80% 500 20 400 15
90% 500 20 450 17
100% 500 20 500 20
This, of course, uses the suggested equations above, while it might make more sense to use a slightly different algorithm, it should be obvious that there's no point to having a "weighting" if it doesn't actually represent a user's flagging accuracy.
>300
, 20 for>400
, 25 for=500
. In a comment to your recent answer to Martin Clayton's question, Michael Mrozek asked "Why is someone punished more for a mistaken flag if they have a history of good flags?" My answer would be: because high flag weight means high responsibility; mods might start to trust you blindly.