Documentation
Game Terms
appID
On steam, each store product whether it be a game, movie, software, or DLC, is assigned a unique up to 7 digit long number referred to as the appID.
This appID lets us differentiate between products with ease.
Occasionally however, products can reuse older appID's or merge with other appID's. This phenomenon is why some games can be remastered and use the original titles store page.
Game Playtime
This represents the sum of all hours played among unique owners for a single game.
Average Playtime
The Average playtime for a game is simply the Playtime of a game divided by the Unique owners of that game.
Avg Playtime = Total Playtime / Unique Owners
STDev Playtime
TODO
Game Unique Owners
This represents the quantity of unique steam accounts that own a game. Whether the owner paid for the game is not taken into account with this metric.
Game Visibility
This represents the percent of Unique Owners that own a game relative to the total sample size of unique accounts that Project Mimir has in it's sample of accounts.
The calculation is:
Visibility % (of a game) =
Sum of (Unique Owners (of a game)) / Total Sample Size
Game Activation
Think of the difference between Visibility and Activation as " I own the game. " versus " I have actually played the game."
The calculation of Activation is simply the % of Unique Owners that have played the game divided by the Unique Owners of the game
Activation % (of a game) =
Unique Owners that have played 1 or more minutes of a game / Unique Owners of the game
P50 Hours
This represents the playtime in hours of the Top 50% of players within a game's distribution of playtime.
This is also the Hours held by the "Median" player of a game. In games that have an activation rate at or below 50% The P50 Hours equal 0. This means that the "Median" player and at least 50% of the game own it, but have not played it.
P90 Hours
This represents the playtime in hours of the Top 10% of players within a game's distribution of playtime. In other words, if you were to calculate the amount of hours needed to be in the Top 10% of players of a game, you would get the P90 Hours.
P95 Hours
This represents the playtime needed to be among the Top 5% of players of a game.
P99 Hours
This represents the playtime needed to be among the Top 1% of players of a game.
Game Graphs
Game Playtime Over Time
TODO
Game Playtime Distribution Histogram
The Playtime Distribution histogram is a graph showing the counts of each unique owner that has played a particular quantity of playtime in a game.
The sample size is not the same as the Unique Owner count, as not all unique owners have played the game, thus the sample size shown on the graph is the count of Unique owners that have played the game (activated).
Game Normalized Playtime Distribution
The Normalized Playtime Distribution graph is when you take the Playtime Distribution Histogram and normalize each player count such that the Top percentile (100%) becomes the player with the most playtime and the bottom percentile (1%) becomes the player with the least playtime.
As an example:
Say we have a game with a distribution that looks like this:
Player 1-100: 2 Hours
Player 101: 30 Hours
Player 102: 35 Hours
Player 103: 100 Hours
Player 104: 1000 Hours
If we were to normalize that distribution we would set Player 104 to be 100% and Players 1-100 to be 0% with Player 103 being 10% and anyone else would fall between them.
This is arbitrary and I made up the numbers, but roughly speaking that's what a raw distribution in absolute hours looks like for any game on steam. The reason I use normalized playtime as the metric to discuss is because we already know that there are games on steam that have extremely dedicated players in the thousands of hours, thus it would be better to discuss playtime in terms of where everyone is relative to each other or what I like to term: Dedication
Raw playtime isn't a fair comparison because different games naturally encourage different session lengths. Instead, normalization lets us compare how quickly casual players transition into highly dedicated players without comparing absolute hours.
Publisher Terms
CCU
CCU Represents the most recent Daily Concurrent Players for the most recent Month for a publisher.
Publisher Average Players
Avg Players represents the average of all Monthly CCU for a publisher.
Publisher Unique Owners
This represents the Sample size of the Playerbase that Project Mimir has currently mapped for each publisher, Above 1000 Players represents a large enough sample size to make statistically probable statements.
Publisher Playtime
This term represents the total hours played across the lifespan of the Owners. In other words, this is the total time spent across all games for a publisher since inception for Project Mimir's Sample Size of Owners.
Publisher Visibility
This represents the percent of Unique Owners that own a game from a publisher relative to the total sample size of unique accounts that Project Mimir has in it's sample of accounts.
When calculating Visibility for accounts with multiple games by a publisher, only 1 game is counted.
Say a publisher has individual games with 80%, 70% and 60% Visibility, if there are different unique accounts own those individual games, then that publisher's visibility could be 85% or 90% even. If instead Everyone who owns Game 1 also owns Game 2 and 3, then at most that publishers visibility will be 80%
The calculation is:
Visibility % (of a publisher)
= Sum of a publishers games ( Unique Owners (of an individual game) )
/ Total Sample Size
Publisher Activation
Activation rate for publishers is the Percent of Unique Owners for a publisher that have played at least 1 of the publishers game for more than a minute.
Similar to when calculating visibility, if a Unique Owner owns multiple games of a publisher, only 1 game is counted for the purposes of calculating Activation Rate
The calculation is:
Activation % ( of a publisher)
= Sum of Unique owners that have played at least 1 game
/ Unique owners that own a game by a publisher
Publisher Dedication
The Dedication rate for publishers is the Percent of Unique Owners that own at least 1 of a publishers game that have spent more than 50% of their account playtime with that publishers games.
As an example, say an account had 100 hours in Game 1 by Publisher A and 200 Hours in Game 2 by Publisher B. For the purposes of dedication, we would say the account is dedicated to Publisher B, and of unique owners that own a game by Publisher B, the account would then be counted.
In other words, of everyone that owns a game by a publisher, the dedication rate is the % of everyone that has spent more than 50% of their time on Steam playing that publishers games.
The calculation is:
Dedication % (of a publisher)
= Sum of Unique owners that have spent more than 50% of their account playtime in a publishers games
/ Unique Owners that own a publishers games.
Publisher P50 Hours
This represents the Hours played by the 50th percentile of the Owners of a particular Publisher across all of their games. This term is used to counteract the "Average" Hours played by a playerbase. Because there is a significant amount of games owned but not played across Steam this value trends towards 0-1 Hours, however any publisher displaying a P50 above 5-10 Hours demonstrates a dedicated/concentrated playerbase.
Publisher Graphs
Publisher Player CCU Over time
TODO
Attention Dominance Distribution Graph
Whereas the Dedication Rate measures the percentage of accounts that have played more than 50% of their account playtime in a particular publishers catalog, the Attention Dominance Distribution Graph plots the Dedication rate for different percentiles of account playtime share.
In other words, the graph measures the distribution of account playtime share by that publisher.
The cumulative graph below the percentile version then shows the drop-off of the share of accounts by percentile.
Publisher Top Genre
TODO
Risk Map
TODO
Dedication Map
TODO
Scale Map
TODO
Estimating Total Copies Sold and Total Owners on Steam
One of the most frequently requested metrics is the total number of copies sold (or total owners) for a game on Steam.
Because Valve does not publicly provide ownership counts, this value must be estimated indirectly.
There are currently three primary methods used to approximate total ownership, each with different assumptions, strengths, and weaknesses.
1. Multiples Method
This is the most commonly used public estimate.
The idea is that the number of user reviews (or wishlists) is proportional to the total number of copies sold.
A commonly cited rule of thumb is:
Total copies ≈ 40 × number of reviews
The origin of the “40×” multiplier is unclear, but it has been widely repeated in developer discussions and industry forums.
In reality, the relationship between reviews and copies sold is not guaranteed to be constant.
It may vary depending on factors such as:
- Genre
- Price
- Player engagement
- Age of the game
- Player demographics
A useful validation approach is to compare known ownership counts (from public companies, leaks, or developer disclosures) against review counts to test whether the relationship is linear and whether the multiplier changes across different ranges.
Summary
copies ≈ multiplier × reviews
Pros:
- Simple
- Works without access to user-level data
- Useful for quick estimates
Cons:
- Multiplier may not be constant
- Sensitive to genre and player behavior
- Cannot capture inactive owners vs active players
2. Representative Sampling Method
This method assumes that if you know the size of the total Steam population, and you have a sufficiently large and representative sample of users, then ownership can be estimated statistically.
If:
Total Steam population = N, Sample size = S, Owners in sample = O
Then:
Estimated total owners ≈ (O / S) × N
The main difficulty is obtaining a sample that is truly representative of the entire Steam population.
Bias in the sample (for example, only active players, only public profiles, or only certain regions) will skew the results.
Accuracy improves as sample size increases and as sampling bias decreases.
Typical workflow
→ Estimate total Steam population → Gather user sample → Count owners of game in sample → Scale to population → Repeat with larger samples to reduce error
Pros:
- Statistically grounded
- Can be very accurate with large samples
- Works for any game, even with few reviews
Cons:
- Requires population estimate
- Requires large user dataset
- Sensitive to sampling bias
3. Playtime Averaging Method
This method estimates ownership using total playtime instead of direct ownership counts.
If you can measure:
- Total playtime across a sample
- Average playtime per owner
Then ownership can be approximated as:
Estimated owners ≈ Total playtime / Average playtime per owner
This method works because total playtime scales with the number of players, but it has a known limitation:
It excludes players who own the game but never played it.
As a result, this method tends to underestimate total ownership but gives a strong estimate of the active player base.
This makes it especially useful for:
- DLC attach-rate analysis
- Engagement analysis
- Active population estimates
- Live-service game modeling
Typical workflow
→ Gather sample → Calculate total playtime → Calculate average playtime per owner → Estimate owners → Repeat with larger samples
Pros:
- Good estimate of active players
- Useful for engagement modeling
- Works well with playtime datasets
Cons:
- Undercounts inactive owners
- Sensitive to heavy-playtime outliers
- Requires playtime data
Notes
These methods are not mutually exclusive.
For example:
- Multiples method gives a fast baseline
- Sampling method gives a statistical estimate
- Playtime method gives an active-player estimate
Think of each method as a bound / limit on the estimate:
- Multiples method → upper bound
- Sampling method → expected value
- Playtime method → lower bound
Other Less-Rigorous Methods
Other methods do exist but are generally less reliable or require insider data:
- A. Insider Information
- B. Ranking / Top Sellers Method
- C. Achievement Ownership Extrapolation
- D. Title → Revenue conversion
- E. MAU / DAU → Copies method
Steam Tag System
What is a Tag?
Every app on Steam is assigned Genres, Categories, and Tags, which together form a loose classification system used by the Steam store.
These can be understood as three different layers of abstraction.
Genres
Genres are the highest-level classification of an app.
They describe the broadest type of product.
Examples:
- Action
- Strategy
- RPG
- Simulation
- Video Production
- Movie
While Steam is now primarily known as a game platform, the system was originally designed to support a much wider range of software and media. Because of this, the Genre system is relatively small and very general.
There are currently 33 Genres.
Categories
Categories describe the technical features of an app rather than what the app is about.
Examples:
- Singleplayer
- Multiplayer
- VR Supported
- Steam Achievements
- Demo Available
- Controller Support
Categories can be thought of as the feature flags of a product — the kind of details you would use to describe software to someone familiar with computers, but not necessarily with games.
There are currently 63 Categories.
Tags
Tags are the most detailed classification layer, and for most games they function as what players would normally call the genre.
Examples:
- Roguelike
- 4X
- MOBA
- Souls-like
- Voxel
- 1980s
- Pixel Graphics
- Turn-Based
- Open World
Tags are much more flexible than Genres or Categories and can describe:
- Gameplay mechanics (4X, MOBA, Roguelike)
- Perspective or structure (First-Person, Turn-Based)
- Theme or setting (Sci-Fi, Medieval, Cyberpunk)
- Visual style (Voxel, Pixel Graphics, Anime)
- Tone or mood (Relaxing, Horror, Funny)
- Audience or difficulty (Casual, Hardcore)
At the time of writing (March 2026):
- 446 Tags
- 63 Categories
- 33 Genres
Tags are also dynamic — new tags are added over time.
Full taxonomy reference:
https://steamdb.info/tags/
Developer Tags vs User Tags
Tags on Steam can be assigned by both:
- Developers
- Users (community voting)
The exact weighting system used by Steam is not public, but tags appear to be influenced by:
- Number of users applying the tag
- Playtime of users applying the tag
- Developer-assigned tags
Because of this, a game may have tags that are not universally agreed upon.
Example:
- 90% of players consider a game Strategy
- 10% consider it MOBA
- Both tags may appear
This creates a problem for quantitative analysis.
Tag Attribution in Project Mimir
When analyzing playtime by tag, there is no reliable way to split playtime proportionally between tags.
Because of this, Project Mimir uses the following rule:
All playtime for a game is assigned to all of its tags.
This means:
- A game with 3 tags contributes 100% of its playtime to each tag
- Tag totals therefore overlap
- Tag-level metrics should be considered non-conservative
This approach is intentional because:
- Tag weights are unknown
- Tag vote counts are not publicly available
- Any proportional split would be arbitrary
As a result, tag analysis should be interpreted as:
Tag-associated playtime, not exclusive playtime.
Tag Analysis
As of March 2026, there are approximately 250,000 apps on Steam.
We queried Steam for:
- All apps
- All tags per app
- Total playtime per app
- Historical playtime data
This allows several types of tag-level analysis.
1. Tag Pair Occurrence Analysis
For each tag A, we compare it against every other tag B.
For each pair, we calculate:
- Number of games with both A and B
- Number of games with A but not B
- Number of games with B but not A
These values can be plotted as:
- X axis → Games with both tags (A ∩ B)
- Y axis → Games with only one tag (A ⊕ B)
This produces four regions.
Region 1 — High Y, Low X (Top Left)
Many games have A or B, but few have both.
Interpretation:
- Tags rarely combined
- Possible unexplored design space
Region 2 — High Y, High X (Top Right)
Many games have both tags, and many exist overall.
Interpretation:
- Very common combination
- Likely saturated
- Low novelty
Region 3 — Low Y, Low X (Bottom Left)
Few games exist with either tag, and few with both.
Interpretation:
- Niche or uncommon tags
- Small market
- High uncertainty
Region 4 — Low Y, High X (Bottom Right)
Many games have both tags, but few exist outside the pair.
Interpretation:
- Tags strongly linked
- Combination defines a sub-genre
Example:
- Roguelike + Deckbuilder
This analysis is useful for:
- Market saturation detection
- Genre discovery
- Design space exploration
- Identifying unusual combinations
2. Tag Playtime Popularity Over Time
Using historical playtime data, we can calculate total playtime per tag for each time period.
Because tags overlap, this measures:
Total playtime associated with a tag, not exclusive playtime.
This allows:
- Trend detection
- Rising genres
- Declining genres
- Long-term popularity shifts
Examples of possible insights:
- Survival popularity spike
- Battle Royale boom
- Roguelike growth after 2018
3. Top Game in Each Tag
For each tag, we find the game with the highest total playtime.
This identifies:
- Dominant titles per genre
- Tag monopolies
- Tags defined by a single game
Examples of possible results:
- MOBA → Dota 2
- Battle Royale → PUBG / Apex / Fortnite (not on Steam)
- Factory → Factorio / Satisfactory
This analysis helps determine:
- Whether a tag is broad or narrow
- Whether success is concentrated or distributed
4. Tag Playtime Breakdown by Year
For each year, total playtime is summed across all games and grouped by tag.
Results are visualized as:
- Pie charts
- Stacked charts
- Percent share of total playtime
This shows:
- Market composition changes
- Genre dominance over time
- Shifts in player preference
Example observations:
- FPS dominance in early 2010s
- Indie tags growing after 2015
- Roguelike / Survival growth after 2018