Define the search
A request starts with a product keyword or an eBay category. Marketplace, condition, price, date, category, format, and aspect filters can narrow the sample before it is used for pricing.
CompSniper collects public completed-sale data from supported eBay marketplaces, normalizes each listing, optionally removes likely accessories and wrong-product matches, then calculates the median and p25 to p75 range in deterministic code. Results are evidence from a bounded sample, not an appraisal or a guarantee of the price the next item will achieve.
Published and reviewed by Marc Andrew, Owner of CompSniper. Last updated August 31, 2026.
A request starts with a product keyword or an eBay category. Marketplace, condition, price, date, category, format, and aspect filters can narrow the sample before it is used for pricing.
CompSniper retrieves public sold and completed listing information from one of 8 supported eBay marketplaces. The response returns up to 240 cleaned listings and roughly 90 days of available history. The upstream page can contain slightly more priced rows before the final response cap.
Each listing is normalized into stable fields including sold price, currency, shipping, condition, sold date, seller, item ID, and URL. Missing fields remain null instead of being invented.
When relevance cleaning is enabled, a batched classifier reviews listing titles and removes likely accessories, parts, broken units, empty boxes, wrong models, and mismatched variants. The unfiltered sample remains available with relevance=false.
Deterministic application code sorts usable sold prices and calculates the median, mean, minimum, maximum, p25, p75, sample size, modal currency, and average known shipping. A language model never calculates these statistics.
Keyword searches can mix the desired product with cases, chargers, replacement parts, empty packaging, broken units, and nearby models. Those mismatches can materially change a median, especially in smaller samples.
CompSniper classifies listing titles in one bounded batch. It keeps likely matches and drops likely noise before statistics are calculated. If classification is unavailable, malformed, or would remove the entire sample, the system fails open and returns the unfiltered results rather than pretending that no market exists.
The predeclared study applies this collection and calculation method to 100 products and publishes the aggregate CSV, category analysis, outliers, code, and limitations.
| Field | Method | Use |
|---|---|---|
| count | Listings with a positive, parseable sold price | Judge whether the sample is deep enough for your decision |
| median | 50th percentile of sorted sold prices | Central price that is less sensitive to extremes than the mean |
| p25 / p75 | 25th and 75th percentiles with linear interpolation | A realistic middle-half price range |
| mean | Arithmetic average of sold prices | A secondary comparison that remains sensitive to extremes |
| min / max | Lowest and highest usable sold prices | Inspect spread and possible remaining outliers |
| avgShipping | Average known shipping, with free shipping counted as zero | Evaluate delivery cost separately from sold price |
The median and percentiles use `soldPrice` and exclude shipping. Shipping is reported separately. `totalPrice` is available on each listing when both sold price and shipping are known.
When eBay marks an accepted Best Offer, `bestOfferAccepted` is `true`. eBay does not disclose the actual accepted amount, so the visible listing price may not be the transaction price. Exclude these rows when exact transaction-level pricing is required.
Supported marketplaces commonly expose roughly 90 days of sold history. Identical query and filter combinations can be served from CompSniper's cache for up to 24 hours. Every item includes `scrapedAt`, and each sale includes `endedAt` when available.
Each request targets one marketplace. Compare currencies and regional markets separately. The response reports the modal currency of the usable sample, but callers should still inspect item-level currencies before combining datasets.
One page is a bounded sample, not the entire market. There is no universal minimum sample size. Review count, condition, variants, date window, spread, and individual listings before making a high-value purchasing or appraisal decision.
Start with 100 requests each month. Keep relevance cleaning on, compare it with the raw feed, and inspect the listings behind every summary.