user1241438 - 11 months ago 95

Javascript Question

I need to calculate 5 star ratings like the one on Amazon website. I have done enough search to find what is the best algorithm, but i am not able to get a proper answer. For example if these are the ratings

5 star - 252

4 star - 124

3 star - 40

2 star - 29

1 star - 33

totally 478 reviews

Amazon has calculated this to be "4.1 out of 5 stars". Can anyone tell me how this figure is arrived at? I am not able to get this just by doing average.

Answer

That's a weighted average, where you weigh each rating with the number of votes it got:

```
(5*252 + 4*124 + 3*40 + 2*29 + 1*33) / (252+124+40+29+33) = 4.11 and change
```

Source (Stackoverflow)