Methodology
How Foil computes the buy signal
Last updated 2026-06-12
Some per-card pages show a buy signal: a calm read on whether the current asking price sits below, at, or above what the card has recently sold for. It is not advice and it is not a price prediction. It is one number, computed the same way every time, and the method is laid out here so you can judge it yourself.
What we compare
The signal compares the current best asking price we surface against the card's recent sold prices over the last 30 days. Today that reference is the 30-day sold average reported by our pricing source, weighted by how many sales each condition tier carried. We say average, not median, because that is what the number currently is. When a per-sale feed becomes available, the same classifier runs on the median of individual sales, which resists outliers better than an average. We would rather name the limitation than imply a precision we do not have.
The three states and the thresholds
The asking price is classified against that reference with a 10% band. Below 30-day sold means the ask is more than 10% under the reference. Above 30-day sold means it is more than 10% over. At 30-day sold means it is within 10% either way. The band is deliberate: a tighter cutoff would flip the signal on normal day-to-day noise, and a wider one would call meaningful gaps a tie. The percentage you see is the exact distance from the reference, rounded to one decimal.
Condition matters, so we filter it
A raw card and a graded slab are different markets, and a PSA 10 can trade at many times the raw price. When the asking price is for a raw copy, graded-slab sales are excluded from the reference. Comparing across condition would produce a confident number that means nothing, so we do not do it. Condition is read from the data we have, which is itself imperfect, and the limitations section below is honest about where that can go wrong.
Matching the listing to its condition
A buy signal is only honest if the asking price and the sold reference describe the same thing. The live listing rarely states its condition in a structured field, so we infer it from the title: explicit grades like PSA 10, raw phrases like Near Mint or Lightly Played, and their abbreviations. We then compare the ask against the sold average for that exact condition, never against a different one. When the title gives no clear condition, or names a different market, a lot, or a likely reproduction, we infer nothing and show no signal. We also refuse to classify an ask that sits below half the lowest sold tier on the card: at that point it is almost certainly damaged, mislabeled, or not the card it claims to be, and calling it a deal would be the opposite of useful. This is deliberately conservative. A missing signal means we were not confident enough to stand behind one, which is the honest outcome on a thin or mismatched listing.
Why some cards show no signal
If fewer than five comparable sales exist in the 30-day window, we show no signal at all. A reference built from two or three sales is not a market read, it is a coincidence, and a badge would lend it a confidence it has not earned. Blank is the correct output for a thin sample. You will see this most on low-volume cards, vintage, and obscure printings, and that is working as intended rather than a gap to paper over.
Known limitations
Three things to keep in mind. First, the 30-day window weights recent activity, so a single active week can pull the reference up or down, and the signal trails a fast move rather than predicting it. Second, the reference is currently an average, not a median, so a few unusual sales influence it more than they should until per-sale data lets us switch to a true median. Third, condition is inferred, and a mislabeled listing can skew a comparison in either direction. A buy signal is only as honest as the data beneath it, which is why we publish the data alongside it.
Where the numbers come from
Every per-card page shows the 30-day sold-price history the signal is built from, broken out by condition, with the sale counts. The signal is a summary of those numbers, not a replacement for them. If a card matters to you, read the history and decide for yourself. The signal is there to save you a calculation, not to make the call.
Foil machines
How Foil machine prices are set
Foil is preparing to operate Pokemon card vending machines under the FoilTCG brand. No machine is placed yet. The pricing policy is published here first, before the first placement, so it is on the record rather than discovered later.
Machine product is convenience-priced above the market
A sealed pack from a Foil machine will cost more than the best price you can find online, including the prices this site surfaces. That premium is the price of the machine being there: stocked, working, and in front of you. The two sides of Foil are different products. The deal-finder on this site exists to get you the lowest credible price and is free to use. The machine exists for the moment you want sealed product in your hands right now. We will never describe a machine price as a deal, because it is not one.
Machine inventory never influences what this site shows you
The listings this site selects, the rankings on the deals board, and the buy signals are computed with no knowledge of what any Foil machine stocks, holds, or needs to sell. That separation is structural, not editorial: the code that selects and ranks listings has no access to machine inventory, and keeping it that way is a standing engineering rule with its own automated checks. If Foil machines are ever overstocked on a product, this site will not know and cannot care.
Per-customer purchase limits, printed on the machine
Every Foil machine will carry a per-customer purchase limit, stated on the machine itself. Limits are how product stays available to the person who walks up rather than the person who empties the machine to relist it. The limit is part of the offer, not fine print.
The gap is shown at the machine, not hidden
Each machine will link to this site's live price view for the products it stocks, so the difference between the machine price and the online market is visible at the point of sale, on our own screen. We would rather show you the premium and let you choose than have you discover it afterward. If the convenience is not worth it to you, the better online price is one scan away, and we are pointing at it ourselves.