How to Pull Accurate Comps (Step-by-Step)
Price cards with confidence by identifying the exact variant, filtering to clean sold data, removing outliers, and documenting your pricing bands.
Identify the exact card, filter recent sold listings to the same attributes, clean outliers, then price within a target band. Document everything so you can revisit the comp logic later.
Step 0: Identify the Exact Card
Start by nailing every attribute—set, number, variant, serial, and condition—so you only compare apples to apples. If you're unsure whether you're looking at a base parallel or a true short print, work through identifying parallels and serial numbers first.
- Set and year (e.g., 2022 Topps Chrome)
- Card number (#150)
- Variant or parallel (Refractor, Blue Wave, Image Variation, etc.)
- Serial (e.g., /150)
- Condition or grade (raw, PSA 9, BGS 9.5 true gem, SGC 10)
Most bad comps are born here, not in the math. A 2022 Topps Chrome base Refractor and a 2022 Topps Chrome Refractor Image Variation share a card number and look nearly identical in a thumbnail, but they can trade an order of magnitude apart. If you cannot articulate every attribute above from the card in your hand, stop and identify it before you price it.
Step 1: Search Sold Results
Use marketplaces that expose completed sales and filter aggressively to the same parallel, serial, and grade. On eBay that means checking Sold Items specifically—"Completed Items" also includes listings that expired without selling, and pricing off unsold asks is how sellers end up sitting on inventory for a year.
- In-season sports: use a 30–45 day window.
- Off-season or thin markets: stretch to 90 days for a bigger sample.
Search by attribute, not by the seller's title prose. Start narrow (2022 Topps Chrome Refractor 150 PSA 10) and widen only if the sample is too small. Titles are keyword-stuffed, so a broad query returns a lot of cards that are not yours.
The two traps in eBay's sold data
Best Offer hides the real price. When a listing sells through an accepted offer, eBay shows the asking price struck through and does not reveal what the buyer actually paid. That number is a ceiling, not a comp. On cards where most inventory moves via offers, a naive read of the sold list can overstate the market by 10–20%. Either exclude those rows or treat them as "sold at or below X."
Sold history runs out at about 90 days. eBay's sold search only reaches back roughly three months. For a card that sells twice a year, the honest answer is that eBay alone cannot give you a sample—you need auction-house results, a comps service with a longer archive, or your own records.
Step 2: Normalize and Clean
Raw sold prices are not comparable until you put them on the same basis.
- Shipping. A $45 card with free shipping and a $45 card plus $5 shipping are a $5 difference in what the seller kept. Normalize to the buyer's all-in cost, then back out shipping consistently.
- Currency. Convert to your baseline at the rate on the sale date, not today's rate.
- Promotions. Adjust for heavy coupons or site-wide promos that inflated the sale price.
- Lots and damage. Exclude lots, or obviously damaged copies, if you are pricing a clean single.
Step 3: Remove Outliers
Use an interquartile range (IQR) approach to clip unrealistic highs and lows before you set pricing.
- Sort your cleaned sold prices.
- Find Q1 (median of the lower half) and Q3 (median of the upper half); IQR = Q3 − Q1.
- Discard anything outside Q1 − 1.5×IQR or Q3 + 1.5×IQR.
Watch for shill bidding, charity auctions, or signature variants masquerading as base cards.
The math, worked
Say you pulled twelve clean sold prices for a graded base card:
38, 41, 42, 44, 45, 46, 47, 48, 50, 52, 55, 96
| Statistic | Value |
|---|---|
| Q1 (median of lower six) | $43 |
| Q3 (median of upper six) | $51 |
| IQR (Q3 − Q1) | $8 |
| Lower fence (Q1 − 1.5×IQR) | $31 |
| Upper fence (Q3 + 1.5×IQR) | $63 |
The $96 sale falls outside the upper fence, so it goes. Everything else survives. Now compare what you would have concluded:
| Method | Result |
|---|---|
| Mean, outlier included | $50.33 |
| Median, outlier removed | $46.00 |
That $96 sale—one auction, possibly two determined bidders, possibly a card with an undisclosed subgrade—pushed the average up more than 9%. List at $50 in a market that clears at $46 and you will watch the card sit while cheaper copies sell around you. This is the entire argument for the median in one example.
Step 4: Check Velocity & Depth
- Velocity: How many sold per week? One sale in 90 days signals fragile comps.
- Depth: How many active listings sit at your target price? Thin supply can justify a premium.
Velocity is really a question about how long you are willing to hold. Ten sales a week means the median is a reliable, liquid number and you can price at it with confidence. One sale a month means the median is a rough guess, and the spread between the high and low comp tells you more than the midpoint does. Price thin markets toward the middle of the range and be patient, or toward the bottom and be done.
Step 5: Account for Seasonality & News
Player call-ups, trades, injuries, or award runs can shift pricing inside a single week. Pair your main lookback with a 7-day pulse to avoid stale comps.
When the 7-day median diverges sharply from the 45-day median, the market is repricing and your longer window is already stale. Trust the short window, list quickly, and revisit in a few days—news-driven spikes decay faster than most sellers expect.
Step 6: Price Using Bands
Do not pick a number. Pick three.
- List price (anchor): median clean comp + 5–15% depending on market heat.
- Offer acceptance: down to median, or median − 5–10%.
- Hard floor: set by your cost basis and target margin.
Running the $46 example above: list at $50, auto-accept at $46, decline below $42. Bands turn every incoming offer into an arithmetic decision instead of a judgment call, which is what makes pricing scale past a few dozen cards.
Step 7: Document the Comp
Archive sold links, prices, and context (condition remarks, BIN vs auction). Capture your pricing bands and reasoning for future audits. A dedicated inventory app can make this documentation automatic instead of a spreadsheet chore.
Documentation is what makes the next comp cheaper. When the card does not sell in three weeks, the archived comp set tells you whether the market moved or your read was wrong—and those two problems have different fixes.
Comping Raw vs Graded Cards
Graded comps are the easy case: the grade collapses condition into a single comparable label, so a PSA 9 comps against other PSA 9s and the sample is clean.
Raw is harder, because "raw" spans a card that would grade a 6 and one that would grade a 10. Two habits help:
- Comp against the realistic grade, then discount. Raw copies typically trade at a meaningful discount to the graded price of the grade they would most likely receive, because the buyer is absorbing both the grading cost and the risk of missing that grade. How wide that discount runs depends on the spread between adjacent grades—which is exactly the input a grading ROI calculation needs.
- Read the photos, not the title. "Mint" and "pack fresh" are seller opinions. Corners and centering in the images are evidence.
When There Are No Comps
Some cards genuinely have no sales history—low-numbered parallels, obscure inserts, recent releases. Build a synthetic comp instead of guessing:
- Anchor on the nearest tier. Find the closest parallel with real sales—usually one step up or down in scarcity.
- Adjust for the print-run ratio. A /25 is scarcer than a /99, but scarcity is not linear with price; demand for the player caps what scarcity can extract.
- Sanity-check against an adjacent year. The same parallel from last year's release, adjusted for how the player's market has moved since.
- Treat it as a hypothesis. List it, watch the watcher count and offer flow, and let the market correct you. No offers in two weeks at your anchor means the anchor is high.
Mini-Examples
- Raw parallel with thin sales: stretch the window and sanity-check against adjacent years or parallel tiers.
- Graded base with a large sample: weight the most recent 10–20 sales and stay within 30 days — accurate graded comps are also the direct input for any grading ROI calculation, so it pays to get this step right.
FAQs
Straight answers to the most common comp questions.