Methodology
Worth the Bag answers five questions for each bag it tracks: where it costs least new in your country, what it costs preloved, how well it holds value, how its price has changed, and what it really costs to own. This page explains where every number comes from and how it is calculated, so you can check our work.
Data sources
- Retailer prices (new). Product feeds that retailers publish through affiliate networks (Awin, CJ, Rakuten Advertising, Partnerize). A feed row carries the price as the retailer shows it in a given country, including VAT, plus availability and the product link.
- Boutique prices (new). Some brands sell their bags new only in their own boutiques and on their own websites. We enter these prices by hand, each with a source link and an effective date, and review every entry before it is published. We never scrape brand websites.
- Preloved prices. Listings on resale platforms, with the asking price, currency, condition label and shipping area of each listing.
- Exchange rates. The euro foreign exchange reference rates of the European Central Bank (ECB), published on TARGET working days at around 16:00 CET.
How often data is refreshed
| Data | Refresh |
|---|---|
| Retailer offers | every 6 hours |
| Preloved listings | daily |
| Exchange rates | daily, after the ECB publication |
| Retention and true cost | whenever new data for an item arrives, at least weekly |
| Boutique prices | when a brand changes its prices and we have a source for the new price |
Every item page shows "Prices as of" with the time of the latest data. Prices can change after that time.
How products are matched
Feed titles are messy and written in many languages. Each offer and listing goes through these steps, in order:
- Style code. If the feed carries a manufacturer style code that we hold for an item, the offer is matched on that code (compared in upper case, without spaces, dots or dashes).
- Rules. We parse the title for the brand (using a list of known spellings), the model name and keywords, size tokens (such as mini, small, PM, MM, GM or numbered sizes), material and colour, in all eight site languages.
- Language model, as a fallback. Only when the rules are inconclusive, the raw product title and the ten most similar catalogue entries are sent to a small Anthropic model, which returns the best match or none, with a confidence score. Only product titles are sent, never personal data.
- Thresholds. A match with confidence 0.9 or higher is accepted automatically. A match between 0.6 and 0.9 goes to a manual review queue. Anything below 0.6 is discarded.
Preloved listings are matched on brand, model, size and material. Each platform's condition label is mapped to one of our five condition grades.
Condition grades
| Grade | Meaning | Factor |
|---|---|---|
| New with tags | unused, with original tags | 1.0 |
| Excellent | barely used, no visible wear | 0.9 |
| Very good | light signs of use | 0.8 |
| Good | visible signs of use | 0.65 |
| Fair | significant wear or defects | 0.5 |
Platforms grade differently. For example, Vestiaire Collective's "very good condition" counts as Excellent here, and its "good condition" as Very good.
Formulas
All scores use asking prices converted to euros at the ECB rate of the day the listing was recorded.
Retail reference. The price that retention is measured against:
retail_reference = latest published boutique price in Germany
(if none: median full price of new offers in Germany)
Germany is used as one consistent reference market so that retention is comparable across items. Sale prices are not used for the reference.
Retention. How much of its retail price a bag fetches preloved:
retention = median asking price of preloved listings in
New with tags or Excellent condition,
recorded in the last 90 days, across the EU
/ retail_reference
A retention score needs at least 10 listings in that 90-day window. With fewer, no score is shown, and neither is anything calculated from it.
Value loss.
value_loss = 1 - retention
True cost (3 years). What owning the bag costs if you buy it new at the best price in your market and later sell it in Excellent condition:
expected_resale = retail_reference x retention x 0.9 (factor for Excellent)
true_cost_3y = best new price in your market - expected_resale
true_cost_per_year = true_cost_3y / 3
The three years are a convention for the per-year figure. The resale estimate is based on today's preloved market. It is not a forecast of what the bag will fetch in three years.
Preloved saving.
preloved_saving = best new price in your market
- cheapest preloved listing in Excellent or better condition that ships to your market
Badges.
| Badge | Rule |
|---|---|
| Holds value | retention of 0.85 or more |
| Loses value fast | retention below 0.5 |
| Best deal | lowest true cost among the brand's items in your market |
Price-increase cadence. When we have recorded at least three confirmed price increases for a brand on different dates, the brand page says "historically every approx. N months, last on DATE". N is the average interval between the first and the latest confirmed increase, rounded to whole months. Several items increased on the same day count as one increase. We never predict the date or size of a future increase.
Sale flags
A "sale" flag appears only when the current price is below the lowest price we ourselves recorded for that offer during the 30 days before the current price took effect. This follows the EU Omnibus rule on price reductions. If we do not hold 30 days of price history for an offer, no sale flag is shown. We never pass on a retailer's own percentage claims.
Currencies
Where a retailer offers an item in your market's currency, we show its own price. Otherwise we convert with the ECB reference rate of the day and label the amount "approx., converted". Converted amounts are a guide: the retailer's checkout decides the final price.
VAT and shipping
Prices are shown as each retailer displays them in your country, including VAT. Shipping costs and customs duties (for example when ordering into Switzerland) may apply on top. A retailer's offer appears in a market only if that retailer ships there.
Stale prices
An offer that has not appeared in a retailer's feed for 48 hours is shown as unavailable, without a price. A timestamp does not make an old price true, so we hide it instead.
Limits
- Preloved figures are asking prices, not the prices bags actually sold for. Sold prices are usually not published.
- Listings vary in size, colour, material and completeness, and the median smooths over these differences. A specific bag can be worth noticeably more or less.
- All figures describe the past and the present. We make no forecasts.
Ranking
Offer tables are sorted by price, lowest first. Commission never affects the order of offers, which retailers are shown, or any number on this site. See the affiliate disclosure.
Legal note
Based on historical asking prices. Not financial advice. The information on this site is provided for general information only and does not constitute financial, legal or tax advice. Handbags are consumer goods, not financial instruments. Prices and availability can change at any time; the retailer's own website is authoritative.