


I built a fair value model for PSA 10 slabs and logged every call for 2 months. Here's how it did
I built a model that prices PSA 10 slabs off fundamentals like population, gem rate, pull rate, character, age and print run. It spits out what a slab should be worth, then flags it as underpriced, overpriced, or fairly valued.
I wanted to build something that could help me decide when it was a good time to purchase a card or find cards that were undervalued before they jumped up in price.
I've been logging every call daily for a bit over two months now, 1,723 slabs.
The first chart, green is everything it called underpriced and red is everything it called overpriced. Grey is the slabs it deemed fairly priced.
Underpriced ended at +11.3%, overpriced at −7.7%. That's the average price move since the day each call was made.
The grey line is the one I'd actually look at first. Those are the slabs the model had no opinion on and they finished flat at −0.5%. If those had run too it would just mean the whole market moved and my calls didn't mean anything.
The second chart splits it by how sure the model was on each call. Every call gets a conviction label of strong, watch, or lean. Strong means the gap cleared my threshold outright, watch and lean are progressively smaller gaps.
Strong underpriced calls are at +17.6% and strong overpriced at −14.8%, so 32 percentage points between the two ends.
Every card's individual call is free to look at on hyperpotion.io if you want to pick holes in it.
What surprised me is the conviction tiers lined up in order both ways. Strong beat watch beat lean going up, and the same going down. I wasn't expecting the confidence labels to hold up that cleanly.
Two months isn't a super long track record, but it is the first read I've got, and I'll keep posting it as more accumulates whether it holds up or not.