Skip to main content
HyperPotion
Methodology

How we price a card

A working tour of the model behind every HyperPotion call: what goes in, what comes out, and what we don't pretend to know.

91%Price variation explained88%Out-of-sample, leave-one-set-outDailyRefresh and recompute

The question we're answering

HyperPotion isn't trying to predict where a card's price will be next week. We're answering a narrower, sturdier question: what is this card actually worth right now, given everything we can observe about supply and demand, and is the market trading above or below that number?

“Think of it like a bond yield. There's a model number, and there's what someone's actually paying. We measure the gap. The gap is the call.”

What goes into fair value

Four real drivers do most of the work.

Pull costHow much sealed product you'd have to rip to find one copy. The rarer the chase, the steeper the floor.
Character demandThe reason Pikachu costs more than Pansage at the same rarity slot, year in and year out.
Grading economicsA PSA 10 is worth more on a card where 10s are hard to make, and less where the gem rate is generous.
Trade paceHow often a card actually changes hands. A card that trades ten times a week sits on a very different floor from one that moves once a month.

Everything else (set name, hype cycles, who tweeted what) is noise we let the data filter.

The two-tier model

Tier ACards with enough PSA 10 sales history that we can anchor fair value directly to graded comps. The slab market does the heavy lifting, and we follow.
Tier BEverything else: cards where graded volume is thin. Instead of pretending we have data we don't, we price them off the fundamentals: pull cost, character premium, gem rate, velocity.

The split exists because being honest about what we know is more valuable than pretending one model fits everything. On the cards it trained on, the model explains 91% of price variation and, more to the point, 88% out-of-sample, where we hold back a whole set, predict it cold, and check the damage (leave-one-set-out). That second number is the bar we hold it to, because it's the one that says anything about cards the model has never seen. It measures how well fair value fits today's prices, not how well it calls tomorrow's.

From fair value to a verdict

The residual is the gap: market price against fair value, as a percent. A 10% gap on a Hyper Rare doesn't mean the same thing as a 40% gap on a Special Illustration Rare; different rarities have different normal volatility, so a flat threshold would lie to you. Per-rarity cutoffs mean a Strong call always reads the same way: this is a big number for this kind of card.

Latias & Latios GX · RawMarket $83.20 · Fair $301.63
Today's sharpest raw discount on the board. The dot is the market price; the line is fair value. Residual ▼ 72%, a Strong call.
StrongA gap past the model's strict cutoff for this rarity.
WatchA gap beyond 15%, short of the strict cutoff.
LeanA 5–15% gap. Directional only; not enough to act on alone.

How it updates

Every day we pull the latest sold prices, recompute fair value for every card we cover, and refresh every verdict and board. A card's fair value moves when its fundamentals move: a new population report, a shift in how fast it sells, a change in pull cost. Today that's 1,053 cards.

What we don't know

It is not a forecast. Fair value describes today. Our backtests never found a reliable way to call where a price goes next, so we do not try.
Thin cards are noisy. When a card sells a few times a month, one odd sale moves the market price. Confidence tiers flag this.
Reprints break the math. A reprint can change pull cost overnight. The model catches up the next morning, not before.
Most of our history is a bull market. The model has seen far more rising prices than falling ones. Read it with that in mind.
Some cards are out of scope. One-of-one promos and hand-cut error cards aren't priced. Neither is news we can't see yet, like a character's TV reboot.

Going deeper

Some boards rest on their own method, separate from the fair-value model above. Those get their own write-up.

How we measure set heat →Heat is the share of listed supply that sells in a day, measured on the chase cards we track from each set. Why the board reads it against a set's age, the movement signal we tested and did not ship, and every limit in the data behind it.
Spotted a number that looks wrong? Tell us and we'll look at it.