FRAGRANCE ATLAS An archived fragrance comparison by Quinn Dyer Quinn's hobby project started with an interest in trying new colognes. It used fuzzy matching to connect fragrance records from Parfumo and Fragrantica. This presentation makes the saved results easier to explore and exposes the limits of those matches. DATES Saved crawler logs substantiate bulk work in December 2025. The strongest master export was saved March 27, 2026. March is an export date, not a verified collection date. The export lacks per-product retrieval timestamps. Ratings have not been refreshed. This public presentation was rebuilt October 4, 2026 using offline data only. SOURCE SELECTION The selected master has 1,923 unique Parfumo product URLs, 141 distinct saved brand labels, both sites' ratings and vote counts, comparison fields and 1,923 Parfumo image links. Its duplicate export is byte-identical. The four saved workbooks have 1,011, 1,011, 1,153 and 1,191 records and no embedded pictures. Later modification time alone was not the selection rule: the master is more complete and preserves image links and useful source metrics. RANKINGS The web page defaults to Parfumo rating descending, with at least 100 Parfumo votes. Vote counts remain visible. Within each filter set, equal full-precision values share a rank; Parfumo vote count orders score ties. CSV and workbook ranks use the entire saved dataset. No ratings, vote counts or opinions were invented. Optional combined score: Fragrantica normalized score = ((rating - 1) / 4) * 10 Parfumo weight = 1.2 * log10(Parfumo votes) Fragrantica weight = 0.8 * log10(Fragrantica votes) Combined = (Parfumo rating * Parfumo weight + normalized Fragrantica score * Fragrantica weight) / (sum of weights) This reproduces the saved project's scale and weighting convention. It is a project-defined comparison, not an official score. Missing inputs, nonpositive votes, zero total weight, or uncertain identity leave the combined score unavailable. Adjusted score: v = sum of the two sites' vote counts m = median v over eligible pairs C = mean combined score over eligible pairs Adjusted = (v * combined + m * C) / (v + m) Prior statistics use the full eligible population with fixed range ends. This repairs the earlier workbook's drifting range and a later workbook's circular reference. Votes across sites may include the same people; the adjusted score is not a probability or calibrated confidence estimate. MATCHING 160 pairs pass the conservative offline gate: exact normalized URL brands and product tokens, explicit matching concentration, and a unique Fragrantica URL. The other 1,763 need review, mainly because both saved identities do not explicitly state concentration. Review does not imply that every such pair is wrong. The checker preserves Elixir, Absolu, Intense, gender terms, numeric product names and reformulation years. It distinguishes Extrait de Parfum, Parfum and Parfum Cologne. Brand checks use exact normalization and a small explicit alias map, not substring or shared-word acceptance. Fuzzy similarity remains a candidate suggestion and never approves a join. URL text is evidence, not a fresh page verification. Fragrantica ratings and vote counts are retained for all records as the saved candidate data, including review cases. Review cases receive no combined or adjusted score. CORRECTIONS Both saved URLs identify the Chanel row labeled 2018 as the product 1957. Its year is left unresolved: the exported name suggests 2018, while the saved Fragrantica description says 2019. The invalid 1957 release-year field is not published as a resolved year. Both URLs identify the Boadicea the Victorious row labeled 2024 as 1907. Its saved Fragrantica description states launch year 2024. Full redundant brand suffixes were removed from display labels in 47 other rows. Original source names, source-year fields and row numbers remain available. No rows were merged or dropped. PHOTOS The public page uses existing Parfumo image URLs from the export. The links have not been live-verified by this offline rebuild, and image-link coverage must not be described as loaded-photo coverage. A local bottle illustration appears when a photo fails. There are no embedded source product photos in the workbooks, and no source photos were downloaded or relicensed. Photo rights remain with their original owners; image licenses were not recorded in the original export. Linking does not establish a reuse license. SCOPE AND PRIVACY The original crawler selected brands, male/unisex categories and minimum-vote sweeps. This is a selected sample, not the full fragrance market. Review prose, shopping-price snippets, account details, diagnostic HTML, hidden sheets and unrelated files are excluded from the public folder. No current scraping, CAPTCHA bypass, anti-bot bypass, login, deployment or publishing took place during this rebuild. DATA FIELDS Each public row retains product identity, both source URLs, both ratings and vote counts, existing source-image URLs, original labels, export row, export date and an explicitly unknown retrieval date. Data-quality details remain visible. Full public JSON also contains separately labeled source accords, note pyramids and Parfumo longevity/sillage/value values with their vote counts. REPRODUCIBILITY The copied project contains an offline Python build and identity checker with regression tests. The public folder can be served as static files or opened directly as index.html. Its data is loaded from a local JS asset, so opening the file requires no backend or fetch server. Source photos require access to their external hosts.