activity = min(time * 14, posts)
It embodies the assumption that any post above once per day (averaged over two weeks) is not contributing; which I do not agree with.
At the very least number of posts per day should be increased, e.g. min(time * 28, posts).
And you should consider more sophisticated metrics such as sum of f(x) over all two-week periods, f(x) being x / (1 + sqrt(x/14)) or x / (1 + x/28).
Time spent logged in will also be useful to include as a component.
Challenge accepted!
3/2
2 Sqrt[14] x
28 Sqrt[14] Sqrt[x] - 14 x + --------------- -
3
392 Log[14 + Sqrt[14] Sqrt[x]]
Or
28(x-28log(x+28))
I had to use an integrator of the first, the second was easy to do by hand.
A complex solution that is well thought out. I have an issue with this though (besides being too complex) it does not address the fact that it will reward trolling kids with plenty of free time instead of more mature contributors who actually add value in their discussions and posts.
I would like to see what you have implemented theymos incorporated with a points system which the community can upvote or downvote individual posts based on content. Similar to Reddit and Hacker News.
The idea is to discourage posts with no relevance to the wider community and reduce the number of flamewars and trolling.
Think of it as community driven forum moderation.
but mob upvote/downvote kills diversity, and new ideas, entrenches to much of the normative. We wan't the tails of the bell graph, gotta take the good with the bad