Palate

The Instrument Room

Every cooking verb has its hour

A recipe is a sequence, and the sequence is not arbitrary. We took the 14,362 steps in 2,345 recipes, and placed every technique by where it happens — 0 is a recipe’s first step, 1 is its last.

201 distinct technique labels appear; 66 of them label at least 40 steps and are shown below. The spread matters as much as the position: some verbs are scheduled, and one important one isn’t.

2026-07-26T21:01:09.204499 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ the dot is that verb's mean position; the bar behind it spans the middle half of its appearances (25th–75th percentile) first step midway last step pound 47 soak 65 blanch 47 marinate 241 sweat 86 prep 267 dredge 104 grate 46 boil 574 sear 555 blend 144 saute 886 mix 296 whisk 365 beat 42 coat 127 peel 45 bloom 187 caramelize 85 char 66 melt 53 roast 185 chop 107 toast 264 puree 43 roll 40 mash 71 combine 621 drain 108 deglaze 178 simmer 892 stir fry 201 transfer 49 first step midway last step pan fry 203 layer 74 season 534 fry 85 poach 57 slice 264 braise 105 toss 292 fill 65 grill 211 steam 82 reduce 153 stir 226 bake 391 chill 137 strain 54 shred 64 deep fry 92 thicken 157 rest 428 pour 40 broil 90 fold 112 emulsify 42 wilt 72 baste 67 cool 98 assemble 225 glaze 59 top 250 finish 288 plate 264 garnish 197 Every cooking verb has its hour 66 techniques that label at least 40 of the 13,526 technique-labelled steps in 2,345 recipes, placed by where they happen: 0 is a recipe's first step, 1 is its last. Read down the left column, then the right. Garnishing is not just late — it is the literal last step 92% of the time. The number beside each row is steps carrying that label, not recipes. One label per step: a step that does several things is filed under its busiest verb. Palate step sidecar (recipe_steps_v3, 2,345 recipes; ~40% written for the project) · piece7_kitchen_clock.py
Each dot is a technique's mean position; the bar behind it spans the middle half of its appearances. Read the left column top to bottom, then the right.

The verbs that know their place

Garnish is the literal final step in 92% of the steps that garnish. Soak is the literal first step 88% of the time. These are not tendencies; they are near-rules.

The most tightly scheduled verbs — a narrow middle half means the verb happens at one point in the recipe or not at all.
techniquemean positionmiddle half spanssteps
garnish0.990.00197
plate0.950.00264
pound0.060.0047
soak0.090.0065
finish0.940.13288
deglaze0.510.13178
glaze0.750.1559
blanch0.130.1747

And the one that doesn't

Season is the counterexample, and it is the interesting one. Across 534 steps it spans a middle half of 0.79 — it is the first step of a recipe 20% of the time and the last step 24% of the time. Every other verb in this corpus has an hour. Seasoning happens whenever seasoning is needed, which is the whole argument for tasting as you go.

The loosest verbs — these happen anywhere.
techniquemean positionmiddle half spanssteps
season0.550.79534
slice0.590.76264
chill0.620.75137
fry0.560.7585
drain0.500.70108
melt0.360.6753
rest0.650.67428
chop0.400.63107

The clock and the work are not the same thing

Steps that state a duration can be split by whether they are hands-on. 1,682 of 2,345 recipes (72%) carry a non-zero clock. The median recipe is 12.5 minutes of work and 25 minutes of waiting — a hands-on share of 37%.

2026-07-26T21:01:09.646319 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 0 25% 50% 75% 100% under 30 min 569 recipes 10 min of work 0 min of waiting 30 min – 1 hour 518 recipes 17 min of work 25 min of waiting 1 – 2 hours 242 recipes 14 min of work 60 min of waiting 2 – 4 hours 124 recipes 15.5 min of work 129 min of waiting over 4 hours 229 recipes 6 min of work 480 min of waiting share of the recipe's own clock that is hands-on work total clock 100% 43% 19% 9% 1% 0% hands-on 25% 50% 75% 100% hands-on 0 100 200 300 400 500 600 recipes 425 every stated minute is waiting 375 every stated minute is work median 37% of the 1,682 recipes with a clock The clock and the work are not the same thing Every step that states a duration, added up per recipe and split by whether the step is hands-on. 1,682 of 2,345 recipes state a duration somewhere (72%). Longer recipes are not more work — they are more waiting: the median hands-on time barely moves across the bands. Every recipe with a clock, grouped by how much of it is work Durations are parsed from step prose, so this is a floor, not a ceiling: only 48% of steps state one, and 409 of the 425 “all waiting” recipes do have hands-on steps that never say how long they take. The percentage on each bar is the median share; the minutes beside it are separate medians, so they need not divide to exactly that percentage. Palate step sidecar (recipe_steps_v3, 2,345 recipes; ~40% written for the project) · piece7_kitchen_clock.py
Longer recipes are not more work — they are more waiting. The median hands-on time barely moves across the bands.
total clockrecipesmedian totalmedian workmedian waiting
under 30 min56917.5 min10 min0 min
30 min – 1 hour51840 min17 min25 min
1 – 2 hours24271.7 min14 min60 min
2 – 4 hours124150.5 min15.5 min129 min
over 4 hours229480 min6 min480 min

A four-hour recipe is not four hours of cooking. It is about a quarter of an hour of cooking and a very long wait.

Honest limitations

  • Mentions of a technique are labels on parsed step text, and one label is assigned per step — a step that does several things is filed under its busiest verb.
  • The clock is a floor, not a ceiling. Only 48% of steps state a duration at all, and 409 of the 425 recipes that look like pure waiting do have hands-on steps that simply never say how long they take.
  • The percentage on each band is a median share; the minutes beside it are separate medians, so they need not divide to exactly that percentage.
  • ~40% of the corpus is project-authored and may state sequence more explicitly than recipes in the wild.

Reproduce this

Deterministic, offline, no model calls. Every number on this page is read from the script’s results file — the page cannot state a number the script didn’t produce.

python analysis/instrument_room/scripts/piece7_kitchen_clock.py
python analysis/instrument_room/scripts/piece7_figures.py

Input: data/recipe_corpus/recipe_steps_v3.json (read-only). Every number on this page is in analysis/instrument_room/results/piece7_kitchen_clock.json.