Dataset Preview
Duplicate
The full dataset viewer is not available (click to read why). Only showing a preview of the rows.
The dataset generation failed because of a cast error
Error code:   DatasetGenerationCastError
Exception:    DatasetGenerationCastError
Message:      An error occurred while generating the dataset

All the data files must have the same columns, but at some point there are 1 new columns ({'genre'}) and 1 missing columns ({'category'}).

This happened while the csv dataset builder was generating data using

hf://datasets/crawlora-net/steam-catalog/data/genres.csv (at revision 8b63f2b8913bc67df41c35b6d5f011bc2439eb18), ['hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/categories.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/genres.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/ownership-concentration.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/platform-by-year.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/price-tiers.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/pricing-by-year.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/release-years.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/review-by-genre.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/review-tiers.csv']

Please either edit the data files to have matching columns, or separate them into different configurations (see docs at https://hf.co/docs/hub/datasets-manual-configuration#multiple-configurations)
Traceback:    Traceback (most recent call last):
                File "/usr/local/lib/python3.14/site-packages/datasets/builder.py", line 1848, in _prepare_split_single
                  writer.write_table(table)
                  ~~~~~~~~~~~~~~~~~~^^^^^^^
                File "/usr/local/lib/python3.14/site-packages/datasets/arrow_writer.py", line 765, in write_table
                  self._write_table(pa_table, writer_batch_size=writer_batch_size)
                  ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                File "/usr/local/lib/python3.14/site-packages/datasets/arrow_writer.py", line 773, in _write_table
                  pa_table = table_cast(pa_table, self._schema)
                File "/usr/local/lib/python3.14/site-packages/datasets/table.py", line 2378, in table_cast
                  return cast_table_to_schema(table, schema)
                File "/usr/local/lib/python3.14/site-packages/datasets/table.py", line 2306, in cast_table_to_schema
                  raise CastError(
                  ...<3 lines>...
                  )
              datasets.table.CastError: Couldn't cast
              genre: string
              games: int64
              -- schema metadata --
              pandas: '{"index_columns": [{"kind": "range", "name": null, "start": 0, "' + 495
              to
              {'category': Value('string'), 'games': Value('int64')}
              because column names don't match
              
              During handling of the above exception, another exception occurred:
              
              Traceback (most recent call last):
                File "/src/services/worker/src/worker/job_runners/config/parquet_and_info.py", line 1369, in compute_config_parquet_and_info_response
                  parquet_operations, partial, estimated_dataset_info = stream_convert_to_parquet(
                                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~^
                      builder, max_dataset_size_bytes=max_dataset_size_bytes
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  )
                  ^
                File "/src/services/worker/src/worker/job_runners/config/parquet_and_info.py", line 948, in stream_convert_to_parquet
                  builder._prepare_split(split_generator=splits_generators[split], file_format="parquet")
                  ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                File "/usr/local/lib/python3.14/site-packages/datasets/builder.py", line 1694, in _prepare_split
                  for job_id, done, content in self._prepare_split_single(
                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~^
                      gen_kwargs=gen_kwargs, job_id=job_id, **_prepare_split_args
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                  ):
                  ^
                File "/usr/local/lib/python3.14/site-packages/datasets/builder.py", line 1850, in _prepare_split_single
                  raise DatasetGenerationCastError.from_cast_error(
                  ...<4 lines>...
                  )
              datasets.exceptions.DatasetGenerationCastError: An error occurred while generating the dataset
              
              All the data files must have the same columns, but at some point there are 1 new columns ({'genre'}) and 1 missing columns ({'category'}).
              
              This happened while the csv dataset builder was generating data using
              
              hf://datasets/crawlora-net/steam-catalog/data/genres.csv (at revision 8b63f2b8913bc67df41c35b6d5f011bc2439eb18), ['hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/categories.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/genres.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/ownership-concentration.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/platform-by-year.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/price-tiers.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/pricing-by-year.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/release-years.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/review-by-genre.csv', 'hf://datasets/crawlora-net/steam-catalog@8b63f2b8913bc67df41c35b6d5f011bc2439eb18/data/review-tiers.csv']
              
              Please either edit the data files to have matching columns, or separate them into different configurations (see docs at https://hf.co/docs/hub/datasets-manual-configuration#multiple-configurations)

Need help to make the dataset viewer work? Make sure to review how to configure the dataset viewer, and open a discussion for direct support.

category
string
games
int64
Family Sharing
9,579
Single-player
9,075
Steam Achievements
6,800
Steam Cloud
5,007
Steam Trading Cards
4,357
Multi-player
3,670
Full controller support
3,558
Co-op
2,121
PvP
1,955
DualShock Controller Support
1,888
Online PvP
1,765
DualSense Controller Support
1,722
Partial Controller Support
1,709
Online Co-op
1,513
Steam Leaderboards
1,241
Remote Play Together
1,050
Remote Play on TV
990
Steam Workshop
935
Shared/Split Screen
906
In-App Purchases
838
null
5,940
null
4,797
null
4,091
null
2,534
null
2,523
null
2,502
null
2,320
null
1,307
null
574
null
570
null
422
null
371
null
84
null
41
null
39
null
30
null
23
null
23
null
20
null
19
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
3,528
null
2,627
null
2,007
null
1,429
null
382
null
27
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
2
null
1
null
3
null
2
null
4
null
1
null
2
null
4
End of preview.

Steam Catalog Dataset — State of Steam 2026

Open aggregate data behind The State of Steam 2026, a study of the top 10,000 Steam games by owner estimate. Every field is a public storefront / third-party-estimate fact — no personal data.

Built by Crawlora by dogfooding its own APIs: the game universe is seeded from SteamSpy's owner-ranked all pages and enriched with the public Steam storefront (appdetails). The full dataset is queryable live at https://api.crawlora.net/api/v1/datasets/steam-games/search (and via the datasets_steam_games_* MCP tools).

What's inside

File Description
data/summary.json The full aggregate rollups behind the study — pricing by year, review-tier & price-tier distributions, top genres, ownership concentration (Pareto), platform-support trends by year, review sentiment by genre.
data/sample.jsonl 200 sample game records (top by owner estimate), one JSON object per line — the shape of the queryable dataset.
data/pricing-by-year.csv Titles, free-to-play share, median/mean paid price by release year (2006–2026).
data/platform-by-year.csv Native Linux and Mac support share by release year.
data/review-tiers.csv Games per Steam review tier (Overwhelmingly Positive … Very Negative).
data/genres.csv Games carrying each Steam genre tag (multi-tag; shares add past 100%).
data/categories.csv Games carrying each Steam category (Family Sharing, Single-player, …).
data/price-tiers.csv Games per list-price tier (free, under $5, … $30+).
data/release-years.csv Games per release year.
data/review-by-genre.csv Titles, median review score, free share per genre.
data/ownership-concentration.csv Owner share held by the top 1/5/10/25% of games.

The CSVs are flat cuts of the same rollups in data/summary.json — pick JSON for programmatic use, CSVs for a quick load into a spreadsheet or pandas.read_csv.

Sample record fields

appid, name, developer, publisher, is_free, price_cents, initial_price_cents, discount_pct, price_tier, owners_min/owners_max/owners_midpoint (SteamSpy estimate range), owners_bucket, ccu (peak concurrent), positive/negative/total_reviews, review_score, review_tier (Steam's volume-gated bands), average_forever_min/median_forever_min (playtime), genres, categories, metacritic, recommendations, required_age, release_date/release_year, coming_soon, platform_windows/platform_mac/platform_linux, language_count.

Headline findings

  • Ownership is wildly concentrated. The top 1% of games hold ~33% of all estimated owners, the top 10% hold ~65%, the top 25% hold ~81% — of ≈9.2 billion estimated owner-copies.
  • New-game prices are climbing and free-to-play is retreating. Median paid new-game price rose from $4.99 (2012–2016) to $9.99 (2024); free-to-play's share of new releases peaked ~32% (2019–2020) and fell to ~8% (2024). (2025–2026 have small samples and are caveated in the study.)
  • Mac and Linux support is collapsing despite the Steam Deck. Among top games, native Linux support fell from ~44% (2013) to ~11% (2024) and Mac from ~51% to ~20% — Proton makes native builds unnecessary.
  • Top games skew overwhelmingly positive. ~73% land in a positive review tier, only ~2% negative.
  • Indie dominates. ~59% of top games carry the Indie tag.

Methodology & caveats

  • Universe: the top 10,000 games by SteamSpy owner estimate (of ~10,900 tracked at capture). The head of Steam, not the full ~90k+ long tail.
  • Owner counts are SteamSpy public estimates (ranges), not exact sales. We keep min/max/midpoint; concentration figures use midpoints.
  • review_tier follows Steam's own volume-gated algorithm ("Very Positive" needs 50+ reviews, "Overwhelmingly" 500+), so it matches the store label rather than raw ratio.
  • Recent release years (2025–2026) have small samples; the robust price/platform trends run 2012→2024.
  • Snapshot date: 2026-09-07 (version 2). Version 1 was the 2026-07-11 pull the State of Steam 2026 article cites.

Versions

Version Snapshot Notes
2 2026-09-07 Aggregates re-pulled from the same top-10,000-by-owners universe (304,450 live records). Top 1% hold 32.8% of 8.88B estimated owner-copies (v1: 32.9% of 9.22B); free-to-play 2,023 of 10,000; 2024 median new-game price still $9.99. data/sample.jsonl is unchanged from v1.
1 2026-07-11 The aggregate the State of Steam 2026 article is written against.

License

CC BY 4.0 — free to use with attribution. Cite as:

Crawlora (2026). Steam Catalog Dataset — State of Steam 2026. https://github.com/Crawlora-org/steam-catalog-data

See CITATION.cff.

Downloads last month
38