2
$\begingroup$

I need to create a simple formula for determining the popularity of an item based on votes and age.

Here is my current formula, which needs some work:
30 / (days between post date and now) * (vote count) = weighted vote

Whenever a vost is cast for an item it checks if its weighted vote is > 300. If an item has a weighted vote more than 300 then it is promoted to the front page of my website.

The problem is that this formula makes it very hard for older items to be promoted.
30 / 1 day * 10 votes = 300 (promoted)
30 / 5 days * 15 votes = 90 (not promoted)
30 / 30 days * 30 votes = 30 (not promoted)
30 / 80 days * 40 votes = 15 (not promoted)

How can I alter the formula to make it relatively easier for older items to be promoted (IE. make the above four weighted values fairly close together)?

  • 1
    The question of which formula is the right one really **depends on how fast you want the weighted vote to fall** when time grows.2010-08-18
  • 0
    I think this would be better suited for the stats website. Maybe you can run a confidence interval test on it and decide based on that?2010-08-18

1 Answers 1

2

One possibility is to take the cube root of the number of days: $$\begin{align} \frac{3}{\sqrt[3]{1\text{ day}}}\cdot 10\text{ votes}&=300 \\ \frac{3}{\sqrt[3]{5\text{ days}}}\cdot 15\text{ votes}&\approx 263.2 \\ \frac{3}{\sqrt[3]{30\text{ days}}}\cdot 30\text{ votes}&\approx 289.6 \\ \frac{3}{\sqrt[3]{80\text{ days}}}\cdot 40\text{ votes}&\approx 278.5 \\ \end{align}$$