This repository contains Python code to compute the Bayesian average of Steam games, developers, and publishers.
-
Install the latest version of Python 3.X.
-
Install the required packages:
pip install -r requirements.txt
- Call the Python script. SteamSpy data will be automatically downloaded through an API.
python compute_bayesian_average.py
Formulas are shown on the Wiki.
The higher the ratio of positive reviews, and the more reviews, the more likely a game, a developer or a publisher is acclaimed.
The higher the game scores, and the more released games, the more likely a developer or a publisher is reliable.
The most acclaimed its most reviewed games, and the more reliable, the more likely a developer or a publisher is established.
Results are shown in the Wiki for:
- the most acclaimed games,
- the most acclaimed, the most reliable, and the most established developers,
- the most acclaimed, the most reliable, and the most established publishers.
- Wikipedia: Bayesian Average
- the Steam250 website which updates rankings every day.
- Torn's "Best of Steam" website which updates rankings every day and allows custom ranking formulas.
Tip
For "Best of Steam", you can use the following custom ranking formulas to rely on the Bayesian Average.
- Using average values obtained on September 3, 2023 for the prior:
const C = 1117 ; // prior: average #reviews
const m = 0.756 ; // prior: average score
const n = game.votes ;
return (C*m + game.positiveVotes) / (C+n) ;
- Using median values obtained on September 3, 2023 for the prior:
const C = 17 ; // prior: median #reviews
const m = 0.822 ; // prior: median score
const n = game.votes ;
return (C*m + game.positiveVotes) / (C+n) ;
- For comparison, replicating SteamDB's formula, which does not use Bayesian average::
const C = 1 ; // offset for #reviews
const m = 0.50 ; // middle point for score
const n = game.votes ;
const p = game.positiveVotes / n ;
const t = (C+n) ** Math.log10(m) ;
return t*m + (1-t)*p ;
The current algorithm relies solely on SteamSpy data. In case SteamSpy API stops providing the numbers of positive and negative reviews, data from SteamDB could be merged with SteamSpy data.
- To download data from SteamDB, first sign-in with your Steam account.
Once you are signed-in, make sure to view all games, then copy and paste the whole table as text into data/steamdb.txt
.