How PokéPrice Pricing Works
April 29, 2026 · 6 min read
Every card page on PokéPrice shows a stack of numbers — market, low, mid, high, sometimes a tokenized floor and a percentage swing. None of those are made up, but they do come from different places, refresh on different schedules, and mean different things. This guide walks through exactly where each price comes from so you can read a card page with confidence.
Two distinct data sources
PokéPrice draws from two independent sources, and we keep them visually separated on the card page so it is always clear which is which:
- TCGPlayer-derived market prices — the standard ungraded raw card prices most collectors anchor to. Sourced from the public Pokémon TCG API.
- Tokenized marketplace listings — live floor prices from on-chain platforms like Collector Crypt, where physical cards held in vaults are traded as tokens. Sourced by scraping public listing data.
These are two different markets. A card that sells for $50 on TCGPlayer can have a tokenized floor of $42 or $58 — not a discrepancy, just a different group of buyers and sellers. We show both so you can see where each market stands.
How TCGPlayer-derived prices work
The Pokémon TCG API publishes price data sourced from TCGPlayer for every card in the modern catalog and most vintage sets. For each card we pull four price points per print variant:
- Market — typical recent selling price, weighted toward recent sales. The most useful number for valuation.
- Low — the cheapest current asking price across active listings.
- Mid — the midpoint of the listing range.
- High — the most expensive current listing. Almost never the realistic selling price.
A single card can have several variants priced separately — Normal, Holofoil, Reverse Holofoil, and for vintage cards 1st Edition vs Unlimited. PokéPrice keeps them in their own columns so a Normal Charizard never gets confused with a Holo Charizard.
How often prices refresh
Two background jobs keep the data fresh, both triggered automatically:
- Daily TCG sweep — runs once per day, walks the entire ~20,000-card catalog, and updates market/low/mid/high for every variant. A successful run takes roughly 20 seconds with an authenticated API key, longer when rate-limited.
- Hourly tokenized refresh — runs every hour at 15 minutes past, crawls 25 pages of marketplace listings each run, and rebuilds the floor-price table. A full catalog sweep wraps every ~28 hours.
Each price update writes a snapshot to a history table, which is what powers the percentage-change indicators and any future trend charts. Nothing is overwritten without leaving a trail.
What the tokenized floor price means
On the tokenized side we display a "floor" — the cheapest currently-listed copy of the card on a given platform, broken down by grade and language. This is fundamentally different from TCGPlayer market price:
- It is an asking price, not a sold price. A floor is what someone is willing to sell for right now, not what the card recently sold for.
- It is grade-aware. A PSA 10, PSA 9, BGS 9.5, and ungraded copy each have their own floor.
- It is language-aware. English and Japanese copies are tracked separately so you do not accidentally compare a JP floor to an English market price.
Listings denominated in cryptocurrency get converted to USD at write time using a public spot rate (currently CoinGecko for SOL/USD). If the spot rate is unavailable we drop the listing for that run rather than store an unconverted price — better to under-report than to display a SOL number formatted as if it were dollars.
How tokenized listings get matched to cards
Tokenized marketplaces use their own naming for cards (e.g. "PSA 10 1999 Pokémon Base Set Charizard #4 Holo"). To attach a floor price to the right card page, every listing has to be mapped to the same canonical card record we use for TCG prices. This is non-trivial — set names, card numbers, and language hints all live in one free-text field, often with grader and grade interleaved.
The mapper parses the listing name into structured fields (card number, name, language, grader, grade), looks up candidate cards by number, and picks the best match using word-sequence containment plus a set-name tiebreak. Any listing the parser can not confidently match stays unmapped — better to skip a price than to attach the wrong one to a card page.
What PokéPrice does not price (yet)
A few things to be upfront about — the absence of a price is information too:
- Graded raw-card prices on the TCG side. The headline market price assumes Near Mint ungraded. PSA/CGC/BGS pricing varies by grade and is not in the TCG API. For graded raws, eBay sold listings are still the standard.
- Sealed product (booster boxes, ETBs, packs). PokéPrice is a single-card pricing tool today.
- Japanese-language sets that are not in our card catalog. These show up unmapped on the tokenized side and have no TCG price page.
- Foreign-language cards beyond English and Japanese. Same story — no catalog coverage means no price page.
Honest caveats
A pricing tool is only as good as its inputs. A few things worth knowing:
- TCGPlayer prices reflect the US market. International collectors may see different real-world prices on Cardmarket, Yahoo Auctions Japan, etc.
- Tokenized floors can be thinly traded. A floor of $42 on a card with one listing is less informative than a floor on a card with twenty.
- Price spikes from breaking news (a tournament result, a pull video going viral) take a day to show up via the daily sweep. Tokenized floors react faster — usually within an hour.
- Outlier listings are not currently filtered. A clearly-mispriced $0.01 listing will pull the low price down even though no real buyer would treat it as the market.
TL;DR
- TCGPlayer-derived market/low/mid/high prices come from the public Pokémon TCG API and refresh once per day.
- Tokenized floor prices come from scraping public marketplace listings (currently Collector Crypt) and refresh hourly.
- Each variant — Normal, Holo, Reverse Holo, 1st Edition, Unlimited — is priced separately. Vintage cards fall back through 1st Edition and Unlimited buckets.
- Tokenized floors are grade-aware and language-aware; crypto-denominated listings get converted to USD at write time.
- We do not price graded raw cards, sealed product, or sets we have not ingested into our card catalog.
- When a price is missing, that is information — it means we did not have confident data, not zero value.