Palate

The Instrument Room

The world's cooking, in 82 bases

Ask a cook how a dish starts and you will not get an ingredient list. You will get a pan and two or three things in it — onion, celery and carrot, sweated in butter until they give up their water — and everything else in the dish happening on top of that. Cooks have names for these openings. Mirepoix. Sofrito. Roux. Bumbu. Yangnyeom. The names travel further than any single recipe does.

We went looking for them. Not in what turns up in the same dish — co-occurrence will tell you tomato and basil belong together and will never tell you that the onion, the celery and the carrot go in first. We looked at what enters at the same early step, across 4,566 recipes with parsed instructions. 82 combinations recur often enough to earn a place in the lexicon. 33 of them turn out to have a name.

In one paragraph

Over 4,566 recipes with parsed instruction steps, 46,119 candidate ingredient cliques entering together within the first 2 steps reduce to 82 recurring “bases” — 2–5 ingredients entering at the same early step, filtered by a per-size support floor (40 recipes for a pair down to 6 for a five-ingredient clique), an anchor-cohesion floor of 0.1, and a distinctness pass. 33 carry a culinary name, 7 carry a plain descriptive label, and 42 are published unnamed. The commonest opening, onion and garlic (garlic + onion), starts 378 recipes and is only 11% Mexican — 2.5× that cuisine’s corpus share; the sharpest, the jerk aromatic base, is 100% Jamaican across 10 recipes, 63× its base rate. 51 culinary names were looked for and 11 did not ship, including the Louisiana holy trinity (13 recipes, below the floor of 20).

2026-08-06T15:42:20.346176 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 10 100 recipes this base starts (log scale) onion and garlic roux sofrito mirepoix bumbu the taco rub yangnyeom carries a culinary name · 33 the custard base the quick-bread base the creaming base plain descriptive label · 7 no name claimed · 42 82 recurring openings, and how many of them we can name 41 pairs, 24 triples, 6 of four and 11 of five — median 42 recipes each
Every base in the lexicon, placed by how many recipes it actually starts. 33 carry a culinary name, 7 carry a descriptive label that claims no tradition, and 42 are published as unnamed_base_N. Support runs from 378 recipes down to 6.

A base is not a co-occurrence

The whole measurement rests on one thing an ingredient list cannot give you: when. Palate keeps a parsed step sidecar for every recipe in the corpus, so we can ask where in the instructions each ingredient is first named. An ingredient enters at the first step whose prose mentions it. Two or more ingredients entering at the same step, within the first 2 steps, are a step group — and every subset of 2 to 5 of that group is a candidate base.

Salt, water and neutral oil are dropped before any of this (23 such keys in all): a base is not “onion and salt”. Vocabulary variants of the same food are folded through a hand-curated map of 111 entries, because yellow onion → onion is right and green onion → onion is not, and no token rule tells them apart. Then the candidates go through three gates.

The support floor is per size — 40 recipes for a pair, 20 for a triple, 10 for four, 6 for five. Anchor cohesion asks: when this clique's most distinctive member goes in early, how often does the whole clique go in with it? The distinctness pass, walking largest clique first, admits a base only if the set of recipes it starts is not mostly an already-admitted base's.
stagesurviving candidates
candidate itemsets counted46,119
cleared the support floor182
cleared the anchor-cohesion floor160
survived the distinctness pass82

Nothing here is inferred. Each base carries receipts — real recipes a reader can go and look at. Mirepoix is admitted on 34 of them; the verb on its entering step is most often saute, and in 44% of those recipes that step is the first one.

Receipts for mirepoix — six of the 34 recipes in which onion, carrot and celery enter the pot at the same early step. Note the passports: a French cut turning up in a Peruvian soup and an Argentine one.
recipecuisinekind of dishenters at step
Escarole Soup With Chicken And RiceGreeksoup1
Jeff'S Bordelaise SauceFrenchmain (other)1
Psarosoupa Avgolemono (Egg-Lemon Fish Soup)Greeksoup1
Sopa de FideosArgentinesoup1
Tortellini in BrodoEmiliansoup1
Caldo de GallinaPeruviansoup1

The openings almost everyone uses

At the top of the list is the least surprising pair in cooking — onion and garlic — and its numbers are worth sitting with. It starts 378 recipes, 54% of the time as the literal first step, and its single most common cuisine accounts for only 11% of them. It belongs to nobody in particular, which is exactly what makes it the floor the rest of the lexicon is built on.

The 14 openings with the most recipes behind them. "First step" is the share of those recipes where the base enters at step 1 rather than step 2. Lift is against that cuisine's own share of the corpus.
basewhat goes inrecipesfirst stepits most over-represented cuisine
onion and garlicgarlic + onion37854%Mexican — 11%, 2.5×
aglio e oliogarlic + olive oil20760%Greek — 21%, 6.3×
ginger-garlic pastegarlic + ginger19651%Indian — 19%, 4.1×
onion in olive oilolive oil + onion17470%Greek — 17%, 5.2×
cumin and garliccumin + garlic13051%Middle Eastern — 17%, 9.1×
the egg-and-flour baseegg + flour12051%Hungarian — 9%, 4.8×
the onion-tomato baseonion + tomato11054%Mexican — 13%, 2.8×
the pepper-onion openingbell pepper + onion10953%Cajun/Creole — 14%, 6.4×
unnamed_base_1garlic + paprika10955%Southern — 13%, 5.8×
unnamed_base_2garlic + shallot10859%Indonesian — 36%, 18.8×
the onion-carrot openingcarrot + onion9943%Italian — 12%, 3.8×
unnamed_base_3butter + onion9669%American — 10%, 2.4×
garlic and oreganogarlic + oregano8271%Greek — 46%, 14.1×
unnamed_base_4garlic + lemon juice7863%Greek — 31%, 9.3×

Further down, the lexicon keeps near-twins apart on purpose. Mirepoix (carrot + celery + onion, 34 recipes) is counted separately from soffritto (carrot + celery + olive oil + onion, 12) — the same three vegetables, softened in olive oil instead of butter — because a name is asserted only where the ingredient set matches exactly. Mirepoix without the carrot is not mirepoix; a variant becomes its own base rather than being quietly absorbed into the classic. Sofrito (garlic + onion + tomato) is a third entry again, on 47 recipes.

2026-08-06T15:42:20.648257 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 10 100 recipes this base starts (log scale) 0% 20% 40% 60% 80% 100% share of them from its single most common cuisine the jerk aromatic base — Jamaican 100%, 63× the taco rub — Tex-Mex 100%, 53× bumbu — Indonesian 86%, 45× onion and garlic — Mexican 11%, 2× aglio e olio — Greek 21%, 6× The commonest openings belong to everyone; the sharpest name a kitchen Lift is against that cuisine's own share of the 4,566-recipe corpus unnamed (42) named (40)
Each base placed by how many recipes it starts and how concentrated those recipes are in one canonical cuisine. Only bases at or above 6 recipes are labelled. The shape is the finding: the openings the most recipes use are the ones that belong to everyone.

Some openings name a kitchen

At the other end are combinations that function as signatures. Take the jerk aromatic base — allspice + garlic + scallion + thyme. It appears in 10 recipes, and 100% of them are Jamaican: 63× that cuisine’s share of the corpus. You could hand a cook that handful without a word and they would tell you what you were making.

Read the n on every row before you read the share. A base seen 10 times can be 100% of one cuisine and mean far less than a base seen 63 times at 10%. Both are printed, in both directions, for exactly that reason.

The most cuisine-diagnostic bases, at or above 6 recipes. Unnamed rows are bases the curated name dictionary had no entry for — not weaker bases.
basewhat goes inrecipescuisine concentration
the jerk aromatic baseallspice + garlic + scallion + thyme10Jamaican — 100%, 62.9×
the taco rubchili powder + cumin + garlic + lime + paprika6Tex-Mex — 100%, 52.8×
bumbugalangal root + garlic + ginger + shallot + turmeric7Indonesian — 86%, 44.6×
unnamed_base_40cayenne + coriander + cumin + olive oil + paprika8Middle Eastern — 75%, 40.1×
the gochujang braise basegarlic + ginger + gochujang + soy sauce + sugar8Korean — 100%, 33.5×
yangnyeomgarlic + gochugaru + gochujang + soy sauce + sugar6Korean — 100%, 33.5×
the chili-cumin seasoning corechili powder + cumin + garlic21Tex-Mex — 62%, 32.6×
unnamed_base_31garlic + shallot + turmeric21Indonesian — 57%, 29.7×
Cajun seasoningcayenne + garlic + onion powder + paprika + thyme11Cajun/Creole — 64%, 29.6×
garlic and thymegarlic + thyme50Jamaican — 46%, 28.9×
unnamed_base_41brown sugar + garlic + sesame oil + sesame seed + soy sauce7Korean — 86%, 28.7×
the stir-fry slurrycornstarch + soy sauce41Chinese-American — 56%, 28.3×
unnamed_base_38garlic + lemon + olive oil + oregano10Greek — 90%, 27.4×
unnamed_base_34cumin + garlic + oregano20Cuban — 50%, 27.2×
The least diagnostic — the openings that will not tell you where you are. These are not failures of the method; they are the grammar the rest sits on.
basewhat goes inrecipescuisine concentration
unnamed_base_6chicken + garlic63Mexican — 10%, 2.1×
unnamed_base_3butter + onion96American — 10%, 2.4×
onion and garlicgarlic + onion378Mexican — 11%, 2.5×
the custard baseegg + milk66French — 8%, 2.7×
the onion-tomato baseonion + tomato110Mexican — 13%, 2.8×
unnamed_base_18egg + onion44Greek — 11%, 3.5×
the onion-carrot openingcarrot + onion99Italian — 12%, 3.8×
ginger-garlic pastegarlic + ginger196Indian — 19%, 4.1×

A tempting conclusion would be that the named bases are the sharp ones and the unnamed remainder is noise. The numbers refuse it. The median named base is 13.84× its top cuisine’s base rate; the median unnamed base is 13.48×. They are the same population. What separates them is whether we had a name on file, and a name on file is a fact about dictionaries, not about cooking.

2026-08-06T15:42:21.084342 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ soup main stew hearty main side dessert appetizer curry taco/wrap snack rice dish salad bread casserole/bake pasta sauce/condiment main (other) onion and garlic (n=378) aglio e olio (n=207) ginger-garlic paste (n=196) onion in olive oil (n=174) cumin and garlic (n=130) the egg-and-flour base (n=120) the onion-tomato base (n=110) the pepper-onion opening (n=109) the onion-carrot opening (n=99) garlic and oregano (n=82) roux (n=70) bay and garlic (n=68) 21% 17% 13% 12% 5% 11% 10% 9% 21% 9% 9% 17% 11% 20% 15% 21% 9% 20% 9% 7% 15% 11% 10% 18% 13% 16% 13% 16% 8% 12% 15% 7% 16% 8% 14% 8% 13% 19% 8% 7% 36% 20% 11% 4% 4% 5% 9% 39% 15% 6% 6% 31% 13% 17% 7% 22% 15% 12% 13% 13% Where each opening leads Share of the recipes each base starts, by the kind of dish they became
Each base publishes only its five most common dish forms; a blank cell means the form is not in that base's top five, not that it is zero. Read a row: this is what happened to the recipes that opened this way.

An opening is a promise about the dish

Because each base carries the recipes it started, we can ask what those recipes turned into. Some openings barely narrow it — onion and garlic leads to soup 21% of the time, at 2.0× the base rate, which still leaves four dishes in five somewhere else. Others are close to a promise. Mirepoix ends in soup 59% of the time — 5.7× the base rate. And the stir-fry slurry (cornstarch + soy sauce) ends in stir-fry 61% of the time, at 23.5×.

The same fourteen openings, read forward: the kind of dish they most over-produce, against how often that kind of dish occurs in the corpus at all.
baserecipeswhat it becomesmost over-represented cuisine
onion and garlic378soup — 21%, 2.0×Mexican — 11%, 2.5×
aglio e olio207hearty main — 21%, 2.3×Greek — 21%, 6.3×
ginger-garlic paste196hearty main — 20%, 2.2×Indian — 19%, 4.1×
onion in olive oil174soup — 21%, 2.1×Greek — 17%, 5.2×
cumin and garlic130hearty main — 18%, 2.0×Middle Eastern — 17%, 9.1×
the egg-and-flour base120dessert — 16%, 2.2×Hungarian — 9%, 4.8×
the onion-tomato base110stew — 16%, 2.2×Mexican — 13%, 2.8×
the pepper-onion opening109stew — 19%, 2.6×Cajun/Creole — 14%, 6.4×
unnamed_base_1109hearty main — 39%, 4.2×Southern — 13%, 5.8×
unnamed_base_2108main — 31%, 2.7×Indonesian — 36%, 18.8×
the onion-carrot opening99soup — 36%, 3.5×Italian — 12%, 3.8×
unnamed_base_396soup — 31%, 3.0×American — 10%, 2.4×
garlic and oregano82hearty main — 39%, 4.3×Greek — 46%, 14.1×
unnamed_base_478hearty main — 38%, 4.2×Greek — 31%, 9.3×

Most of them are a bowl, not a pan

The picture in a cook’s head — the picture this piece opened with — is a pan of aromatics softening. It is not what the corpus mostly holds. Classifying each base by the verbs its entering steps use, 56 of the 82 are things being mixed together, 15 are things being cooked together, and 11 are split between the two. The recurring opening of a modern recipe is more often a marinade, a rub or a batter than a sweat.

The techniques recorded on the steps where a base enters, summed across all 82. Sauté leads any single verb; the bowl verbs — whisk, mix, marinate, combine — fill the rest of the top five.
verb at the entering steptimes
saute680
whisk452
mix407
marinate318
combine253
sweat227
simmer99
blend84
knead83
crush76

The classification is honest about its own bluntness. Roux — butter and flour — is a shape, not a technique: the same two things opening a béchamel open a shortcrust, and 31% of what this base starts ends up as dessert. The lexicon records the pairing that recurs; it does not claim the cook meant a sauce.

The names we went looking for and did not find

51 culinary definitions were written down before the mining ran, each as an exact set of folded ingredient keys. 40 of them matched a surviving base. 11 did not, and publishing that list is the point of this section — a lexicon that only prints its hits is a lexicon you cannot check.

The Louisiana holy trinity — bell pepper + celery + onion — enters together in 13 recipes, against a floor of 20 for a three-ingredient clique. The Chinese aromatic trio (garlic + ginger + scallion) sits at 19, against the same floor of 20. Bouquet garni appears 1 time. Duxelles appears 1 time. None of these is a finding about the trinity, or about classical French garde-manger. It is a finding about this corpus: it barely contains Cajun cooking, and it barely contains the parts of French technique that live in restaurant kitchens rather than home ones. The mining did its job. The corpus is what is thin.

Every culinary name that was sought and withheld. "Absorbed by a more distinct base" means the recipes it would have claimed are already explained by a larger clique; "below anchor cohesion" means the ingredients co-occur early without behaving as a unit.
name looked fortraditionwhat it would berecipesfloorwhy it did not ship
the onion-celery openingwidespreadcelery + onion6240absorbed by a more distinct base
the lemon-oil dressing baseGreek / Levantine / Italiangarlic + lemon juice + olive oil4520absorbed by a more distinct base
the sesame aromatic baseKorean / Chinesegarlic + ginger + sesame oil2620absorbed by a more distinct base
the Korean seasoning baseKoreangarlic + ginger + sesame oil + soy sauce2410absorbed by a more distinct base
the aromatic trioChinesegarlic + ginger + scallion1920below support floor
the holy trinityCajun / Creole (Louisiana)bell pepper + celery + onion1320below support floor
sofrito (with pepper)Puerto Rican / Caribbeanbell pepper + garlic + onion + tomato1110below anchor cohesion
mirepoix with garlicFrench / Italiancarrot + celery + garlic + onion710below support floor
the curry spice coreSouth Asiancoriander + cumin + turmeric420below support floor
bouquet garniFrenchbay + parsley + thyme120below support floor
duxellesFrenchbutter + mushroom + shallot120below support floor

There is no interesting-but-rare tier. A clique below its floor does not ship with an asterisk, because rarity is not evidence: a three-ingredient combination seen six times is a coincidence with a nice name attached.

Two designs we built and threw away

The obvious way to score a candidate base is an independence lift: how much more often do these ingredients enter together than they would if they entered independently? We built it, and it punishes precisely the bases that matter most. Garlic and onion are each so common that the independence baseline expects more co-entries than the corpus contains — members of a step group are not independent draws. Across the published lexicon, the rank correlation between how many recipes a base starts and how well it scores on lift is ρ = -0.73: the ranking is close to the inverse of the truth.

8 of the 82 shipped bases score below 1.0 on lift and would have been deleted by a gate on it — butter + onion among them, at 96 recipes. Meanwhile the highest lift in the lexicon belongs to Cajun seasoning, at 11 recipes: five rare ingredients that almost never meet elsewhere score in the tens of thousands. The lift is still written into every base as a diagnostic. It is simply not allowed to decide anything.

The two ends of the rejected score. Above: real, common openings a lift gate would have thrown away. Below: rare cliques it would have crowned.
baserecipesindependence lift
unnamed_base_3 (butter + onion)960.88
unnamed_base_5 (garlic + sugar)760.54
unnamed_base_6 (chicken + garlic)630.62
unnamed_base_11 (butter + garlic)540.40
unnamed_base_12 (egg + garlic)520.42
unnamed_base_15 (chicken + onion)460.55
Cajun seasoning (cayenne + garlic + onion powder + paprika + thyme)1143,816.127
yangnyeom (garlic + gochugaru + gochujang + soy sauce + sugar)622,530.099
the taco rub (chili powder + cumin + garlic + lime + paprika)611,022.409

The second rejected design is subtler. The distinctness pass has to decide, when two bases start mostly the same recipes, which one to keep. Ordering by support let bare pairs sort ahead of the larger cliques that contain them — a pair would claim a three-ingredient base’s recipes and delete it, which is the opposite of what a lexicon of bases is for. Walking largest clique first gives the more specific base the first claim. Of the 111 pairs living inside a larger shipped base, 84 do not appear in the lexicon in their own right: the bigger base explains them.

That pass is not free, and the ledger shows its cost. The onion-celery opening starts 62 recipes with an anchor cohesion of 0.89 — the cleanest unit in the whole ledger — and still does not ship, because the recipes it would claim are already claimed by a base that says more.

One last set of receipts

The sharpest thing in the lexicon is the jerk aromatic base, and it is also the smallest kind of claim this piece makes: 10 recipes. Here is what they are.

Six of the 10 recipes behind the sharpest base in the lexicon. A hundred per cent of one cuisine, out of ten recipes, is a real pattern and a small one — both at once.
recipecuisinekind of dishenters at step
Jerk ShrimpJamaicanmain1
Jerk TurkeyJamaicanmain1
Curry GoatJamaicancurry1
Gungo Peas SoupJamaicansoup1
Ital StewJamaicanstew1
Jerk PorkJamaicanhearty main1

Honest limitations

  • An ingredient the prose never names cannot enter. Entry detection is a deterministic surface match against the step text; it locates 88.7% of resolved ingredient lines. The rest are in the recipe and invisible to this measurement. Terse recipes — “combine everything and simmer” — therefore contribute fewer and smaller cliques than careful ones, and 3,587 of the 4,566 recipes produce an early step group at all. Support is a count of recipes we could read, not of recipes that exist.
  • The corpus is not the world, and it is not one thing. It is 47% project-authored recipes from the v18 expansion, 31% legacy web recipes and 22% foundry mains. Every base carries its own provenance mix, and 59 of the 82 draw more than half their recipes from a single authoring wave — 7 of them draw all of it. A base can be one authoring wave talking to itself, and the numbers let you see when.
  • Support counts recipes, not cooks. That onion and garlic starts 378 recipes here says something about how recipes get written. It is not evidence about what anybody actually cooks, how often, or in what proportion.
  • A name is asserted only on an exact match. The 33 culinary names come from a dictionary written before the mining ran, and they attach only where the folded ingredient set matches exactly. The 7 descriptive labels — the custard base, the creaming base — claim no tradition and should not be read as one. The 42 unnamed bases are unnamed because the dictionary had no entry, and several of them are as concentrated as the named ones.
  • Cuisine labels are the corpus’s own, folded. Concentration and lift are computed over canonical cuisines from the curated taxonomy. Where a corpus cuisine label is wrong or a regional label sits beside its parent, the concentration inherits that. The dish forms come from the same frozen label sidecar the neighbouring piece on which ingredients decide the dish uses, with the same caveat: it is a careful reading, not a ground truth.
  • Every threshold is a choice, and all of them are printed. First 2 steps; cliques of 2 to 5; floors of 40/20/10/6 by size; anchor cohesion 0.1; overlap 0.5. Loosen them and the lexicon grows; tighten them and it shrinks. The numbers are deliberately blunt round ones so that nobody can accuse the list of having been fitted to look tidy.
  • This piece reads a different corpus cut than its neighbours. 4,566 recipes (sample_corpus_v19.json), where the piece on which ingredients decide the dish reads v18 and the rest of the Instrument Room publishes the 2,345-recipe v17. The step sidecar this piece depends on is keyed to these ids.

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, “The world's cooking, in 82 bases,” https://palate.kitchen/instrument/the-worlds-cooking-in-bases — 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.