METHODOLOGY v1.1 · 2026-09-03
How we get to a number.
Nobody else in this category publishes this page. That is the point of it. If you think a figure here is wrong, this document should let you work out why without asking us — and if it still looks wrong after that, it probably is, and we want to hear about it.
1. What this is, and what it is not
This is an estimate of recent market price for a specific printed product. It is not an appraisal, not an offer, not a valuation for insurance or probate, and not advice about whether to buy anything. Prices move, sometimes violently.
Every figure is derived from published market data, not from our opinion, and every figure carries its range and its capture date on the same screen. There is no code path in this application that can render a price without them.
2. Where the data comes from
| Source | TCGCSV — a public daily republication of the TCGplayer catalog and market price |
|---|---|
| Refresh | Daily, approximately 20:00 UTC. The app shows the age of its own index at all times. |
| Coverage | Every Pokémon set TCGCSV publishes, English-language, priced products only. |
| Retrieval | Bulk, with an identifiable User-Agent, within the publisher's documented rate limit. We do not scrape and we do not route around any access control. |
3. What we deliberately do not have
This is the more useful half of the page.
No condition dimension
marketPrice is a condition blend. The feed does not
publish per-condition prices, so we do not display Near Mint / Lightly Played / Moderately Played figures.
Other tools show them anyway. We think inventing a number and labeling it as measured is the single most
damaging thing a price tool can do. A Near Mint copy trades above our figure; a played copy below it.
No graded prices
PSA, BGS, CGC and SGC prices are not in this feed. We show nothing for slabs rather than a guess. A graded card can trade at many multiples of its raw price and extrapolating from raw would be fiction.
No individual sold comps, and no sale counts
We cannot show you "14 sales in the last 30 days" because no feed available to us publishes per-card sale counts. Any product showing you a sample size it did not measure is showing you a decoration. We would rather have the empty space.
4. Un-mixing: the thing that actually causes "too much variation"
Most apparent price volatility in this hobby is not volatility. It is several different products stacked under one name.
- Base Set Charizard exists as Shadowless, Unlimited and 1st Edition printings that trade orders of magnitude apart.
- A single modern set can contain several products called "Pikachu ex" separated only by a collector number in small type, spanning tens of dollars to hundreds.
- Reverse holo, holo and normal print runs of the same card are different products.
So we refuse to price a card until you have told us which print you are holding. Where a card has more than one print, the app blocks and asks. That extra tap is deliberate: a confident wrong price quoted in front of a seller costs more than a second of your time.
5. How each number on the screen is calculated
Market
Published marketPrice for that exact product, passed through unmodified. We do not smooth
it, re-weight it, or blend it with anything.
The range
Published listing lowPrice to highPrice for the same product. This is the
dispersion you are actually facing.
Delivered elsewhere
market × (1 + tax) + shipping. Our stated assumptions are 7% tax and
$5.00 shipping, arriving in roughly 8 days. These are assumptions, they
are shown on screen every time they are used, and your real numbers will differ.
What condition is this price for?
Our source documents its own answer, and we quote it rather than paraphrase: market price
will roughly center around Near Mint (NM) or Lightly Played (LP) listings, but not always. Older
cards will tend to settle on whatever's available and whatever's moving including Heavily Played (HP)
sales.
So every figure on this site now says which of those it is, decided by the set's own publication date. Sets from 2011 onward are labeled ≈ Near Mint / Lightly Played. Sets before 2011 carry an explicit warning that the figure blends played copies — that band is 23% of the rows in our index but 33% of its total value, so it is exactly where the money is and exactly where the number is softest.
This matters more than it sounds. A well-known free price site lists Base Set Charizard at about $345 ungraded; our index says $868.56. Both are defensible and the entire gap is which condition population is being priced. Without the label, one of us simply looks wrong.
Graded cards are a different market and this tool does not price them. There is no condition selector here because our source does not carry a condition dimension — inventing one would mean inventing numbers, which is the one thing this site will not do.
Your max
market × (1 − your target saving), where the target saving is the slider you control,
defaulting to 15%.
This is the one genuinely opinionated number here, and the opinion is small: buying in person should be cheaper than what the card is worth, because you are paying cash today, carrying the condition risk yourself, and saving the wait.
It used to be calculated from the delivered cost, and that was wrong. Postage is a flat charge per card, so on anything cheap it dominated: a card worth $1.17 produced a walk-away of $5.31, and the tool told you that paying four times what a card is worth was inside your budget. Measured across the whole index, 89.3% of cards — 39,687 of 44,418 — recommended paying more than market. It only stopped inverting above $46.96, and two thirds of the catalog is cards under $5.
The walk-away is now anchored to what the card is actually worth, which is a number that cannot invert. The delivered cost is still shown, because what it would cost you online and how long it would take is worth knowing — it just does not set the price any more.
Note what this number is not. It is a budget for you, not a verdict on the seller. We do not render "OVERPRICED" over another person's property. Evidence in negotiation research is fairly clear that a price claim advanced by the counterparty is discounted on arrival — so the app is built to tell you what to do, not to tell them what they are doing wrong.
6. When we refuse to show a number
We refuse when the feed contradicts itself: when a product's market price falls outside its own published low-to-high listing band, the two figures cannot both be describing the same card, and we will not choose between them. That is 9.5% of the 44,418 products we carry.
We used to refuse on listing spread instead — anything wider than 12× from low to high. That was wrong, and we changed it. The high figure is the dearest asking price on the site, not a sale, so a single optimistic seller could push any card over the line. Judged that way we refused 79.8% of the catalog: not a refusal path, a default. Spread is a measure of how much sellers disagree, not of how uncertain the price is.
Everywhere else you now get the number and a confidence bar built from the midpoint against the low listing, which ignores that one outlier: 15.5% tight, 38.3% normal, 17.4% wide, 19.3% very wide. A very wide card still shows its figure — you are standing at a table and need an answer — but the bar and the wording tell you plainly how far to trust it.
You will also see nothing rather than something where a product has no published price. Silence is an honest state.
7. Corrections
If a number here is wrong, or a card is resolving to the wrong print, tell us and we will fix it and log it. Mis-resolving a variant is a genuine defect, not a matter of opinion, and it is the failure mode we care most about.
A dedicated corrections address is being set up. Until it is live, use the contact route on the site you reached us through — corrections are logged either way.
8. Accuracy
We do not yet publish a measured error rate, and we are not going to claim one we have not measured. Doing it honestly means predicting a future published price from today's index and scoring the result out of sample — genuinely held out, not scored against the same feed it came from. Until that has run for a full quarter, this section says exactly what it says now.
What we can state today: every figure is traceable to a named source and a capture date, and any number the app has ever shown can be regenerated from the stored daily snapshot for that date.
9. Changelog
| Version | Date | Change |
|---|---|---|
| 1.1 | 2026-09-03 | Refusal rule replaced: was listing spread >12× (refused 79.8% of the catalog), now market-outside-its-own-listing-band (9.5%), with a confidence bar on everything else. Base Set editions un-mixed — TCGplayer files Shadowless and 1st Edition under “Base Set (Shadowless)” and labels the shadowless print “Unlimited”; we relabel to Unlimited / Shadowless / 1st Edition and group all three as one card. Search now matches set names and set codes. |
| 1.0 | 2026-07-27 | First published methodology. TCGCSV as sole source; variant gate blocking; 12× refusal threshold; no condition, graded, or sale-count figures. |