This is not really a proper suggestion, but just a musing, maybe it will be helpful in the long run. But I wonder if it would be interested in the rating someone makes isn't what actually gets displayed. What I mean by this, is if someone only ever ranks these 1* or 2*, then 2* can almost be seen as a 'perfect' rating, so a 2* rating from that person gets displayed (and used to average as if) it is a 5* rating. I don't really know exactly how the algorithm would work, but we have an issue where different people use the ratings differently (there is no real notion of what makes something 1* and what makes something 5*) however if we can at least detect the range of ratings a user is giving, perhaps we can determine how that interpret the rating system (some of the time at least). It would also means if some users (kindly) rate everything 5*, the system could detect that essentially that person isn't really effecting the overall vote either way. As I say, this isn't exactly a real suggestion, I don't really see it being implemented, but I thought some of the ideas are kind of interesting to think about. If you could combine that with a multiplier for how 'important' each rating is (where importance is worked out by how many people have marked a reviews comments as useful/not useful) you could potentially start to build up a single number 'rating' like we currently have, which begins to remove 'bad votes' and starts to account for that fact people vote in different ways.