Formula for weighing ratings by their count
I experimented with sorting items by their average rating and the number of ratings. I wanted to have products with higher number of ratings appear before ones with equal average rating.
There are a couple of simple ways to do this:
Sort by average rating, then by number of ratings. It works but I think an item rated 4.5 by a thousand people is better than an item rated 4.6 by ten people.
Show the number of ratings either in parentheses as a real number or some kind of visual indicator. This offloads the processing to the user. Also works but is kind of inelegant.
I wanted to achieve this using only the average rating and the number of ratings. I didn’t want to have to use dates, or counts in buckets, or averages over time.
In the end, this formula calculates a decent weighted average:
where a is the average rating and n the number of ratings.
Overall I think that’s a decent result but I’ve yet to test in production.
After some tweaking this still seems like a decent solution. One addition though: introduce a coefficient that’s based on the average number of ratings an item has.
For instance, if the average number of ratings is 10 there wont be enough difference between 8 and 16 ratings even though that’s twice the number of ratings. The lower the average number of ratings is the higher the coefficient should be. On a side project where the average number of ratings was ten I used
Get in touch
Or send me feedback. It will take less than 20 seconds.