Methodology
Every number, and where it comes from.
EauIndex prices come only from US retailers' official product feeds, catalog facts only from brands' own sites, and dupes only from the dupe brands' own statements. Today that is 9,243 fragrances, 16,100 sizes and 4 retailers with live feeds.
01Sources
- Prices come only from each retailer's official affiliate product feed or API. We never take a price from a retailer's website. Each price is stored once a day per listing, with the retailer and date.
- Stock is checked on the retailer's own public product data for the exact bottle we link, because a feed can call a sold-out bottle “in stock” (see Stock checks).
- Catalog facts (names, sizes, concentrations, notes, perfumers, launch years, US list prices) come from each brand's own website, restated as facts with the source page linked on every fragrance page: 68 houses so far. Identifiers come from Wikidata (72 fragrances linked).
- Dupes come only from the dupe brand's own statement of what inspired it: 2,859 statements from 6 dupe houses.
- We never use Fragrantica, Basenotes, Parfumo, community lists or scraped datasets.
02Freshness, retailer by retailer
Every price carries its date. A listing that has not appeared in its retailer's feed for three days is shown as not seen recently and leaves the headline price. This table is live, as of Nov 11, 2026.
| Retailer | Type | Status | Last feed | Listings |
|---|---|---|---|---|
| ALT. Fragrances | Dupe brand | Not connected | ||
| Amazon | Marketplace | Not connected | ||
| Dossier | Dupe brand | Not connected | ||
| Dua Fragrances | Dupe brand | Not connected | ||
| FragranceNet | Discounter | Fresh | Nov 11, 2026 | 12,384 |
| FragranceShop.com | Discounter | Fresh | Nov 11, 2026 | 5,357 |
| FragranceX | Discounter | Not connected | ||
| Jomashop | Discounter | Not connected | ||
| Macy's | Authorized | Not connected | ||
| MaxAroma | Discounter | Not connected | ||
| MicroPerfumes | Decants | Not connected | ||
| Nordstrom | Authorized | Not connected | ||
| Oakcha | Dupe brand | Not connected | ||
| Opulensi | Discounter | Not connected | ||
| Perfumania | Discounter | Fresh | Nov 11, 2026 | 5,045 |
| Perfume.com | Discounter | Not connected | ||
| Sephora | Authorized | Not connected | ||
| The Fragrance Outlet | Discounter | Fresh | Nov 11, 2026 | 5,451 |
| Twisted Lily | Authorized | Not connected | ||
| Ulta Beauty | Authorized | Not connected | ||
| Walmart | Marketplace | Not connected |
03Stock checks
A retailer's feed can mark a bottle “in stock” that its own site shows as sold out. So a feed's word alone is never a stock claim here. Our checker reads the retailer's own public product data for the exact bottle and size each price links to. Through the day it checks the offers that matter most, one product at a time with 30 to 60 seconds between requests: the headline price of each size on the fragrances on our front page, deal boards, The Edit, the gift guides and the collections, then the most-wanted fragrance pages, a few hundred offers in all, the oldest check first. It never asks about the same product twice within 20 hours. After the feeds arrive it also tries the store's whole public catalog in one short pass (for Perfumania, about twenty requests, two to three seconds apart). It identifies itself as EauIndexBot/1.0 (+https://eauindex.com/methodology), follows the store's robots.txt, and when the store says it is asking too often it stops at once and waits (at least as long as the store asks, and longer each time it happens again). It keeps results only for offers we show, and never reads prices there: prices still come only from the feed.
- In stock appears only when a check in the last 36 hours found the bottle available, with the time of that check.
- Sold out at the store, with the time of the check, when the store's own page says so. A sold-out bottle never sets the headline price and never appears as a gift-guide, Edit, best-value or deal pick until a later check finds it back.
- Stock not confirmed when there is no recent check, or the store did not let us read it. The price is then shown as the lowest listed price, with no stock claim, and search engines are not told it is in stock.
In the last 24 hours at Perfumania: 1,689 offers checked, 736 sold out (latest check Nov 11, 2026). In the last 24 hours at The Fragrance Outlet: 1,331 offers checked, 586 sold out (latest check Nov 12, 2026).
04Matching a listing to a fragrance
A retailer listing is matched to a catalog size by barcode (GTIN) when present, otherwise by brand, name, concentration and size. A name must match exactly after removing sizes and filler words: “Delina La Rosee” never matches “Delina”. Listings we cannot match with confidence wait in a review queue and never appear on a page.
Some houses (Dior, Chanel, Yves Saint Laurent, Versace, Armani and others) do not let our fetcher read their US stores. Their pages are made from retailers' licensed product feeds instead, and only when the evidence agrees: the name is the listing title without the retailer's audience word, the concentration is the one the feed states, the size is a size printed on the box, and the product link must not name anything the title leaves out (a listing titled “Sauvage” whose link says “sauvage-elixir” makes no page). Gift sets, minis, bundles and testers never create a page. Each page keeps the feed rows it came from and a confidence score. It is open to search engines only once a second source agrees: the house's own website listing the scent, Wikidata, a second retailer's feed, or several listings of the same scent plus a product description that names it. Until then it is marked noindex and says so. When a house's own site becomes readable later, its listings join these pages (one page per scent) and its name and notes replace the feed's.
- 2,503
- Page from retailer feeds
- 2,230
- page_join
- 1,748
- Exact name and size
- 54
- Name gate
- 21
- Barcode (GTIN)
- 6
- page_fuzzy
- 21,675
- Waiting for review
05Measured error rates
We check our own work by hand and publish the result, including the misses.
| Check | Sample | Errors | Error rate | Date |
|---|---|---|---|---|
| Pages made from retailer feeds (houses whose own store we cannot read)1 of 81 checked pages was wrong: Pure XS listed as "Pure Excess". Two earlier rounds (300 and 100 pages) found 6 and 2 errors, mostly men's and women's versions sold under one name; those rules were fixed before this round. Pages wait for a second source before search engines see them. | 100 | 1 | 1% | Sep 29, 2026 |
| Brand-site catalog facts, second independent check4 of 30 had an error (13%; 95% interval about 5% to 30%). No price and no concentration was wrong. 2 were travel-size pages standing apart from their full bottles (now folded into the bottle page, with 33 more like them), and 2 names said "Body Mist" where the brand says "Perfume Mist" (now renamed, with 29 more). Price or size errors: 2 of 30 (7%). | 30 | 4 | 13% | Sep 28, 2026 |
| Brand-site catalog facts, independent check6 of 30 had an error (20%): 3 prices or sizes (refills shown as bottles, a missing 50 ml) and 3 names (Bond No. 9 names missing "New York"). Refills, hair and body products are now classified apart and the names fixed; a new 100-row check follows the next catalog reload. | 30 | 6 | 20% | Sep 28, 2026 |
| Brand-site catalog facts, first checkOne row in 50 had an error, a 2% error rate. | 50 | 1 | 2% | Sep 27, 2026 |
| Brand-declared dupe relations, first checkAll 30 matched the house's page. | 30 | 0 | 0% | Sep 27, 2026 |
| Brand-declared dupe relations, second checkAll 30 matched the house's page. | 30 | 0 | 0% | Sep 27, 2026 |
| Retailer product matching (crosswalk) precisionFeed-style titles written for the test. Superseded by the check on real Perfumania feed rows below. | 248 | 0 | 0% | Sep 26, 2026 |
| Retailer product matching on real feed rows (Perfumania)Recall was 97.1%: 5 bottles we carry were left unmatched and held for review rather than guessed. Target was 98% precision. | 167 | 0 | 0% | Sep 28, 2026 |
| Retailer product matching on real feed rows (FragranceShop.com)The one miss (Creed Viking Cologne, a separate scent, matched to Viking) and the unsure row are now held instead of shown. Impression oils sold under a house's name ("Type Perfume Oil") are never matched to that house's fragrance. Target was 98% precision. | 142 | 1 | 0.7% | Oct 3, 2026 |
| Retailer product matching on real feed rows (The Fragrance Outlet)Two-fragrance bundles, multi-packs and skin care are never matched to a bottle; rows we were unsure about (sub-lines, audiences or concentrations that contradict the brand) wait for review instead of being guessed. Target was 98% precision. | 254 | 0 | 0% | Oct 8, 2026 |
| Second and third stores on retailer-feed pagesA row joins a page only when its name, concentration, audience and bottle size agree with the page and its product address adds no other word; sizes the page does not sell and near misses wait for review instead of being guessed. Target was 98% precision. | 71 | 0 | 0% | Oct 8, 2026 |
| Size normalization (oz to ml, testers, sets)They run with the automated test suite. | 51 | 0 | 0% | Sep 27, 2026 |
06Sizes and price per ml
Milliliters written in the listing always win. When a listing gives only fluid ounces, we use the nominal size printed on US boxes: 1 oz is 30 ml, 1.7 oz is 50 ml, 2.5 oz is 75 ml, 3.4 oz is 100 ml, 4.2 oz is 125 ml, 6.8 oz is 200 ml. Other sizes are converted at 29.5735 ml per ounce and rounded. Price per ml is the price divided by that nominal size.
Testers, unboxed bottles, gift sets and minis are detected from the listing and kept apart. They are shown in their own section and never mixed into the headline price. The headline price is the lowest price for a new, boxed, full-size bottle across tracked US retailers that day, leaving out any bottle the store's own page shows as sold out (see Stock checks). Sale prices count when the feed reports them. Shipping and tax are not included.
07The buy-or-wait verdict
- Still gathering history: fewer than 30 days of prices for that size. We never fill in history we did not observe.
- Low: today's price is at or below the 10th percentile of the last 90 days, or within 2% of the 90-day low.
- High: today's price is at least 10% above the 90-day median.
- Typical: anything in between.
The sentence under each verdict shows the numbers used, for example “$219 today vs $238 typical over 90 days.”
08Families and collections
A fragrance's family (Floral, Amber, Gourmand, Woody, Fresh, Musk, Oud & Leather, Aromatic) comes only from what the house or a licensed retailer says: the family words on the house's own product page (“Classification: Gourmand Amber”), the notes it lists, and the product description in a retailer's licensed feed. A declared dupe link can also place a scent, but only when its own notes carry that family, or, when it lists no notes, when two or more linked scents agree. Every source casts a vote with a confidence, measured against the houses that print a family next to their notes; the confidence and the votes are stored with the family. When the evidence is weak or split we leave the family blank and the tile stays plain paper, rather than guess. The name alone never decides it. We never read Fragrantica, Basenotes or Parfumo for this. Every collection page prints the rule that decides what is in it.
09Dupes
An alternative appears only when its own brand states what inspired it on its own website. We quote that statement and link to it. We compare prices; we do not claim two fragrances smell the same.
10Images
Illustrations and editorial photography on EauIndex are created by our studio with generative tools; product photographs come from retailers' official feeds.
A retailer's feed image is shown unaltered beside that retailer's own link. Where we have no retailer photo we may show, you see either a scent label in the color of the fragrance's family, or, for some fragrances, a drawn illustration of the bottle: its shape and the color of its liquid, with no logo or label. Illustrations are drawings, not photographs. They never appear in a store's price row, in share cards or in ads, and a retailer's own photo replaces the drawing wherever we may show one. Bottles known for a distinctive design are not drawn.
11Authorized or discounter
Every price carries its retailer's label, and the ranking is always by price.
Authorized
- Buys from the brand or its official distributor
- Full retail price, sometimes less in store-wide sales
- Brand gifts with purchase and warranties apply
- Examples: Sephora, Ulta Beauty, Nordstrom, Macy's
Discounter
- Sells below the brand's list price and does not claim to be an authorized retailer
- Usually 20 to 45% below list
- Brand gifts and warranties may not apply; batch codes can be older
- Each store's own statement about its sourcing is quoted on its page
12What we don't know
- Store prices come from three retailers so far (Perfumania, FragranceShop.com and The Fragrance Outlet, through their official product feeds on CJ). Others appear as each retailer approves our use of its feed; until then pages without a store price show the brand's list price, when the brand publishes one. FragranceShop.com's site does not allow automated reading, so we make no in-stock claim for its offers beyond what its feed says.
- Stock can change between our checks. We read the store's own product page data for the exact bottle we link once a day, and again at midday for the fragrances on our front page and guides; a bottle can sell out in between.
- Some brands' websites do not allow automated reading, so their fragrance facts wait for retailer feeds. These include Dior, Chanel, Yves Saint Laurent, Giorgio Armani, Valentino, Prada, Versace, Gucci, Maison Francis Kurkdjian, Byredo, Kilian Paris, Maison Margiela, Maison Alhambra and Billie Eilish.
- Jean Paul Gaultier, Rabanne, Penhaligon's and Carolina Herrera show their catalogs only through scripts in the browser, so their facts also wait for feeds.
- About 18% of fragrances listed on brand sites do not state a concentration (for example eau de parfum or eau de toilette), so we do not state one either.
- Prices do not include shipping or sales tax.
- In-store prices, member prices and coupon codes are not seen.
- A feed price can lag the retailer's own site by up to a day.
- For discount and marketplace sellers, we cannot verify where each bottle was sourced (grey market or not).
Found an error? Write to us from the contact page; corrections are published here.