Skip to content
Resale IQ

How every number on this site is calculated

You are being asked to make buying decisions with our data. That is only reasonable if you can check how it is produced — so here is the whole method, including the parts that are unflattering.

If a figure on this page ever disagrees with the product, the product is wrong and we want to hear about it: support.

On this page
  1. Where the data comes from
  2. How fresh it is
  3. Sell-through rate — the formula
  4. Buy-below price — the formula
  5. Verdict confidence — HIGH / MEDIUM / LOW
  6. The authenticity check is a confidence score, not a verdict
  7. What this data cannot tell you
  8. What we will not do
  9. Questions

Where the data comes from

We continuously read public live listings, and watch which ones leave the shelf, across all five main EU Vinted domains — Spain, France, Germany, Italy and Portugal. Nothing is bought from a third party. Prices and counts trace back to listings that actually existed; momentum and sell-through are ratios computed from them, not predictions.

We anchor on listings that left the shelf, not active ones. Active listings tell you what sellers hope to get. Here is the honest version of what a departure tells you: we do not see a receipt. We see a listing disappear from a Vinted search shelf, and we record its last asking price as the departure price. A departure can be a sale; it is also consistent with the seller delisting it, an account ban, an offline sale at a different price, or the seller relisting the same item under a new id — which we cannot always tell apart from a genuine sale. That last case matters more than it sounds: a seller relists what is not selling, so the items most likely to generate a fabricated “sale” are exactly the slow-moving ones a reseller most needs an honest warning about. We have not yet measured how often this happens. The price shown is therefore an asking price at the moment of departure — a real, useful proxy, and the closest honest signal Vinted's public data supports — but not an observed sale price. Most tools quote active-listing asking prices because they are far easier to collect; we go one step further and track departures, but we do not claim to have watched money change hands.

A departure on this site means we watched a listing go from active to gone. Listings we first saw already gone are in the catalogue count, not in weekly departures. That is why listings tracked can be millions while weekly watched departures are in the hundreds or thousands — not because the market died, and not because a refresh zeroed the table.

Right now

2,792,350 distinct items tracked · 4,156 watched departures in 7 days across 11 brands on the public table (69 brands in the catalogue). Last calculated 2026-10-26 02:25 UTC.

How fresh it is

Listing collectionscheduled every 30 min/market, skips if busymeasured 2026-09-02 from the scraper run log: 83% of gaps under 1h over the trailing 7 days (n=1,157); 58% under 1h over the last 48h during a current backlog
Signal recomputation~every 2 hoursscores, sell-through, buy-below — a slower cycle than collection; 0 skips observed in the same window
Departure verificationevery 60 minutesconfirms a listing left the shelf — not that it sold; 0 skips observed
Public page refreshno page cache — live per requesteach request renders from the current database; not a 15-minute cache

So right now a new listing is usually in the dataset within an hour — worse than our 30-minute target while a scraper backlog clears (see the measured cadence above). The signal computed from it — buy-below, sell-through, confidence — can lag up to about 2 hours behind that. We publish the measured cadence rather than a rounder number that sounds better, and this table is the one we correct first if the schedule changes.

Sell-through rate — the formula

Sell-through is the share of the universe we actually watched: items we saw listed and then saw leave the shelf, versus items still listed. It is not weekly turns (departures ÷ active × 100), which can exceed 100% and must never be labelled sell-through.

str = sold_observed / (sold_observed + active_listings) × 100

The numerator is only transitions we watched (sold_observed=1) — a listing leaving the shelf, never a discovery-stamped sold_at. Null, not 0 or 100, when watched departures are below 30 or still-listed is 0 (active≤0 is the only way this share hits 100%). Raw departure and listed counts still show.

Why this matters

A tool showing you “760% sell-through” is not showing you a sell-through rate. It is showing you weekly turns and hoping you do not ask. 760 watched departures against 100 still listed is 88.4% — a share.

Buy-below price — the formula

buy_below = typical_asking_price × 0.70

typical_asking_price is the p30 (lower third) of the de-duplicated live asking prices for that model on Vinted, and the typical range runs from p25 to p50. Departures do not set the price: they back the confidence band and the counts. There is no fee factor: Vinted charges private sellers no selling fee, and the percentage-based charge on its fee card is the buyer's Vinted fee, paid on top of the item price. The 0.70 is 70% of the typical resale price. Business accounts and other platforms can differ, so check their own fee pages. The profit calculator applies current per-platform rates across Vinted, Depop, eBay, Poshmark, StockX and GOAT.

Typical resale price: based on current asking prices for this model on Vinted (lower third of the market). The range shown is the typical range.

How accurate we were

The buy-below price for 50 individual models, with observed departures and sample sizes, is in the Buy-Below Sheet.

Verdict confidence — HIGH / MEDIUM / LOW

Every BUY / WATCH / SKIP carries a confidence band from the data we actually have: data-quality score, comparable watched departures, and snapshot recency. It is not a model guessing how sure it is.

HIGH≥ 30 comparable departures and quality ≥ 70snapshot younger than 48 hours
MEDIUM≥ 10 comparable departures and quality ≥ 40or HIGH but the snapshot is stale
MEDIUM provisional≥ 200 active asking comparables, spread ≤ 0.6no departures needed. Priced from active asking prices, not watched departures. Spread = (p75 − p25) ÷ median. Always marked provisional.
LOWthinner than thatalways paired with “Only N comparable departures”

What LOW means

LOW is not a SKIP. It means we will not pretend precision we do not have. A call from four watched sales is labelled LOW on purpose.

The authenticity check is a confidence score, not a verdict

This one needs stating plainly because the downside of a misunderstanding is someone buying a fake. The check never sees the physical item. It reads a listing and weighs three things: how far the price sits below the real market for that model, seller trust signals, and patterns in how the listing is written and photographed. It returns a 0–100 confidence score in one of four bands.

75–100High confidencenothing unusual found
50–74Moderate — verifysome signals worth checking
25–49Low confidenceseveral unusual signals
0–24Very lowmultiple red flags

What it is not

It is not an authentication service and not a guarantee. A high score means we found nothing unusual in the listing — not that the item is genuine. A low score means the listing looks odd, which is sometimes just an unusual seller. For anything valuable, use a professional authentication service and your own inspection. We will not reimburse a purchase on the strength of this score.

What this data cannot tell you

Every dataset has edges. Ours are these, and we would rather you learn them here than discover them after a bad buy.

  • "Sold" timestamps are when our tracker first saw a listing leave the shelf — not a sale timestamp, and not necessarily a sale at all. Vinted does not publish transaction data, so a departure can also be a delisting, a removal, an offline sale at a different price, or a relist under a new id.
  • A seller who cannot sell an item tends to relist it, which reads to us as the old listing departing. We have not yet measured how often this happens, but the direction is not neutral: it means the slowest-moving items are the ones most likely to show a fabricated "sale," not a random sample of all items.
  • Days-to-sell measures time to departure, not time to sale, and is only directly observed for a very small fraction of items, because most departed items are first seen already gone. Speed is therefore inferred from weekly momentum against a monthly baseline for nearly all models, not measured per item.
  • Momentum needs roughly 30 days of history to rank models against each other. Before that the board collapses onto STABLE — and we now say so in the product rather than showing confident labels we cannot support.
  • Around 30–45% of listings fall into an 'Other' category because our multilingual keyword matching did not hit a term. That is a real bucket, not a discard bin, but it means category volumes understate reality.
  • We track a fixed set of brands. A brand we do not track has no data here — that is coverage, not a market signal.
  • For some of the tracked brands we have no per-model breakdown, either because the brand genuinely does not name its products (for example Zara, Pull&Bear, Bershka, Mango) or because our model catalogue has not been extended to them yet.

What we will not do

  • Show an accuracy figure without its method. The figure on the accuracy page compares our typical price with the median asking price of the listings we then watched leave the shelf: asking prices, not receipts. It is re-run every Monday and the misses are listed. How accurate we were
  • Overstate the dataset. We publish two counts and name both: 4M+ listing records (one row per listing per Vinted domain, so an item listed on several domains counts once per domain) and 2,792,350 distinct items (COUNT(DISTINCT external_id), each item counted once). We never present the records figure as unique items, and we never add up per-country volumes. We previously said 30M+, which came from a development database that does not serve this site; that was corrected.
  • Count the same listing five times. Vinted's five domains are largely one shared catalogue — most listings appear on several at an identical price. Summing per-country volumes inflates the total by roughly 2.5–3.5×. We publish one aggregated figure.

Check the data yourself

The aggregate market data is public and free to cite with attribution. You get 10 free checks a day, no account, no card. Starter at €9 gives 100 checks a month. Cancel anytime.

€0 today. Then €9/month after your 7-day trial. Cancel anytime before then and pay nothing. Pay by card or any method shown at checkout · reminder email 3 days before the trial ends · cancel anytime in your accountOpen market dataThe reselling manualBuy-below prices

Questions

How fresh is Resale IQ's Vinted data?

The scraper is scheduled every 30 minutes per market across all five EU Vinted domains, but a run is skipped if the previous one is still in progress. Measured on production over the trailing 7 days (2026-08-26 to 2026-09-02, from the scraper run log): 83% of gaps land under an hour — median 34 minutes, mean 43 minutes, n=1,157 gaps across the 5 domains. The most recent 48 hours ran slower, 58% under an hour (n=242), while a backlog of skipped runs clears. Signals are recomputed on a slower cycle, roughly every 2 hours, and that cycle has run on schedule with no skips in the same window. Departure verification — checking which listings have left the shelf — runs every 60 minutes, also with no skips observed. Public pages carry no page-level cache; each one renders from the live database on every request. So right now a new listing is usually in the dataset within an hour, worse than our 30-minute target while the backlog clears; the score built from it can lag up to about 2 hours behind that.

How is sell-through rate calculated?

Watched departures divided by watched departures plus still-listed items. Only transitions we observed (sold_observed) — a listing leaving the shelf, not a confirmed sale. We withhold the percentage (null, not 0) when watched departures are below 30 or still-listed is 0 — that last case is the 100% hole, not a rate. Raw counts stay. We never label weekly turns as sell-through.

How is the buy-below price calculated?

The typical resale price is based on current asking prices for this model on Vinted (the lower third of the market, with each listing counted once across the Vinted sites we track), multiplied by 0.70. There is no fee step: Vinted charges private sellers no selling fee. These are asking prices; we do not observe the price an item finally changes hands at.

What does HIGH / MEDIUM / LOW confidence mean?

It is a band from data-quality score, comparable watched departures and snapshot recency — not a model guessing. HIGH needs at least 30 comparable departures. LOW always says how many comparables we have. LOW is not a SKIP. A provisional MEDIUM can also come from at least 200 active asking-price comparables with a narrow price spread and no departures; it is always marked provisional.

Is the authenticity check a guarantee?

No. It is a confidence score, not a verification, and it never sees the physical item. It weighs how far the price sits below market, seller trust signals and listing patterns, then returns a 0-100 score with a band. It cannot authenticate anything and must not be treated as a guarantee. For anything valuable, use a professional authentication service.