FAQ
Frequently asked questions
Short answers on sources, sampling, guesstimates, and what PCGDB does not do. The same notices appear on game pages and the disclaimer, terms, and privacy policy.
Is PCGDB affiliated with Valve or the studios listed here?
PCGDB is an independent catalog operated by Musical Pig LLC. PCGDB is an independent data catalog. It is not affiliated with, sponsored by, or endorsed by Valve Corporation, or any game developer, publisher, or rightsholder listed on this site. Steam and all third-party game titles, logos, and trademarks are the property of their respective owners.
Where does the data come from?
Live concurrent player counts, review ratios, store prices, news, and depot metadata come from public Steam Web API and store endpoints. Public JSON is cached for 30 seconds; store details are polled about once an hour so we stay inside Valve’s rate limits instead of hitting those endpoints on every page view.
Steam Deck Verified / Playable comes from Valve’s IStoreBrowseService/GetItems platforms.steam_deck_compat_category (3 verified, 2 playable, 1 unsupported). The older store appdetails field is usually empty now, so a title can sit without a Deck mark until that browse sample lands.
Trend charts are append-only from the first sample PCGDB recorded for that appid. Valve does not offer a public history API, so we do not invent backfill. Copies of that series sit off the live disk so replacing the machine does not wipe it. A freeze in samples while Steam is still answering is treated as an incident, not a quiet hour.
How often are player counts updated?
The server runs a rank-based poll queue. Player counts are shown in full, with no rounding.
- Open game pages: about every minute
- Top ~150 titles: every 5 minutes
- Ranks ~151–2,000: every 15 minutes
- Ranks ~2,001–5,000: once an hour
- Ranks ~5,001–15,000: every 4 hours
Searching for or opening a title outside that set takes a live sample on first look and keeps it in a recent-discovery rotation (15-minute samples). While idle, the server also self-seeds from hourly most-played, featured, and top-release lists, plus a leftover Steam-request drip: more new titles when that hour still has room, fewer as it fills. At the 15,000-title cap it still looks for new titles and only admits those beating the current tail CCU. Charts → Tracked lists every public table, how it is ranked, and how often it updates, plus each title’s in-game rank and poll cadence.
Steam HTTP is capped at 20,000 requests per hour. Keyed Web API calls (GetAppList only) are capped at 100,000 per UTC day, matching Valve’s Web API terms. When the hourly ceiling is reached, the last sample stays on screen and updates pause until the hour resets.
What is the 24-hour player change?
Current players minus our last sample from about 24 hours earlier. It stays blank on a new title until that older sample exists.
How do player estimates work?
The Estimates chart on a game page (and the same overlay on Compare) is a PCGDB guess about how many people will be in-game over the next day, week, or month. It is not a Steam forecast, not a Valve number, and not a promise. Valve does not publish a history or prediction API, so the lines are built only from samples PCGDB already stored for that title — plus a quiet hour-of-week profile from other titles that share its store tags.
Polls are uneven (about five minutes at the top of the catalog, up to four hours in the tail), so the first step is to average those samples into hourly buckets. The week shape still uses 168 hour-of-week bins.
The trend is one of four mechanical paths, not a marketing label:
- Launch window — Steam store release date younger than 30 days. Fades toward a quieter floor with a 10-day half-life. A newly sampled old title is not treated as a launch.
- Post-discount — US store price dropped at least 15% in the last 14 days and in-game counts jumped. Fades toward the pre-discount floor.
- Climbing weeks — season-adjusted week-over-week mean up more than 8%. Logistic toward a cap so a hot streak does not run away.
- Weekly pattern — the default. Slope of typical daily 24h peaks (not the overnight troughs, the current sample, or a one-day spike), capped at ±40% per day, then damped (×0.35 and faded in over the first two weeks of history).
The lines are drawn from a small set of terms:
- Seasonal shape s(h) — typical players for that hour of the week, as a ratio of the title’s mean. Empty hours borrow the hour-of-day shape, then the tag cohort, then the catalog average.
- Most likely (weekly pattern) — v(h) = now × (1 + daily × e^(−|h|/168))^(h/24) × s(h) / s(0). h is hours from the last sample. Launch and post-discount mix toward a floor instead of that daily power; climbing weeks use a capped logistic.
- Low / high band — v(h) × (1 ± 1.28 × σ), where σ is how much this title usually misses its typical hour.
- Similar tags — what other games with these tags do that hour, with no trend term.
When at least about 16 days of this title’s hours exist, the game page also shows a 48-hour walk-forward miss (hide the last two days, draw the same model, compare). That is a recent miss, not a 94% accuracy badge. The game page labels the slope of typical daily 24h peaks as Rising, Falling, or Holding, and shows a compact likely range (low, peak, and high) instead of a clock-precise peak. A one-day sale or feature spike does not write that slope. The dashed trend line stays on with Estimates, and saving the chart as PNG includes the future band and estimate lines when Estimates is on. On a phone, Estimates starts at 24 hours. These are guesses. Do not use them for investing, staffing, server capacity, or reporting. The fit gets better as we store more of this title’s own hours — a few days of samples is a sketch; a couple of weeks is a usable week-shape. The same equations sit under “How these lines are drawn” on the game page.
Why is there a guessed line when player samples freeze?
If Steam stops answering PCGDB for the whole catalog (about 20 minutes without a new sample), game-page charts draw a violet dashed continuation from the last good point using that title’s typical hour of the week. It is a fill so the chart does not drop to an empty gap, not a live count and not a promise.
A single title at zero while the rest of the catalog is still updating is treated as that game being down or in maintenance. Those zeros stay on the chart. The fill is only for a catalog-wide stall, the same condition that mails “player samples are stale.”
How do sparklines, the catalog in-game total, and watchlists work?
The 24-hour sparkline on a card is 24 hourly buckets from PCGDB’s own player series for that title — the same samples as the game-page chart, downsampled. Empty until a day of points exists.
The small trend next to the homepage in-game total is the sum of current players across every title PCGDB is sampling, recorded about every five minutes. It is not Steam’s global concurrent user count.
Watchlist and Compare live only in this browser (local storage keys pcgdb_watchlist and pcgdb_compare). PCGDB does not keep an account or a server copy of those lists.
Owned and wishlist is a paste of a public Steam profile. Use steamcommunity.com/profiles/{id} or /id/{vanity}, or a bare steamid64 or vanity. The API returns app ids only, then forgets the steamid. This device remembers the last successful paste so you can refresh without retyping. The ids live in pcgdb_library on this device and can filter charts and deals. That is not the watchlist (max 40). Import is 6 times per hour per address. Missing ids can be queued into the catalog in one click, capped at 20,000 ids, 3 queues per hour — the same ingest path as opening a title. Still ids only.
What are Movers, review velocity, and launcher badges?
Movers ranks titles by how far the current in-game count sits above that game's typical hour of the week, after the stored week shape. A 4-hour spike on a 20-player title does not rank. About 150 people in-game and a day of hourly buckets are the floor. No extra Steam calls.
Review velocity is a daily snapshot of all-time positive and negative counts, the same idea as the 24h player delta. The first sample has no delta. PCGDB does not scrape review text.
Launcher lines come from Steam's official store fields ext_user_account_notice and drm_notice only. That is "Requires EA App", not a Denuvo hunt and not PCGamingWiki.
How are Steam Deck status, similar titles, and price lows determined?
Steam Deck status is Valve’s public compatibility category (Verified, Playable, or Unsupported), not a PCGDB grade.
“Same tags, similar review volume” on a game page is a mechanical overlap: at least one of that title’s first three store tags, plus the same review-count band. It is not a recommendation engine.
Historical low is the lowest price PCGDB has sampled in that store region since ingest — not an official Steam archive. Depot build lists show branch name, build ID, and timestamp only.
How are development cost and Steam earnings estimated?
Development time uses public studio figures or a cited press number when one is on file. Cost to make is headcount × production years × a loaded USD salary per year — or a filing/interview number when we have one. Steam gross earnings (USD) use the Boxleiter method: review count × a copies-per-review band × a mix of regional list and sale prices.
Those figures are independent algorithmic estimates from public data. They are not audited financials, not publisher books, and not Valve. Do not use them for investing, deals, taxes, or reporting.
How does the Hidden gems filter work?
This list is a mechanical filter, not a curated rating. A title appears when it has 200–50,000 reviews, at least 85% positive, 80–15,000 people in-game, a sampled all-time peak under 80,000, and a Steam store release between 60 days and 12 years ago. Rank is review percent, then review volume. Header 18+ and tag filters run first. Review farms and former hits on a quiet week can still appear.
How is release age calculated?
Age is the official Steam store release date measured against current UTC — hours, days, or months. It is not a fixed label.
Is there an iPhone or Android app?
Yes. Official App Store and Google Play apps from Musical Pig LLC wrap the same catalog as the site — no second database, no accounts, no extra telemetry. Watchlist and filters stay on that device. Steam store links open in the system browser.
Get them from the iOS and Android page. Listings show as coming soon until the store IDs are set.
What does the Steam AI disclosure filter mean?
Steam’s store page can show an official heading, “AI Generated Content Disclosure”. That is Valve’s own listing, not a PCGDB score. We do not read store descriptions looking for the word AI. The developer’s explanation stays on Steam.
The filter chips “AI disclosed” and “No AI Disclosure” use that same heading. “No AI Disclosure” means our last snapshot did not see the heading. It is not a claim the game is AI-free. Developers can add or remove the heading later.
How do I use the public API?
JSON endpoints over HTTPS. No API keys or accounts required. CORS supports GET, HEAD, POST, and OPTIONS. Standard rate limits apply at 120 requests per minute per IP address and 120 distinct titles per hour. JSON responses are cached for 30 seconds; the CSV export is updated as a 5-minute snapshot. Operated by Musical Pig LLC. Endpoint list, rate limit, and cache times are on the Public API page.
Does PCGDB log who visits?
No accounts, no advertising IDs, no stored IP addresses. The API keeps an hourly count per route template and Steam appid (when the path has one) so we know which endpoints and titles are used. An appid names a game, not a person. The same address is not counted twice for that template and appid in the same hour; that check lives in RAM and is discarded when the hour ends. Charts → Lookups ranks those unique-ish game-page opens. Charts → Searches ranks titles that appeared in search results. Search box text is not stored. Paste-import of a public Steam profile is a website feature, not a published API, and is counted the same way (the library route, once per address per UTC hour). It needs the short-lived website cookie; a script without that cookie is refused. The profile URL is not stored on the server. The Privacy Policy is the full account of what stays on this device and what the service counts.
How do I request a takedown?
Rights holders who want a listing hidden from PCGDB can write support@musical-pig.com with the Steam appid, or follow the DMCA policy. We can omit that title from pages without rewriting sampled charts. Use that same address for every copyright notice. There is no second inbox.