Skip to content

woctezuma/Steam-Bayesian-Average

Repository files navigation

Steam Bayesian Average

Build status Code coverage Code Quality

This repository contains Python code to compute the Bayesian average of Steam games, developers, and publishers.

The most reliable publishers at Steam250

Requirements

  • Install the latest version of Python 3.X.

  • Install the required packages:

pip install -r requirements.txt

Usage

  • Call the Python script. SteamSpy data will be automatically downloaded through an API.
python compute_bayesian_average.py

Vocabulary

Formulas are shown on the Wiki.

Acclaimed

The higher the ratio of positive reviews, and the more reviews, the more likely a game, a developer or a publisher is acclaimed.

Reliable

The higher the game scores, and the more released games, the more likely a developer or a publisher is reliable.

Established

The most acclaimed its most reviewed games, and the more reliable, the more likely a developer or a publisher is established.

Results

Results are shown in the Wiki for:

References

Appendix: custom 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 ;

Appendix: data

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.

SteamDB login

Once you are signed-in, make sure to view all games, then copy and paste the whole table as text into data/steamdb.txt.

SteamDB start

SteamDB end