RigPrice.

Methodology

Every number on this site can be traced back to a rule on this page. Last updated 2026-08-01 02:16:31 UTC. Right now we track 9,141 listings (4,233 currently active) across 22 GPUs, and 593 listings currently pass the buy-pick screen.

1. Where the data comes from§

All of our listing data comes from the official eBay Browse API. We don't scrape eBay pages and we don't call undocumented endpoints. We only look at the US marketplace, in the graphics card category, at items located in the United States and priced between $40 and $6,000.

Every 6 hours we run a full sweep: for each GPU we track, we page through the search results until they run out. On top of that, an hourly sweep sorted by newest listings catches new items on the most popular GPUs quickly. Every listing keeps a first-seen and last-seen time, and we snapshot the price whenever it changes. The counts above (9,141 listings tracked, 4,233 active) update on every rebuild.

2. What the prices mean§

Every price on this site is an asking price: what active Buy It Now listings are asking right now. Bids on running auctions never count. A current bid isn't an ask, and mixing bids in would drag the numbers down.

For each GPU we take the median, plus the 25th and 75th percentiles, separately for each condition: new, open box, refurbished, used, and for parts. Listings with unknown condition stay out. The middle half of asking prices (from the 25th to the 75th percentile) is what GPU pages call the "Average range". The headline number is always the clean "used" bucket. Cards where the seller admits a problem (a dead fan, a broken port, runs hot) move to their own separate bucket so they can't drag the headline down. Where shipping is stated we count price plus shipping, otherwise the item price alone.

Two things to keep in mind with ask-based numbers. Well-priced listings sell and disappear, so what's active at any moment skews toward the listings nobody has bought yet. That pushes ask medians a little above what buyers actually paid recently, usually by single digits, more on slow-moving cards. The "delisted at" figures on each GPU page show the other side of that gap. Also, about half of used listings take Best Offer, so the shown price is really an opening position; picks that take offers say "or Best Offer". Both effects push our numbers up, never down. Read the medians as what sellers want, not as what you have to pay.

Roughly four in ten listings don't state a shipping cost up front. Those count at their item price, and every place we show such a price marks it ("+ shipping unknown"), including the hardware totals in the buy-vs-rent calculator.

3. How we filter out junk§

Raw eBay search results are full of things that aren't a working GPU at a market price: empty boxes, printed photos of cards, whole-PC bundles, scams, and junk parked at silly prices. After every full sweep we filter in five steps. Nothing is ever deleted. An excluded listing is flagged with the exact reason, so any exclusion can be checked and reversed later.

  1. Obvious non-listings. Box only, photo or poster, a CPU or whole-PC bundle, accessories sold alone (backplates, brackets, waterblocks), modded VRAM, and multi-card lots are all excluded outright. "For parts" titles aren't excluded; they just move to the for-parts bucket, which gets its own stats.
  2. Unclear titles. If we can't tell with confidence which GPU a title is about, the listing stays in the database but stays out of the stats.
  3. A statistical fence. For each GPU and condition, we look at the last 14 days of valid asking prices and fence off anything that sits far outside the pack. The fence is built from the median rather than the average, because scam prices would pull an average toward themselves:
    m          = median(prices)
    mad        = median(|p - m|)
    sigma      = 1.4826 * mad                # robust std-dev estimate
    low_fence  = max(m - 3*sigma, 0.45*m)    # scam floor: too good to be true
    high_fence = min(m + 3*sigma, 2.5*m)     # anchor/junk ceiling
    Anything below the low fence or above the high fence gets flagged. If a GPU and condition has fewer than 15 valid data points in the window, we skip this step and rely on the next one, because a fence fitted to a handful of points is noise.
  4. Sanity bounds. Each GPU also has a hand-set floor and ceiling, seeded from its launch price and adjusted by hand. Prices outside them are flagged no matter what the fence says. Before a GPU has enough data, this is its only protection.
  5. Everything else that isn't an ask. Auctions (a bid isn't an ask) and unknown-condition listings stay out of the stats. So do suspiciously cheap listings from sellers with almost no feedback history, which is the classic shape of a hijacked account; those are also barred from any "cheapest listing" spot. Degraded cards go to their own bucket as described above.

4. What "delisted at $X" means§

eBay doesn't tell us what things actually sold for. That data sits behind a restricted API we don't have access to, and we won't scrape sold pages to get around it. So we use the most honest stand-in there is.

A listing that disappears and stays gone for two full sweeps in a row (about 12 hours) is marked delisted. If it was a Buy It Now listing, wasn't flagged as an outlier, was priced in a normal range for its GPU, and had been up for at least 6 hours (which weeds out instant relists), we assume it probably sold. Even then, the site says "delisted at $X" or "assumed sold", never "sold for $X". The seller may have pulled it, repriced it, or sold it somewhere else. We can't know, so we don't claim to. The last asking price is the best signal available, and that's exactly how it's labeled everywhere it appears.

5. How we screen buy picks§

On expensive GPUs, a scary share of the cheapest listings are fraud: hijacked accounts, stock-photo fakes, "box only" in the fine print. A button that just linked the lowest price would be a scam amplifier. So the site runs on two levels:

  • Market stats use the broad filtered pool described above, and only for medians, ranges, and trends. A believably priced scam slipping in barely moves a median, which is acceptable for a statistic.
  • Buy picks are a strict shortlist. Only picks (plus the separately labeled Fresh leads, described below) ever get a Buy button, and only full picks count as the "cheapest screened pick", feed the buy-vs-rent calculator's hardware cost, or will ever trigger alerts.

To become a pick, a listing has to clear all of this, rechecked on every full sweep:

  • Time on eBay. Scam listings get taken down fast, so a listing has to survive for a while before we'll show it.
  • The basics. We're sure which GPU it is. Buy It Now, not an outlier, condition known, not degraded, located in the US, and not on our blocklist.
  • Seller history. An established feedback record with a high positive percentage, and the bar rises with the price of the item. Top Rated sellers clear parts of the screen faster.
  • A believable price. Priced too far below market reads as too good to be true, no matter how good the seller looks.
  • No recycled photos. We fingerprint listing images. The same photo showing up under different sellers fails every listing that uses it.
  • Returns. Higher-value picks must accept returns.
  • The description, read in full. Sellers routinely write a clean title and bury "one fan doesn't spin" in the description. For top candidates we fetch the whole description and run the same damage checks we run on titles. Any hit kills the pick.

We publish how the screen works but not its exact numbers. It exists to stop scammers, and precise thresholds would tell them exactly how to slip past.

Genuinely cheap cards often sell before the waiting period is over. That's what the Fresh leads section on GPU pages is for: newer listings that pass everything else on a stricter seller bar (long-established or Top Rated sellers only, returns required at any price, description already checked). A lead only shows up when it's cheaper than every screened pick. If a pick already matches its price, the lead adds nothing and stays hidden. And leads never drive the "cheapest screened pick" number, the calculator, or future alerts. Those come from full picks only.

Picks are screened, not guaranteed, and we mean that. The gap we can't close is a hijacked high-feedback account priced believably. The waiting period and the returns requirement are the best protection we have, not proof. We never see the physical card and we never pretend we did. Every pick shows its evidence (feedback count and percentage, Top Rated badge, returns policy, days listed) so you can judge it yourself, and eligible purchases are covered by the eBay Money Back Guarantee if an item never arrives or doesn't match its description. Right now 593 listings pass the screen.

6. What "fits" means§

"Fits" on a model page means the config's total VRAM meets our estimate for that model file:

min_vram_gb = file_gb * 1.05 + 2.0

That's the file size plus 5%, plus 2 GB of headroom for context and runtime overhead, assuming a context around 8k tokens. It's a deliberate simplification: longer contexts, bigger batches, and some backends need more, so a config that fits at 8k can fail at 32k. File sizes are checked against the actual files on each model's Hugging Face page.

As for speed: any tokens-per-second number we ever show will link to its source, whether that's a community benchmark, a vendor figure, or our own run labeled as ours. Until we have sourced numbers, we show none. No estimates dressed up as measurements.

7. Multi-card builds§

Some configs on this site are two or four of the same card, up to 96 GB of VRAM. They exist because VRAM is the wall you hit first: the biggest models we track don't fit on any single card we price. But a second card isn't simply double the GPU, so here's what it does and doesn't buy you.

It buys capacity, not speed. The usual setup (llama.cpp or Ollama splitting a model's layers across the cards) lets you load something that wouldn't fit on one card, but each token still walks through every layer in turn, so responses don't come back faster. Backends like vLLM can turn extra cards into speed, at the cost of wanting more PCIe bandwidth. NVLink isn't needed for any of this; ordinary PCIe slots are fine for inference. Also, the usable total is a little less than the sticker sum. Each card carries its own runtime and context overhead, and a model can only be split at layer boundaries, so a config that clears our line by a hair can still fail to load in practice.

A multi-card price here is the sum of that many separate screened listings, because the cheapest listing counted twice isn't a price anyone can pay. When the screened market doesn't hold enough cards, the config stays unpriced and we say so. The figure also leaves out the bigger power supply, a board with enough spaced slots, risers, a case that fits, and the extra heat. Budget for those separately. The wattage column is the cards' rated draw plus a flat allowance for the rest of the machine, not a measurement at the wall. And four cards is really a different class of machine: a workstation or server platform for the lanes and spacing, four-figure wattage (a 4× RTX 3090 build works out to about 1,475 W, more than one ordinary household circuit will comfortably carry), and often risers and forced airflow. Passive datacenter cards like the Tesla P40 have no fans at all and need an added shroud and blower; their rows are marked. Treat a 96 GB row as the cost of the cards alone.

One comparison worth making first: several models we track are mixture-of-experts designs that only activate a few billion parameters per token. Those tolerate keeping expert weights in system RAM and streaming them to one GPU far better than dense models do, so a RAM upgrade is often the cheaper way to reach a model one card can't hold. Slower than having everything in VRAM, but price it before buying a second card. We also only model matched pairs. A 24 GB card next to a 12 GB one works, but performance depends on the exact pairing, so we don't publish numbers we can't stand behind.

8. Cloud pricing§

The cloud rates in the buy-vs-rent calculator are fetched automatically on every full pipeline run, roughly every 6 hours. From Vast.ai we take the cheapest verified, rentable single-GPU marketplace offer per GPU. From RunPod we take the community-cloud on-demand rate and ignore their pricier datacenter tier, so the comparison stays marketplace-to-marketplace. Marketplace rates can differ from the headline price on a provider's own site. If an API breaks, a hand-maintained rate file takes over. Every rate is stored with the date we saw it, the calculator shows that date, and anything older than 14 days gets a staleness warning instead of being passed off as current. The figures are on-demand hourly rates only. Storage, egress, and idle time aren't included, and the calculator says so.

Questions about a specific number? Everything we publish maps to a rule above, and every excluded listing keeps its exclusion reason in our database. Last updated 2026-08-01 02:16:31 UTC.