contentdb/app/flatpages/help/top_packages.md

37 lines
1.2 KiB
Markdown
Raw Normal View History

2020-04-21 19:24:33 +02:00
title: Top Packages Algorithm
2021-01-10 04:03:07 +01:00
## Package Score
2020-04-30 23:41:55 +02:00
2021-01-10 04:03:07 +01:00
Each package is given a `score`, which is used when ordering them in the
2022-02-16 04:00:10 +01:00
"Top Games/Tools/Asset Packs" lists. The intention of this feature is
2021-01-10 04:03:07 +01:00
to make it easier for new users to find good packages.
A package's score is equal to a rolling average of recent downloads,
plus the sum of the score given by reviews.
2020-07-09 05:32:13 +02:00
A review score is 100 if positive, -100 if negative.
```c
reviews_sum = sum(100 * (positive ? 1 : -1));
score = avg_downloads + reviews_sum;
```
2020-04-30 23:41:55 +02:00
## Pseudo rolling average of downloads
2020-04-21 19:24:33 +02:00
2021-01-10 04:03:07 +01:00
Each package adds 1 to `avg_downloads` for each unique download,
and then loses 5% (=1/20) of the value every day.
2020-04-21 19:24:33 +02:00
2021-01-10 04:03:07 +01:00
This is called a [Frecency](https://en.wikipedia.org/wiki/Frecency) heuristic,
a measure which combines both frequency and recency.
2020-04-30 23:41:55 +02:00
2021-01-10 04:03:07 +01:00
"Unique download" is counted per IP per package.
Downloading an update won't increase the download count if it's already been
downloaded from that IP.
2020-04-30 23:41:55 +02:00
2020-04-21 19:24:33 +02:00
## Transparency and Feedback
2020-04-30 23:41:55 +02:00
You can see all scores using the [scores REST API](/api/scores/), or by
using the [Prometheus metrics](/help/metrics/) endpoint.
2020-04-21 19:24:33 +02:00
Consider [suggesting improvements](https://github.com/minetest/contentdb/issues/new?assignees=&labels=Policy&template=policy.md&title=).