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.