Every card identification system faces one adversary bigger than blur, glare, or sleeves: the fact that Pokemon has printed the same artwork onto dozens of distinct cards. Base Set and Base Set 2. English and Japanese. Unlimited and shadowless. A scanner that is 95% right sounds impressive until you realize the 5% it misses are exactly the twins where identification changes the price by a factor of ten. This is the story of how our scanner learned to tell twins apart, told through the test suites that forced it to.
Pixels outrank titles
The scanner's founding rule sounds obvious and is not: when the listing title and the photograph disagree, the photograph wins. Sellers mislabel constantly, sometimes innocently (Base Set 2 commons in a Base Set lot), sometimes not (a Japanese promo titled as the English print worth eight times more). Our matcher never reads the title at all. It compares the image against embeddings of every printing in a 58,906-card catalog, reads the collector number printed on the card itself at native resolution, and for slabs, reads the grading label and verifies the cert number against PSA's own registry when possible. Each signal is independent, and they vote.
An accuracy loop is a machine for finding your own bugs
When binder-page scanning measured 66.7%, we did not tune a threshold and hope. We built a looped test suite: compose ground-truthed binder photos, run the full pipeline, diff every cell against truth, fix the single worst failure class, and run again, to repeated perfect streaks. The loop surfaced failure classes no one would have guessed. Rotating a synthesized card after downscaling flattened the holo texture that distinguishes twins. A vision-model refinement pass was quietly adopting cards that the pixel evidence had never proposed, so we demoted it from oracle to advisor, permitted to reorder candidates but never to invent one. Each fix was certified against the 159-case regression gate, twice, before it shipped.
The slab work this week was the same discipline. Detection of graded slabs in hint-less photos measured 3 of 12, and the diagnosis was humbling: our OCR read the grading labels nearly perfectly, but the trigger logic demanded the letters P-S-A, and PSA prints its own logo in a stylized red mark that OCR renders as PA, BEC, or nothing. The label grammar was all there, year, set, card number, MINT 9, an eight-digit cert, while the one token we insisted on was the one token the image would not give up. We taught the fallback to recognize the grammar instead of the logo, CGC's ten-digit certs instead of only PSA's eight, and Beckett's subgrade block, and detection went to 12 of 12 with zero false slabs on raw cards.
Why this matters beyond scanning
Identification is pricing. Base Set Poliwrath and Base Set 2 Poliwrath differ by hundreds of dollars graded; a scanner that cannot tell them apart is not mostly right, it is a random number generator on exactly the cards where money is at stake. Every price, population, and deal verdict on Moonstone sits downstream of getting the card's identity right, which is why the scanner gets the loops, the gates, and the paranoia. The camera is the only witness that does not have a listing to sell you.
Accuracy figures are from Moonstone's internal certification suites: the binder/showcase loop (composed ground-truthed binder and display-case photos, June-August 2026, 66.7% baseline to repeated 15/15 streaks), the 159-case scan regression gate (run twice after every scanner change), and the slab/raw discrimination suite (12 ground-truthed slabs and 12 raw photos, hint-less protocol; detection 3/12 on August 24, 12/12 with 0/12 false positives on August 26, 2026). The catalog spans 58,906 cards. One corpus ground-truth correction is described above. These are our own measurements of our own system; the suites and gates run on every change precisely so these numbers stay honest.


