Using achievement stats to estimate sales on Steam
gamasutra.com
gamasutra.com
I am not the author of the Gamasutra blog, but I have worked on the estimating method. It used Steam's public API [1] and within the last few hours, the effective precision was reduced to 1 decimal.
Potentially related, Steam's stated problems with Steamspy [2] 1. GDPR 2. Broad variance of accuracy
[1] https://developer.valvesoftware.com/wiki/Steam_Web_API#GetPl... [2] https://twitter.com/GamesCodeDogs/status/1012265304771252224
This requires that the achievement percentages vary with time (which could be a flawed assumption).
And Twitter recently now lets you see the ads for any company/competitor as well. its not sales figures but its still competitor intelligence.
If you're one of the top 10k products within a main category Amazon will release it in their public data anyway though.
This is the same reason LinkedIn makes it so hard to scrape their graph.
How would that work exactly?
As long as a title has over, say, 10,000 sales, rounded percentages don't eliminate any possible values for the total number. If one value doesn't give you any information, how would sampling more values help?
I have a dozen of game I have never played, and will probably never play. They were part of a bundle that was cheaper than the individual game(s) I wanted.
We don't know exactly how the total "achievers" pool for a game is calculated, but we know it isn't a simple measure of people who had achieved at least one achievement. It's almost certainly some measure of the total population that is able to register achievements, regardless of whether they have registered any.
It probably includes something like family sharing accounts, so it doesn't exactly correspond to actual sales directly, but it seems to be roughly in the middle between the "players" and "owners" stats SteamSpy used to report. Sometimes it would overshoot both, but it was never less than "players."
You can verify this yourself with the supplied source code.
The only cases where it can fail are:
1) When there is no achievement data
2) When there are not enough independent achievement %'s.
2 Can happen for games with very few achievements -- but in practice, if a game has even 3 achievements the chances of this happening become very small.
TL;DR -- for very nearly every game on Steam, this was an extremely accurate method for estimating the number of "achievers" for that game. The tricky bit is correlating "achievers" with a metric you actually care about, like e.g. actual sales.
As long as any portion of the userbase registers some achievement data, you can (well, could) get scarily accurate stats.
The only "inaccurate" part is that the stat you're measuring -- "achievers" -- doesn't exactly correlate to any stat we directly care about, like sales. In all the measuring I did against known private sales data, it was always higher than the # of people who had downloaded the game, and the # of people who had played it for at least 1 minute. My best guess is family sharing inflates the "achievers" stat.
It splits out a chart showing you how many games you have in a few different playtime categories ("12 or more hours", "6 to 12 hours", "Never played", etc.)
One example is FreeFly Burning, which according to the achievement estimation method has 739 players [1]. Yet, the game has sold 25,562 keys through Go Go Bundles, and more through other bundles. Go Go Bundles lists the number of bundles delivered [2] and each bundle includes every game (in contrast to Humble Bundle that has tiers). This is consistent with Steamspy's estimate of 20,000 - 50,000 owners [3]. Those bundle buyers likely never downloaded the game and perhaps haven't even activated the game on Steam.
With exceptions like F2P games or free weekend games: Units Sold >= Owners >= Players
[1] https://barter.vg/i/40567/a/