Currently, because all scores are consolidated at the end of every 24 hours to save space, it is very difficult to apply a different algo retrospectively to the scores. As such, I have started saving the data instead of purging them.
The data kept are as follows:
1. Following the "Website" link
2. Following the "Download" link
3. "This app rocks"
4. "This app sucks"
We should then to able to apply whatever scores or weightings to this data in our algo retrospectively.
I think in the end, we should try somthing like what Lupo73 suggested
Code:
Popularity = 70 * (ActivityScore / MaxActivityScore) + 30 * (PositiveVotes / TotalVotes)
However, i will tweak it to be as follows:
Code:
Popularity =
w1 * Old Score +
w2 * Anonymous Voting Score +
w3 * Registered Voting score +
w4 * Activity (n-day)
The "Old Score" cannot be broken down further because they have been consolidated prior, which in hindsight, wasn't such a good idea.

So I think we can assign just a small weightage to it in the final rating.
For voting scores, I think we will use the full history. It can be calculated using one of the formulas that Lupo73 suggested.
For activity, I think we can use only the last 30-day data to ensure freshness.
The popularity rating will then be a decimal value between 0.0 to 10.0. This will be one rating (which I am hoping to achieve, instead of two) which incorporates both voting and activity components.
We will only have enough data to play with after another 30 days or so, so please be patient. Then I will send the data to Lupo73 and we will work on the new rating algo together.
Your comments please.