Methodology
How War Room sources, calculates, and refreshes the data behind every price, pop report, and ROI estimate. Last reviewed: 2026-05-17.
Data sources
| Source | What we use it for | Refresh cadence |
|---|---|---|
| pokemontcg.io | Card catalog, set metadata, card images | Weekly (Sundays) |
| PriceCharting | PSA-graded prices (PSA 7/8/9/9.5/10), pop-report mirror | Pop: nightly · Prices: weekly |
| TCGplayer | Ungraded market price, real-time inventory signals | Daily catalog refresh |
| eBay (Browse + sold-listings) | Recent sold comps, arbitrage signal, deal alerts | Live (on-demand) + nightly digests |
| Pokémon Center, Target, Walmart, Best Buy | Sealed-product restock + retailer pricing | Polling every 60-300 seconds |
How we calculate comps
A "comp" is a recent sold-listing price for the same card in the same condition. We pull from eBay sold listings (the industry gold-standard for fair-market valuation because they reflect actual buyer-seller settlement, not ask prices) and supplement with TCGplayer market data. For graded cards we filter sold listings by cert range and grading service to avoid mixing raw + graded sales. Outliers (greater than 2 standard deviations from the median) are flagged and excluded from the displayed range.
Grading ROI math
Every card with both an ungraded price AND a PSA-10 price shows two ROI figures:
Default PSA grading fee assumes the "Value Bulk" service tier ($25/card); this is configurable per user. Critically, the ROI assumes a PSA 10 outcome — the actual gem rate per card (percentage of submissions grading PSA 10) is shown next to the ROI so you can adjust expectations. A card with 1% gem rate and a +500% PSA 10 uplift has an expected value of +5%, not +500%.
Pop reports
Pop (population) reports show how many copies of a card have been graded by PSA at each grade. Lower pop counts at high grades typically indicate scarcity and drive premium prices. We mirror PriceCharting's pop dataset and join it to our catalog via a normalized card key ({name}::{set}::{number}). Cards where the catalog set name doesn't match PriceCharting's slug fall back to a secondary lookup by (card name, card number) with set-slug disambiguation — this catches the vintage Base / Jungle / Fossil / Neo set where naming conventions diverge.
Honest limitations
- ~50% of cards have no PSA pop data. Mostly promo sets (SWSH/SM/XY Black Star Promos) where PriceCharting doesn't track the per-card pop. Card pages still render the catalog metadata + image but skip the pop/price sections.
- Prices may lag. The weekly refresh cycle means displayed prices can be up to 7 days stale. For fast-moving cards (event-driven spikes), use the live Price Check tool which pulls real-time eBay data.
- Foreign-language and graded-variant cards may be missing or mis-priced. Our catalog and pop data is English-Pokémon TCG; Japanese print runs, Korean variants, and stamped promos can confuse the join logic. We're working on it.
- We are not affiliated with Nintendo, The Pokémon Company, PSA, or any of the marketplaces we aggregate. Data is sourced from publicly available endpoints; trademarks and copyrights remain with their owners. War Room is an independent analytics platform.
Questions about the methodology? contact@tcgwarroom.com