Palate

The Instrument Room

Where does the flavor actually come from?

Pick up a plate of paella. By weight it is rice, chicken, beans, water. The rosemary in it — the thing you smell from the doorway — is 0.06% of the dish’s mass. This piece is about that gap: the distance between where a dish’s mass is and where its flavor signal is, measured across every dish in Palate’s corpus.

The arithmetic is the engine’s own aggregation weight — log1p(grams) × (potency + 1)^1.5 — applied to 27,229 linked ingredient lines across 2,343 dishes (0.7% of lines were unlinked or massless and skipped; 1,665 of 1,729 distinct ingredient names link exactly). An ingredient’s signal share is its weight over the dish’s total; its mass share is grams over grams.

In one paragraph

Attributing each dish’s flavor signal to its ingredients with the Palate engine’s own aggregation weight (log1p(grams) × (potency + 1)^1.5) across 27,229 linked ingredient lines in 2,343 recipes: in the median dish, the ingredients that are each under 5% of the mass together carry 49% of the flavor signal (interquartile range 33%–60%, n = 2,343 dishes). Individual aromatics are heavily leveraged — rosemary returns roughly 35× its mass share in signal (median across n = 36 recipes), cayenne 30× (n = 183) — while bulk staples like white rice return about 0.1× (n = 68). These are model measurements of composition, not tastings; no human palate has validated the vectors.

2026-07-26T11:49:46.852027 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 0.1% 1% 10% 100% share of the dish's mass (log scale) 0.1% 1% 10% 100% share of the dish's flavor signal (log scale) signal share = mass share rosemary (35×) saffron (26×) cayenne (30×) thyme (23×) shrimp paste (39×) white rice spaghetti water tortillas aromatics — median across their recipes (× = leverage) bulk carriers — median across their recipes A dish's flavor does not come from where its mass is Every linked ingredient line in 2,343 dishes (27,229 points): its share of the dish's mass against its share of the flavor signal — weight = log1p(grams) × (potency+1)^1.5, the engine's own aggregation weight. Above the line: punching over its mass. In the median dish, ingredients under 5% of mass each carry 49% of the signal. Palate corpus (2,345 dishes; ~40% project-authored) · piece2_attribution.py · composition model, not perception — see the piece's limits
Every linked ingredient line in the corpus: share of the dish's mass against share of its flavor signal, both log-scaled. The diagonal is 'contributes exactly its weight.' Aromatics live far above it; rice, plain pasta and water far below.

Three dishes, opened up

Spaghetti carbonara. The richness is 37% pancetta, 34% egg yolk, 20% pecorino. The spaghetti — 44% of the mass — contributes 0%.

Spaghetti Carbonara — richness 6.8/10
ingredientshare of richnessshare of mass
pancetta37%22.0%
yolk34%12.9%
pecorino romano cheese20%7.3%
eggs9%12.9%

French onion soup. The umami is 43% beef broth and 38% gruyère. The onions the dish is named for: 4%, from 36% of the mass. (What caramelization does to those onions is real, and is exactly what a composition model undersells — see the limits.)

French Onion Soup (Soupe à l'oignon) — umami 9.2/10
ingredientshare of umamishare of mass
beef broth43%37.6%
gruyere38%12.5%
dry white wine10%6.3%
fresh yellow onions4%36.0%
season salt2%0.08%
unsalted butter2%1.4%

Paella Valenciana. The aromatic channel is 52% garlic and 40% rosemary — rosemary being 0.06% of the dish by mass. A 600-fold mismatch between where the weight is and where the smell is.

Paella Valenciana — aromatics 1.2/10
ingredientshare of aromaticsshare of mass
garlic52%0.38%
rosemary40%0.06%
sweet paprika9%0.15%

The corpus-wide picture

Measured as the median across all recipes each appears in: cayenne punches 30× over its mass share (n=183 recipes), rosemary 35× (n=36), thyme 23× (n=132), saffron 26× (n=25), shrimp paste 39× (n=19). At the other end, white rice returns about 0.1× its mass share in signal (n=68) and water — 19% of a typical dish it appears in — carries essentially nothing (n=325).

Aggregated: in the median dish, the ingredients that are each under 5% of the mass together carry 49% of the flavor signal (interquartile range 33%–60%, n=2,343 dishes). Half of what a dish is, by this model, comes from things you could hold in one cupped hand. None of this will shock a cook — nobody seasons by the pound. What the measurement adds is how big the effect is, and which ingredients live furthest from the diagonal.

The most leveraged aromatics (salt rows omitted — salt behaves the same way but is its own story). Only ingredients appearing in ≥15 recipes.
ingredientleverage (signal ÷ mass)median mass sharen recipes
shrimp paste39×0.26%19
cayenne36×0.10%27
rosemary35×0.11%36
cayenne pepper30×0.11%183
marjoram29×0.08%15
saffron26×0.08%25
cardamom25×0.22%19
thyme23×0.06%132
nutmeg20×0.07%58
dark sesame oil20×0.32%124
pepper19×0.08%65
coriander19×0.09%107

Honest limitations

  • This is a composition model, not a perception model. Real flavor perception runs on concentration ÷ odor threshold (the odour-activity-value framework of Grosch and colleagues), not gram share with a potency correction. A mass-weighted model systematically under-weights high-impact aromatics — saffron’s true perceptual leverage is likely higher than shown, not lower. Treat the leverage numbers as floors on the phenomenon.
  • The potency term is a hand-labeled partial correction, not a measurement. No human palate has ever validated one of these vectors against tasting the dish — the attribution is exact arithmetic on the engine’s model; the model itself is the untested part.
  • Cooking transforms contributions. Caramelized onions give more than raw-onion labels suggest; volatiles cook off; fat carries flavor it doesn’t own. The attribution here is computed on raw composition.
  • ~40% of the corpus is project-authored (934 of 2,345 dishes), which may use more regular quantities than recipes in the wild.

The data

Every number on this page is a deterministic measurement over the same recipe corpus — nothing here was estimated or embellished. Want to check the work, or run your own analysis? A 250-dish sample of the corpus — ingredients, 18-note flavor profiles, timing, macros — is free to download.

Get the dataset

Cite this

Palate, “Where does the flavor actually come from?,” https://palate.kitchen/instrument/where-flavor-comes-from — include the date you accessed it.

The measurements on this page are free to quote with attribution to Palate. The downloadable 250-dish sample dataset on /data is licensed CC BY-NC 4.0.