Unlike the world of movies, music, and TV, the video game industry has traditionally been very protective of sales figures. Unless a specific game does remarkably well in terms of units sold, it can be quite difficult to nail down exactly how well a game has done in the market. Most companies choose to keep sales figures private, and some companies, such as Microsoft, don’t even report how many units of hardware they’ve shipped (all sales figures for Xbox One consoles are estimates).
It’s worth noting that there aren’t as many companies and institutions that dedicate their time to tracking video game sales. Movies, for example, are relatively easy to track, as ticket sales are reported by individual theaters. Video games are a little trickier. The NPD Group serves as the de facto source for game sales, but they don’t provide actual figures, only monthly rankings. Even worse, the market research company does not have access to all digital sales numbers.
As you can imagine, this has made it especially difficult to estimate how well PC games have sold over the years. Almost all PC games are sold digitally, with gaming giant Valve dominating the marketplace with their digital storefront, Steam.
Since 2015, website Steam Spy has provided estimated sales numbers by polling user profiles to determine what software titles users owned. From there, data was extrapolated to provide rough sales number on any given game. Unfortunately, this method was rendered useless earlier this year, when Valve updated data privacy and broadcasted user data, most likely as a response to the European Union’s General Protection Data Requirements (GDPR).
However, as reported by Polygon, programmer and game designer Tyler Glaiel found a new method to estimate sales numbers by tracking a game’s achievement data. By checking the percentage of users that had unlocked certain achievements, Glaiel was able to reverse engineer sales figures.
Glaiel detailed this process on Medium.
“This was brought up with a dev group I’m in, and it was quickly pointed out that if you get achievement data through steam’s API, you get 16 digits of precision instead! I set out to try and replicate barter.vg’s algorithm based on the description of it on their site, ‘Calculated by finding the lowest number of player that produces whole numbers of players for each achievement (percent achieved * all players).’
“So I got it working, with a simple brute force. Checked every possible whole number of sales up to a cap, and multiplied it by the achievement percentages. None of them exactly hit a whole number, so I had to set a threshold for what counts as a ‘whole number.’ It worked for most games with less than a million sales.”
Unfortunately, Valve has already cracked down on Glaiel’s method. Earlier this week, the company began rounding off achievement completion data to the nearest whole numbers, as opposed to displaying 16 digits of precision. Without this extra information, Glaiel’s method is no longer accurate.
Luckily, he was able to compile a list of the 1,000 best-selling games, which you can check out for yourself on Ars Technica.