Every number on this site is built from real market data — recent eBay sold listings, third-party catalog and pricing services, and population reports from the major grading companies. This page walks through the pipeline and names every data source.
Where the Data Comes From
Verdict is not a one-source tool. The verdict on any given card draws from a stack of independent providers, each picked for the job they do best:
- CardSight — our primary catalog, pricing, and card identification layer. Maintains a structured database of cards across sports, TCG, and non-sport categories; powers fuzzy-matching of your query to a canonical card, drives the AI Snap identification flow, and supplies a recent-sale price stream that complements eBay comps.
- GemRate — aggregated grading population data across PSA, BGS, SGC, CGC, and CSG. Drives the Pop Report block, the grade-distribution table, and the probability-weighted EV in the Should I Grade panel.
- eBay sold listings — the historical sales record. Used directly for the median comps and the trend chart, and cached in our own database so sales eBay drops from its 90-day window don’t disappear from your history.
- TCGPlayer — used in TCG mode for ungraded (Near-Mint) market price on cards where TCGPlayer has a match. Cleaner than eBay for raw TCG because TCGPlayer is condition-specific by default.
- Apify — server-side eBay listing retrieval for Lot Calculator URL imports, and as a fallback comp source when the official eBay Browse API is rate-limited or unavailable.
- SerpAPI — fallback eBay sold-listing search when CardSight and the eBay API are both unavailable. Budgeted carefully (see the Watchlist / Collection section below for how we protect that budget).
- Anthropic Claude — the vision model behind the Grade Tool, Lot Calculator bulk identification, and cert scanning. Single-card AI Snap identification on the search page uses CardSight; the multi-card flows use Claude.
The Pipeline, Step By Step
1. Pulling sales
When you search a card, your query is resolved against CardSight’s catalog and the last ~90 days of eBay sold listings (not active ones — active listings show what people want; sold listings show what people actually paid). Every sale we pull gets cached in our own database, so sales that drop out of the rolling window don’t disappear from your history.
2. Strict matching
Every word in your search must appear in the listing title. We allow one typo in longer words (Levenshtein distance 1 or 2 depending on word length). Card numbers are matched with word boundaries — #7 won’t accidentally match #75.
3. Sub-brand & non-card exclusion
If you search for base Topps, Chrome listings get filtered out. If you search a card, wax boxes, packs, lots, and cases get filtered out. This sounds obvious but it’s the single biggest source of inflated FMV estimates on other pricing tools.
4. Parallel/insert handling
We keep a checklist of every major parallel (Refractor, Prizm, Gold, Silver, Sapphire, etc.) and insert set across MLB, NFL, NBA, NHL, TCG, and non-sport products. When your query targets a specific parallel or insert, we merge every matching listing into one bucket. When it doesn’t, we split sales by parallel so you can see each variant priced separately.
5. Outlier removal
Using the interquartile range method (2× IQR), we remove extreme prices that would skew the median — a wax box that slipped through a filter, a bidding-war anomaly, a typo listing. Only applied when we have at least 5 sales to work with, and only when the removal doesn’t wipe more than half the data.
6. Statistics
What you see on the dashboard:
- Fair Market Value: the median after all filtering. The middle sale, not the average — less sensitive to outliers.
- Weighted Recent: a median that gives more weight to the most recent sales. Catches trend moves earlier.
- Low / High: the 25th and 75th percentile — what a fair low and fair high look like, not the absolute bottom and top.
- Last Sale: the single most recent confirmed sale.
- Price Stability: how tightly recent sales cluster. Wide spread = Volatile.
- Trend: the % change in average price over the last 14 days vs the prior 14 — shown in the header badge.
Photo ID & Auto-Crop
When you tap AI Snap on the search page, your photo routes by category. For sports cards, Magic, and Pokémon, the photo goes to CardSight — image-trained on the actual catalog (~99.5% accuracy on supported sets). For Yu-Gi-Oh, Lorcana, One Piece, Bo Jackson Battle Arena, non-sport, or anything CardSight doesn’t cover, the photo goes to Anthropic Claude with a category-tuned prompt instead. If CardSight is unsure on a supported category, Claude takes a second pass as fallback.
For sports and non-sport cards you can add a second photo of the back — the identifier reads it primarily for the card number, dramatically improving accuracy on cards where the front number is small or missing.
Multi-card flows (Lot Calculator bulk identification, Grade Tool front/back analysis, and cert-label scanning) always use Anthropic Claude, because those flows need reasoning across multiple cards or full-card visual analysis rather than a catalog match.
The Grade Tool auto-crop starts with a fast local edge-detection algorithm. If that fails — or returns a quad that doesn’t look like a trading card’s shape (wrong aspect ratio, heavy skew, defaulted to image bounds) — we fall through to a two-pass Claude Vision detection: first on the full photo to locate the card, then on a tight crop around that location for precise corners. You can also tap Re-run with AI at any time.
Grade Prediction
The Grade Tool reads front and back scans and predicts what PSA, BGS, SGC, or CGC is likely to assign. Underneath the hood it’s doing more than just classifying a picture — it’s measuring centering the same way professional graders do, scoring four sub-grades against the published PSA thresholds for each numeric grade, and then combining that prediction with real population data and real sales comps to tell you whether grading is actually worth your money.
Centering — measured, not estimated
Centering is the single most common reason cards miss a PSA 10, so we measure it explicitly using the SportsCardHQ centering overlay method. For each axis (left/right and top/bottom) we project the imaginary guide-line grid onto the card edges, identify which guide each border aligns to, and look up the exact ratio from the published guide-pair table (e.g., guide pair 8-6 → 57/43). Both axes are reported separately — averaging them is the most common mistake — and the worse axis is the one that caps the centering sub-grade.
The centering sub-grade is then mapped to the official PSA centering thresholds: PSA 10 requires 55/45 to 60/40 on both axes; PSA 9 allows 60/40 to 65/35; PSA 8 allows 65/35 to 70/30; and back centering must be 75/25 or better for a 10, 90/10 for everything below. These thresholds aren’t something we made up — they’re what PSA publishes — and we apply them strictly. A card with 65/35 on either axis cannot be predicted a 10.
Corners, edges, surface — judged honestly
Each of the four corners and four edges is examined individually for softening, whitening, fraying, and chipping. Surface is scanned for print lines, scratches, indentations, gloss disruption, and print defects. Chrome, Prizm, and Refractor cards get extra scrutiny because their edge chipping is notoriously easy to miss in scans.
A scan can’t replace an in-hand inspection — micro-scratches, soft corners under specific lighting, and gloss issues can be invisible on the best photo. Rather than hide that limitation, the tool widens its predicted range and lowers its confidence when image quality constrains what it can see. White-bordered cards on a white scanner background trigger a specific warning because the border-to-background contrast makes corner whitening genuinely undetectable.
Sport, TCG, and category-specific quirks
The prediction prompt includes dedicated playbooks for sports cards, Pokemon, MTG, Yu-Gi-Oh and other TCG, golf, UFC/MMA, and vintage non-sport categories. Topps Chrome and Panini Prizm get edge-chipping red flags; Yu-Gi-Oh secret rares get factory-print-line caveats; 1970s/80s wax-pack cards get corner-ding warnings. The same model runs underneath, but the rules it’s scored against shift by category.
Predicted grade — range, not point estimate
Every prediction returns a worst / likely / best range with a high/medium/low confidence band, not just a single number. PSA 10 is the hardest grade to hit and the easiest to predict wrong — so the tool is explicitly instructed never to confidently call a 10 without always including 9 in the range. If you see a confident 10 prediction elsewhere, treat it as a sales claim, not a grading opinion.
The verdict isn’t the prediction — it’s the math after
Once we have a prediction, the tool computes a probability-weighted expected value for sending the card in to each of PSA, SGC, BGS, and CGC. The math:
EV = Σ (probability of grade i × net sale price at grade i) − raw card price − grading fee − ship − marketplace fees
Grade probabilities start from GemRate’s historical population distribution for that exact card — so the same prediction yields a different EV for a card with a 12% gem rate vs. one with a 47% gem rate. We then blend in the AI’s confidence and worst/likely/best range so the EV reflects what this card’s likely outcome looks like, not just the population average. Net sale prices come from the same eBay sold-listings pipeline that powers Verdict pricing — median, after outlier removal, after parallel-aware filtering.
We auto-select the cheapest grading tier the card’s estimated top-grade value qualifies for, because most users don’t realize their $2k card needs the next tier up. PSA, SGC, and CGC all gate tiers by max insured value; using the wrong tier silently breaks the math elsewhere. The tier we picked and why is shown right under the verdict.
Outcome ladder — not just one number
The verdict panel includes a three-cell outcome ladder showing the actual net dollars at the AI’s worst, likely, and best grades for the selected grading company. This isn’t a probability blend — it’s “if it grades a 10, +$92 net; ifit drops to a 7, -$31.” You get to reason about downside and upside explicitly instead of trusting a single blended EV number.
What this approach gives up — and why
We don’t publish an “X% accuracy” marketing stat, because the only honest version of that number requires comparing thousands of our predictions against the grades PSA actually assigned — and we’d rather build that dataset for real (via the My Grades feedback loop, where users log their actual returned grades) than invent one. We don’t name an “N inspection points” figure either, because the model is examining the card as a whole; there’s no honest way to tally discrete “points.” And we don’t guarantee a refund if our prediction is off — that promise reads well but doesn’t change what’s in the slab.
What we offer instead: real-world centering measurement against published PSA thresholds, honest confidence bands that widen when the scan doesn’t let us see well, EV math that uses your actual card’s population distribution and current eBay comps, per-grader cost auto-selection, and the outcome ladder so you can see what each possible result actually means in dollars. Use it as a decision tool, not a substitute for the slab.
Population Reports (GemRate)
When your search includes a grade token (e.g., “PSA 10”), we pull a population report from GemRate. The Pop Report block summarizes total graded population, gem rate (Perfect + Pristine + Gem Mint / total), and 9+ rate (everything Mint+ and above). Expand it for the full grader-by-grader breakdown — PSA, BGS, SGC, CGC, CSG — showing how many copies have hit each grade bucket.
The same data appears as a per-row toggle on Collection and Watchlist whenever a row’s query is graded. If you have a cert number in hand, the cert-lookup form upgrades the summary into the detailed table for that specific submission. Population coverage varies by era and brand — modern Topps Chrome will show full detail; obscure vintage sometimes returns “summary only.”
Should I Grade? — Probability-Weighted EV
The Flip page’s Should I Grade panel combines CardSight’s pricing with GemRate’s grade distribution to compute an expected value for sending a raw card in:
EV = Σ (probability of grade i × net proceeds at grade i) − raw cost − grading fee
Grade probabilities are derived from the historical population distribution for that exact card. The result is a probability-weighted recommendation that beats just looking at the PSA 10 comp in isolation — a card with a tiny gem rate may still lose money on grading even when the PSA 10 sale is huge.
Flip & Grade Arbitrage
For a raw card with a known year and solid comps, we automatically pull comps at two grade tiers from your selected grading company (Mint and Gem Mint — e.g., PSA 9 and PSA 10) and calculate:
Net profit = Graded comp × (1 − eBay fee % − payment fee %) − Raw buy price − Grading cost
eBay fees, payment-processing fees, and grading cost are all editable in the Flip page’s settings drawer. Default grading cost is the cheapest published bulk/economy tier for the selected service (PSA Value $25, SGC Standard $18, BGS Base $19, CGC Bulk $15). The verdict bubbles up as “Strong Flip,” “Worth Flipping,” “Thin Flip,” “Hold — Underwater,” or “Don’t Flip Yet.” Confidence-adjusted logic will override a paper-best graded path in favor of selling raw if the graded comp is thin-sample, raw has dominant liquidity, or raw ROI is better.
Lot Calculator
Paste a lot listing URL; we scrape the photos, Claude Vision identifies each card, and each card is priced through the full pricing stack with a fallback cascade: exact match → raw equivalent (if graded) → alt grade (PSA 10 → PSA 9 comp) → drop print run → drop color → drop card number → drop parallel → drop year → drop set. Cards priced from a fallback are flagged as “estimated” so you can see where the uncertainty is.
Collection & Watchlist Mechanics
Both pages let you sort (by name, paid, current price, gain $, gain %, last checked, target, distance-to-target) and filter (priced/unpriced/ winners/losers on Collection; at-target/near/above/unchecked on Watchlist). Sort and filter are session-only — they reset on refresh.
The arrow next to each price compares the current Fair Market Value to the value the last time you tapped Check on that card. Green up, red down, with a % delta. No arrow means there’s no prior check to compare against.
Check All intentionally skips any card you’ve checked within the last 7 days. This protects our paid-API budget so a 100-card collection clicked twice a week doesn’t burn 200 calls for the same data. The skipped count is shown in the progress message; any individual card’s Check button still refreshes it immediately.
What we DON’T do
- We don’t use asking prices or active listings — only confirmed sales (eBay) and verified market data (CardSight, TCGPlayer, GemRate).
- We don’t apply secret multipliers, fudge factors, or fill in missing data with guesses. When a fallback is used, the result is flagged as “estimated.”
- We don’t scrape anything beyond the data sources named at the top of this page. New providers will be added here before they ship.
Still have questions on the math? Check the FAQ or reach out directly.
