Professor Pi's system of using median node-fu product (MNFP) thresholds as a level advancement system resembles something I had been developing in my scratch pad. A system based on reputation would have some advantages: it would discourage use of "Don't display in New Writeups" autonoded bulls*** and would encourage users to vote tag each other.
Median has flaws
However, raw MNFP as a level advancement system has one major flaw: discontinuity. For example, if a user has 249 writeups <= 2 rep and 250 writeups >= 3 rep, the user has median rep 3, and MNFP = (3+1)*499 = 1996. If this user submits two writeups that go unnoticed in New Writeups and do not quite reach 3 rep by the end of the day, the user will then have 251 writeups <= 2 rep and 250 writeups >= 3 rep, putting the median rep down to 2 and the MNFP down to (2+1)*501 = 1503. A loss of 493 MNFP seems like a pretty harsh penalty for adding two writeups. Such a system would also exact less-than-fair penalties on victims of drownvoting. 1010011010's writeup below explains more about the dangers of the median.
Prof. Pi wrote in response: "adding those 2 wus should not change matters until median is recalculated. If the 2 wus remain below 3 rep by the end of the day... then the median will change. but then he has more than 50% below median=3, so that's fair. He's borderline and should work on increasing his rep in future wus." There's a difference between being borderline and having hardly anybody awake to read a writeup submitted outside of United States waking hours; I've had some good work fall out of New Writeups at (+0/-0).
To solve this, I propose using interquartile node-fu product (IQNFP) instead. Take the mean reputation of a user's writeups between the 25th and 75th percentile, add 1, and multiply by the number of writeups. This has the same property of rejecting outliers as MNFP without the harsh discontinuity.
m_turner gladly let me analyze his sample data and present my analysis:
- number of writeups: 586
- mean rep: 8.66
- median rep: 6
- first quartile rep: 4
- third quartile rep: 12
- total rep of writeups in interquartile range: 1882
- interquartile node-fu: 6.423
- IQNFP = (IQNF + 1) * nwriteups = 4,350
- (interquartile total rep * 2) + nwriteups = 4,350
Writeups that fall within
interquartile range:
rep count 'tile
<=3 146 146 -- first quartile
3 45 191
4 39 230
5 42 272
6 39 311
7 33 344
8 23 367
9 22 389
10 21 410
11 24 434
12 5 439 -- third quartile
>=12 147 586
This sample data shows that the distribution is a bit skewed, making IQNF slightly larger on average than the MNF but not by much. It also shows the near-impossibility of a single vote changing the IQNFP by more than 2 points.
So why would anybody ever vote?
Another problem exists of how to reward voting. Prof. Pi has assured me that there will still be XP (so users can get a number about which they can boast), but it probably won't contribute much to the level. The new code can even multiply it by j (the square root of -1) to help users see that it really is an imaginary number. In fact, the format "Experience: $MNFP + $XPj" would show just how complex things can get.