Each occasion maps to a set of preferred families via
OCCASION_BOOST. Any fragrance whose family appears in that set receives +7 pts (standard mode) or a ×1.30 multiplier (profile mode) on its raw score.Mappings: daily→Fresh,Aquatic,Fougère,Woody · date→Floral,Oriental,Chypre · casual→Fresh,Aquatic,Gourmand,Floral · formal→Woody,Chypre,Oriental,Floral · sport→Fresh,Aquatic,Fougère · home→Gourmand,Oriental,Woody · travel→Fresh,Aquatic,Chypre,Floral · party→Oriental,Gourmand,Fougère,Woody
Fragrances not in the preferred family AND not in the feeling-family list get a
×0.65 penalty (profile mode only).
Feeling maps to preferred families via
FAMILY_MOOD. In standard mode the union of occasion-families and feeling-families is the hard filter — only fragrances in that union enter scoring. If the intersection is non-empty it is used instead (stricter).In profile mode feeling gives a
×1.25 multiplier (stacks with occasion's ×1.30).Mappings: fresh→Fresh,Aquatic,Fougère · romantic→Floral,Chypre · bold→Fougère,Woody,Chypre · mysterious→Oriental,Woody · cozy→Oriental,Gourmand · elegant→Chypre,Floral,Woody · playful→Fresh,Floral,Gourmand,Aquatic · confident→Woody,Fougère,Chypre,Oriental
Your choice maps to a numeric range via
SILLAGE_RANGE: 1→[1–3], 2→[3–5], 3→[5–7], 4→[7–10].Each fragrance's
fr.sillage (1–10) is compared to your range:· Inside range →
+12 pts (standard) · +9.6 pts (profile, ×0.8 weight)· 1 step outside →
+5 pts· 2+ steps outside →
−8 pts (penalty)This is additive — it shifts all family-qualified fragrances up or down, not a hard filter.
Same mechanics as sillage.
LONGEVITY_RANGE: 1→[1–4], 2→[4–6], 3→[6–8], 4→[8–10].fr.longevity compared to your range → same +12 / +5 / −8 deltas, weighted ×0.8 in profile mode.Sillage + longevity together can add up to +24 pts or subtract −16 pts from any fragrance's raw score. For low-rated fragrances this can push them above or below the visibility threshold.
Season maps to boosted families via
SEASON_BOOST: Summer→Fresh,Aquatic,Floral · Spring→Floral,Fresh,Chypre · Fall→Woody,Oriental,Fougère,Chypre · Winter→Oriental,Gourmand,Woody.Matching fragrances receive
+6 pts (standard) or ×1.15 (profile mode).Weather API auto-detects season; your manual pick overrides it (no double-counting).
Season also affects
seasonFit(fr): if a fragrance's fr.season[] list doesn't include your season or "All", it loses −5 pts. Combined effect: a summer fragrance in winter can lose up to −5 and gain nothing from the boost.
Fragrance Library
Compare Fragrances
Browse the Explore tab, click the ⊕ button on any card to add it here (max 2).
Scent Map ⤢ double-click for details
Family Distribution
How the collection divides across olfactory families — Floral, Woody, Oriental and beyond. Click a slice to explore that family across all charts.
Gender Split
The balance between masculine, feminine, and unisex offerings. Click a segment to filter the entire map to that gender category.
Sillage Profile
How far each fragrance projects — from intimate skin-close to room-filling beast mode. Click a sector to filter by projection strength.
Longevity vs Sillage bubble = rating
Each bubble is a fragrance family — its position shows staying power (X) vs. projection (Y), and bubble size reflects average community rating. Click a cluster to filter by that family.
Price Tier vs Rating
Does spending more guarantee a better fragrance? Each dot is one fragrance — see how ratings spread across Budget, Prestige, and Luxury tiers. Click a tier to isolate it.
Top Brands
The houses with the most fragrances in the database. Reveals which brands dominate coverage — click any bar to see only that brand's fragrances across all charts.
Rating Distribution
How community scores cluster across the collection. Most fragrances settle between 3.8 and 4.4 — click a bucket to filter by rating tier.
Price Tier Breakdown
Distribution from drugstore to luxury niche. Shows where the collection concentrates by accessibility — click a bar to cross-filter by price tier.
Top 20 Notes by Frequency
The ingredients that appear most across top, heart, and base notes combined. Identifies the DNA of the collection — click any note to see every fragrance that features it.
Family × Gender Breakdown
How masculine, feminine, and unisex releases are distributed within each fragrance family. Shows which families skew toward a particular gender. Click a stack segment to cross-filter.
Era Timeline
How fragrance releases are spread across decades from pre-1980 to the 2020s. Reveals when the collection was born and how modern vs. vintage it skews. Click a decade to explore.
Season Distribution
Which seasons each fragrance is recommended for. A fragrance can span multiple seasons — this counts all nominations. Click a season to filter the full collection.
Note Group DNA
The radar fingerprint of the collection's ingredient palette — citrus, floral, woody, spicy, and more. Longer spokes indicate heavier use of that note category. Click a point to filter by group.
Season × Family Heatmap
A grid of every family–season pairing showing how many fragrances belong there. Darker cells = stronger overlap. Click any cell to cross-filter the entire map by that combination.
Longevity vs Rating
Does wearing power translate to higher scores? Each dot is a fragrance coloured by family — spot whether long-lasting fragrances are rated better. Click a cluster to filter by family.
🧠 Data Intelligence
Statistical AnalysisPrice vs Rating Regression
Does spending more guarantee a better fragrance? Linear regression across all 2000 fragrances maps EUR price against community rating to find the true relationship.
Attribute Correlation Matrix
Pearson correlation between longevity, sillage, rating, release year, and price tier. Green = positive correlation, red = negative. Diagonal is always 1.
K-Means Clustering
K=4 clustering on longevity × sillage reveals natural performance archetypes across the database. Cluster centroids are marked with ✕.
Multifactor Radar by Tier
Five dimensions — longevity, sillage, rating, note complexity, modernity — compared across all price tiers simultaneously. Reveals where each tier excels.
Rating Variance by Family
Mean rating per olfactory family with ±1 standard deviation error bars. High variance = divisive family; low variance = consistent crowd-pleaser.
Longevity Trend Over Decades
Average longevity grouped by release decade from pre-1980 to the 2020s. Shows whether modern perfumery trends toward longer-lasting or more ephemeral formulas.
Note Co-occurrence Heatmap
How often the top 12 notes appear together in the same fragrance. Darker cells = stronger pairing affinity. Reveals the DNA of classic fragrance combinations.
My Collection
✓ I Have — fragrances you own. Still shown in recommendations with an "I Have" badge. ✗ I Hate — fragrances you dislike. Hidden from all recommendations. Use the + Have / ✗ Hate buttons on any card to mark them. ♥ Saved — wishlist / loved fragrances.
☺ Scent Profile Builder
Answer 8 curated questions about your scent preferences — all by selection, no typing needed. We'll build your aroma spider chart and match fragrances to your exact taste.
Your Scent Profile
Based on your survey · tune the sliders to refine results