Thanks for all your feedback. Looks like this is turning out to be more complicated than I thought.

I did some experiments on actual data and did not find too much difference between EMA (Exponential Moving Average) and SMA (Simple Moving Average), which is essentially what the current Sum-30 score is all about (just divide by 30 to get the SMA). EMA essentially emphasizes more recent data over past ones, so by the time we reach the older data, the effect to the final result is negligible due to the exponential nature of the window.

Just to illustrate, suppose you have 60 days of data starting with 100 (older) and going down to 10 (more recent). You are going to get both an EMA-30 and SMA-30 of about 30 (with EMA-30 slightly higher). It is easy to cook up a spreadsheet and play around with the figures. My conclusion is, past figures outside the window will not have significant impact over the final result.

I think the problem we are having is the definition of "popular". The issue is, "activity" and "voting" just do not mix. As I have explained before, if you mix the two, activity will always overwhelm voting. In addition, for activity, it makes more sense to use only recent data since it is so voluminous, but for voting, it makes more sense to use all data in our calculation since it is rarer, more spaced out in time, and hence more valuable.

As Lupo73 suggested, one logical solution may be to split the two (best rating vs most active). But I was thinking we should stick to ratings only (computed from votes), and cut out activity scores all together. We _can_ still have a most active list, but that will be for reference only, and I don't ever want to implement a "sort by most active" feature!

For this approach, we will have to use the existing registered user's votes as a starting point, then proceed from there. As I mentioned previously, votes by anonymous browsers are aggregated with activity scores, so those will be lost.

Good decision! ..only why do you prefer to not implement also "sort by most active"? it could be an important sorting feature.. and essentially what seems you need is to split current counter in two scores..

About voting score, what formula have you decided to use? I can help you with it if you need..

Good decision! ..only why do you prefer to not implement also "sort by most active"? it could be an important sorting feature.. and essentially what seems you need is to split current counter in two scores..

Only to reduce complexity. Imagine having to display two scores "Popularity" and "Activity" in each item, and having to explain each of them. I bet it will be confusing for your typical user too.

About voting score, what formula have you decided to use? I can help you with it if you need..

To be decided, but probably based on your recommendation, since you have already done so much research on it. I will also give you some numbers from the database to play with before we make that decision.

However, before we dive into that, let's hear what the others think about this. Basing the "Popularity" score on votes alone does mean the popularity list will revert to being rather static, which is what some of you have complained about (though that can be mitigated somewhat by having a separate, more dynamic "Most active" list).

Andrew Lee wrote:However, before we dive into that, let's hear what the others think about this. Basing the "Popularity" score on votes alone does mean the popularity list will revert to being rather static, which is what some of you have complained about (though that can be mitigated somewhat by having a separate, more dynamic "Most active" list).

Exactly.

SYSTEM wrote:IMHO, the "all time favorites" list isn't interesting at all. It's way too constant.

I think that the "Popular titles" box should stay dynamic. Indeed, one option is to have a separate, more dynamic and probably hidden popularity score that could be used to compile the "Most active" list.

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 "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.

News about it? In the meanwhile I think could be restored the old scoring solution, because current one is really influenced by recent activity.. Andrew I'm ready to help you if you need, you can contact me with PM

I'm not sure if that can be applied to the current vote/rating system but does it possible for logged members to see the thumbs "rocks"/"sucks" grayed out according to their previous vote for an entry ?

@procyon: This has been implemented, but it only affects the "rocks" button. i.e. if your id is in the "hearts" list for that entry, the "rocks" button will be grayed out.

This is due to the current implementation of the voting system. For logged in users, clicking the thumbs up button adds it to your favorites, while clicking the thumbs down button removes it from your favorites. So there isn't really an "anti-favorites" list.