How we price a Pokémon card

Every number on a PokeInvest card page is a median of real completed sales at that exact grade and grading company, and you can click it to see the sales. This page is the whole method — including the parts we are still not happy with.

730,000+completed sales collected
7marketplaces
6grading companies priced separately
every nightrecomputed, then checked before it goes live

The problem with one price

A card does not have a price. A raw Gengar EX, a PSA 9, a PSA 10, a CGC Pristine 10 and a BGS Black Label are five different things that sell for five different amounts — on one card we track, $949, $8,700, $26,525, $2,454 and $37,000. Most price guides show you one number, or a formula: PSA 10 times 1.3 for a BGS 10, times 0.6 for a CGC 10. Those are guesses wearing decimals.

So we don't do that. We collect the actual sales, file each one to a card and a grade, and publish a separate median for every grade at every grading company that has enough of them.

Where the sales come from

The same eBay listing seen twice is stored once. And where eBay shows a best-offer sale at its asking price, we store what the buyer actually paid — on the first batch we corrected, the accepted price averaged 17% under the ask.

How a sale is filed

The grading company has to be named in the listing. "PSA 10 potential" and "gem mint candidate" are raw cards, and they count as raw. Tiers above 10 are their own thing: CGC Pristine 10 is not a CGC 10, and a BGS Black Label is not a BGS 10 — on one card the Black Label sold for $8,000 against $3,500 for the gold label. Auction-house wording ("PSA NM-MT 8", "PSA PR 1") is read too.

Sales are set aside, with the reason recorded, when they are not the card: another language's printing filed under the English card, a card number the title contradicts, a lot or playset sold as one listing, a proxy, or a raw card described as damaged. They are never deleted; they just don't count.

How the number is made

Checked before it goes live

Every night the whole table is recomputed and compared with the last good run. A price that moved more than 60% on fewer than five sales, a price with too few sales, a price whose newest sale has fallen outside its window — any one of those stops the run, and nothing is published until a person has looked. This has happened three times; each time it was a correction working (a Japanese copy leaving an English bucket) and was accepted by hand.

Two readers read every listing title. Rules do the filing. A second, independent reader — a language model running on our own hardware — reads each title again and flags any it thinks was filed to the wrong card. Where the two disagree is where we look; its first pass found three rules we then fixed.

And we audit by hand. On 27 September 2026 we read 200 random sales behind published prices, one by one: the grade was right on all 200, the card on 197. The three misses were one pattern, now caught.

What we don't do yet

See it on any card

Open a card page and click any price in the table. You'll get every sale it was made from — date, amount, listing — and a link to buy the same grade now. If a number looks wrong to you, the sales are right there to argue with. That is the whole point.

Want the numbers in your own tools?

The Data API returns every grade at every grader for a card, with sale counts, windows and direction — the same table, as JSON.

Method as of 30 September 2026. When it changes, this page changes.