Bug 513139 - Average rating is incorrect
Summary: Average rating is incorrect
Status: RESOLVED FIXED
Alias: None
Product: Discover
Classification: Applications
Component: discover (other bugs)
Version First Reported In: 6.5.3
Platform: Manjaro Linux
: HI normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-12-09 20:45 UTC by Thomas Bertels
Modified: 2026-02-18 15:06 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.6.1
Sentry Crash Report:


Attachments
Quick PDF Join (10.58 KB, image/png)
2025-12-09 20:45 UTC, Thomas Bertels
Details
Sejda PDF Desktop (12.19 KB, image/png)
2025-12-09 20:46 UTC, Thomas Bertels
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Bertels 2025-12-09 20:45:58 UTC
Created attachment 187469 [details]
Quick PDF Join

SUMMARY
The average rating seems to be computed incorrectly.

OBSERVED RESULT
Quick PDF Join: 4 ratings of 5 stars each -> average of 4.0
Sejda PDF Desktop: 4 ratings of between 1 and 3 stars -> average of 3.9

EXPECTED RESULT
Quick PDF Join: average of 5.0
Sejda PDF Desktop: average of 3.0 or less

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 
KDE Plasma Version: 6.5.3
KDE Frameworks Version: 6.20.0
Qt Version: 6.10.1
Comment 1 Thomas Bertels 2025-12-09 20:46:22 UTC
Created attachment 187470 [details]
Sejda PDF Desktop
Comment 2 Nate Graham 2025-12-10 16:39:36 UTC
Can reproduce.
Comment 3 Nate Graham 2025-12-18 22:52:38 UTC
The issue here is that the bars for each star rating aren't reflective of all the reviews, only some of them. Need to look into why we don't get all of them.
Comment 4 Alexander Wilms 2026-01-11 15:07:45 UTC
The star ratings use application.rating.sortableRating, the ODRS rating that includes all reviews, including filtered ones with Wilson Score dampening applied.

The review distribution bars only show the reviews that were actually fetched and pass the shouldShow filter:

const bool shouldShow = usefulFavorable >= usefulNegative * 2 && review.value(QLatin1StringView("reported")).toInt() < 4;

https://invent.kde.org/plasma/discover/-/blob/ba9e95005a2256d2b993b51645484191a2c6c76b/libdiscover/appstream/OdrsReviewsJob.cpp#L132
Comment 5 Bug Janitor Service 2026-01-15 11:12:13 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/discover/-/merge_requests/1232
Comment 6 Akseli Lahtinen 2026-02-10 12:28:10 UTC
Git commit 9ec8683c094acced024a3e1b71be2814f674fda3 by Akseli Lahtinen.
Committed on 10/02/2026 at 12:28.
Pushed by akselmo into branch 'master'.

ReviewStats, Rating: Expose starCounts from rating and use it for ReviewStats

ReviewStats was calculating the rating progressBars from
reviews only, not from all the total reviews. This
was confusing, since the actual rating value was calculated
from the total ratings.

This exposes the star counts in Rating class and changes
ReviewStats to utilize that instead, so we get accurate
progressbars per rating.

Also changes the sorting button name of "Rating" to "Popularity"

M  +1    -1    discover/qml/ApplicationDelegate.qml
M  +1    -1    discover/qml/ApplicationPage.qml
M  +1    -1    discover/qml/ApplicationsListPage.qml
M  +5    -5    discover/qml/ReviewsStats.qml
M  +7    -1    libdiscover/ReviewsBackend/Rating.cpp
M  +11   -0    libdiscover/ReviewsBackend/Rating.h
M  +0    -67   libdiscover/ReviewsBackend/ReviewsModel.cpp
M  +0    -29   libdiscover/ReviewsBackend/ReviewsModel.h

https://invent.kde.org/plasma/discover/-/commit/9ec8683c094acced024a3e1b71be2814f674fda3
Comment 7 Akseli Lahtinen 2026-02-18 15:06:41 UTC
Git commit 1703aa7b2811610edc014f68c3544fc4b763cc42 by Akseli Lahtinen.
Committed on 18/02/2026 at 14:21.
Pushed by akselmo into branch 'Plasma/6.6'.

ReviewStats, Rating: Expose starCounts from rating and use it for ReviewStats

ReviewStats was calculating the rating progressBars from
reviews only, not from all the total reviews. This
was confusing, since the actual rating value was calculated
from the total ratings.

This exposes the star counts in Rating class and changes
ReviewStats to utilize that instead, so we get accurate
progressbars per rating.

Also changes the sorting button name of "Rating" to "Popularity"


(cherry picked from commit 9ec8683c094acced024a3e1b71be2814f674fda3)

c26733f3 ReviewStats, Rating: Expose starCounts from rating and use it for ReviewStats
ec0b6acd ReviewsModel: remove StarsCount
2235dee5 Add comments to Rating
88dbea3c set globalrating to use rating instead of sortableRating
330351f0 Use regular rating for visuals
732d2feb Set starcounts to const std::vector<int>
c38a6020 Use popularity instead of rating for sort text

Co-authored-by: Akseli Lahtinen <akselmo@akselmo.dev>

M  +1    -1    discover/qml/ApplicationDelegate.qml
M  +1    -1    discover/qml/ApplicationPage.qml
M  +1    -1    discover/qml/ApplicationsListPage.qml
M  +5    -5    discover/qml/ReviewsStats.qml
M  +7    -1    libdiscover/ReviewsBackend/Rating.cpp
M  +11   -0    libdiscover/ReviewsBackend/Rating.h
M  +0    -67   libdiscover/ReviewsBackend/ReviewsModel.cpp
M  +0    -29   libdiscover/ReviewsBackend/ReviewsModel.h

https://invent.kde.org/plasma/discover/-/commit/1703aa7b2811610edc014f68c3544fc4b763cc42