docs
docs copied to clipboard
Reference: calculation of satisfaction rating
Explain how satisfaction rating is calculated.
Motivated by:


@kazk I know I've asked this already but still what we concluded does not look right to me. I think the way how I described it in the post above is wrong.
Could you please verify whether the formula in the tooltip is correct, and explain what exactly are 50%, 14, up_votes_cast, ok_votes_cast, votes_cast on the screenshot above, and how does voting power multiplier affect them?
Anything else worth mentioning here? Maybe the fact that votes of banned users ae withdrawn?
When is satisfaction rating used?
- Possibility of approval (the green bar)
- threshold for auto-retirement,
- "positive feedback" sorting option,
- impact for Honor of the author of voted kata,
- "average rating" stat for authored kata,
- ... anything else?
Thanks!
First, votes are buggy :( It's actually stored with a user's project (the document containing all solutions by a user for a kata) and there's a callback to update the aggregated value in kata on change. But it can get into some weird state once in a while for various reasons. It's possible to recover by recalculating from all the projects, but that's expensive, so it's only done manually. I'll make it easier for me (and probably mods) to trigger the fix.
Looks like votes for "Dictionary sequence" is messed up.
% of votes with positive feedback rating is (total_up_votes + 0.5*total_ok_votes)/total_votes. No multiplier involved.
Maybe the fact that votes of banned users ae withdrawn?
Not sure if that's worth mentioning in the docs. But just for your information, when a user is banned, their votes are removed if the kata is still in beta and their votes are significant (currently if there's less than 50 votes) for performance reasons.
When is satisfaction rating used?
Sorting search results by popularity. It's been using a score calculated like this: ceil(votes_with_multiplier * (total_votes - total_ok_votes) / total_votes). (I hadn't paid much attention to these, and I'm not sure why it's multiplying by total_votes - total_ok_votes which is total_up_votes + total_down_votes.)