Muntin Research
The menu-pricing playbook
Of 100 ingredients, 37 have held steady enough to print their price, 19 want a cushion, 7 should float, and 37 are withheld for thin evidence — and for 24 this playbook joins all four layers: pricing, edible cost, cheapest month, and which swap saves nothing.
Read the field report — how each layer stands on published research
The Ingredient State Record
Everything the desk holds on one ingredient, assembled: pricing posture, yield after the knife, the record’s cheapest month, a stand-in that moves with it, and — for the ones that carry it — the 2010–2025 US import stream. Type a name; every layer we lack is simply not drawn. Descriptive, never a forecast or a delivered price.
How each number is computed
Every layer is a formula over the open data — inspect it. Open any one for the calculation and a worked example with real numbers.
The ±band → print, cushion, float, or withhold
Each ingredient's band is the half-width of its wholesale reference around its own recent normal: ±X% means a typical week sits within X% of center. It measures predictability, not price level, and it is a wholesale reference — never your delivered price. Posture takes two things, not one: how tight the band is and whether it has proven out. A band that is both tight and has held across enough recent weeks prints (lock); a tight band that has not yet proven gets a cushion — price to the top of it; a wide band floats; too little recent history → withhold (unproven, not unstable). That is why a tighter ±2.9% band (chicken thigh) can be a cushion while a wider ±4.9% one (pork shoulder) prints: the wider band simply had more proof behind it. Worked: ribeye's band is ±5.8% → lock; romaine's is ±21.8% → float.
True cost = 1 ÷ edible yield (the trim tax)
An invoice price is per pound bought; a plate price is per pound served. Trim tax = 1 ÷ edible yield converts one to the other. Romaine keeps 75% after trim → 1 ÷ 0.75 = ×1.33: every invoice dollar is $1.33 on the plate. Whole crab keeps just 25% → ×4.00. Always multiply by the item's own yield, never a category average. Caveat: these are generic book yields (raw edible trim only). They exclude cooking loss and, for a frozen-then-thawed cut, thaw purge; and for anything you juice or use as garnish the edible-flesh figure won't match your real use. Treat the trim tax as a starting estimate and verify it against your own fabrication.
When a cheapest month is real, not noise
A cheapest-month window is named only when the trough clears the noise: (1) the cheap month's median beats the dearest month's own 25th-percentile week, and (2) the peak-to-trough swing is at least the ordinary within-month spread. Save% = (dear median − cheap median) ÷ dear median. Whole turkey fails both — its monthly medians scatter and a typical January already undercuts a typical February — so it earns no window and prices year-round. Descriptive of the tracked record, never a forecast. Why an item can be "withheld" yet still name a cheap month: the ±band scores an item's recent weeks, while the seasonal low reads its deep multi-year history — two different windows, so thin recent evidence and a real long-run cheap month can honestly coexist.
When a swap only mirrors the rise (k of n)
For each item we count how many of its notable moves a neighbor shared — k of n. Pork shoulder and ground pork shared 6 of 6: every notable move moved together, so the swap is a mirror, not a hedge. Below half shared → the swap is a real hedge. This is co-occurrence, never cause — a shared growing region or shipping lane, not one item pushing the other.
The steepest-trim single items
| # | Ingredient | Edible | Trim tax |
|---|---|---|---|
| 1 | Whole crab | 25% | ×4.00 |
| 2 | Corn on the cob | 28% | ×3.57 |
| 3 | Whole lobster | 30% | ×3.33 |
| 4 | Clams | 30% | ×3.33 |
| 5 | Lime | 35% | ×2.86 |
| 6 | Mussels | 35% | ×2.86 |
| 7 | Artichoke | 40% | ×2.50 |
| 8 | Lemon | 45% | ×2.22 |
A menu price is a bet you print and then live with for months, so pricing a menu well is less about the number on any one invoice than about knowing which numbers hold still. This playbook joins four data layers on each ingredient to answer that in order: whether a cost has held steady enough to print, what a portion actually costs once you pay for the trim, when a cut sits at the bottom of its own year, and whether the obvious swap saves a dollar or just moves the same rise to another line. Of 100 scored ingredients, 37 have held steady enough to print, 19 want a cushion, 7 should float, and 37 stay withheld for want of evidence.
The interactive cards and the 100-row table carry the raw numbers; this page teaches the decision those numbers feed. One honesty note governs all of it: every band here is a wholesale reference read against each ingredient's own normal — how steady the number has run, never the delivered price you pay. Above wholesale is normal, not overpayment. The posture on each card — lock, cushion, float, withhold — is a read on predictability, not a claim about how expensive the item is.
The one decision: print the price or float it
Every ingredient sorts into one of four postures, and the posture is about predictability, not price level. Thirty-seven print. Nineteen cushion — price to the top of the band and let the room absorb the wobble. Seven float — market price, or a rotating special that carries no printed number. And 37 stay withheld: too little evidence to call, so treat them like a float until the record fills in.
The band is the mechanism underneath the posture. It is a wholesale reference read against the item's own recent normal — a half-width that says how far the number has wandered, not how high it sits. A lock is a band tight enough that a printed price still reads true a month later. A float is a band so wide that any printed price is stale by the next delivery. The card hands you the width; the width picks the posture.
Withhold is the one to read carefully, because it is easy to misread as danger. Withhold is not "unstable." It is "not enough history to say." A withheld line behaves like a float on the menu — market price, or off the printed card — but for the opposite reason: not because it swings, because it is unproven. Whole crab is a withhold; so is much of the fish case. Treat those as market-price until they earn a band, not as risks to flee.
Your biggest cost line is your most printable
Here is the counterintuitive part. Proteins — usually the top of the invoice — mostly hold their week-to-week price. Of 27 proteins scored, 9 lock, 2 cushion, and none float. The steady end of the board is thick with proteins: whole turkey holds one of the tightest bands anywhere at plus-or-minus 0.8% — level with pantry staples like red potato, and steadier than almost all produce — with pork loin at plus-or-minus 1.6% and short rib at plus-or-minus 1.8% close behind. The scary line item is the calm one.
Steadiest — they print
Wildest — they float
The wild week-to-week swings live in produce, down at the cheap end of the invoice: broccoli at plus-or-minus 26.4%, yellow squash at plus-or-minus 25%, raspberry at plus-or-minus 24.6%, green leaf lettuce at plus-or-minus 22.3%. A printed broccoli price is stale inside a month; a printed short-rib price holds. The dollar risk on the plate and the volatility of the wholesale reference point in opposite directions.
So trust the print list even for the pricey cuts, and aim the market-price flexibility at produce. The instinct to float the expensive thing because it scares you is backward — the expensive thing is often the steady thing. Point the rotating special and the market-price line at the salad, not the steak. This is a read on the width of the band, the predictability of the number; it is a separate question from when a cut sits cheapest in its own year, which is the seasonal window covered further down.
Price on what reaches the plate, not what crosses the back door
An invoice cost is a cost per pound you buy. A plate cost is a cost per pound you serve. The gap between them is trim, and it works as a multiplier on the reference: 1 divided by the edible yield. Call it the trim tax. A romaine head at 75% yield carries a 1.33 trim tax — every dollar of romaine on the invoice is $1.33 of romaine on the plate. Price on the invoice number and you underprice the dish by a third.
Category means run from citrus at 2.16x — all that peel and pith — down to mushroom at 1.14x, which nearly all cooks down onto the plate. The steepest single item is whole crab at 4x: only 25% of the purchased weight is edible, so a crab invoice quadruples on its way to the guest. The trim tax is often larger than any week-to-week price move, which is why it belongs in the price before the market ever moves.
The discipline is to multiply the reference by the item's own trim tax, never the category average. Two greens in the same category trim differently; two fish in the same category trim very differently. The category mean orients you to the neighborhood — proteins and roots run low, citrus and whole fish run high — but the item's own yield is what prices the specific dish on your specific menu.
The hidden season of meat: the cut is cheapest after its rush, not during
Proteins have a real buying season, and it runs backward from intuition — a cut bottoms out after its peak season, not during it. Eight proteins carry a buying window worth timing in the tracked record. The deepest: whole chicken cheapest in May, about 47% under its own yearly high; chicken breast in November, about 42% under; striploin in September, about 40%; chicken thigh in January, about 40%; ribeye in August, about 26%; pork shoulder in October, about 21%. These are not small gaps between months — they are the difference between a cut's cheap season and its dear one.
Read ribeye and striploin together to see the shape. Both are summer-grill cuts, and both bottom out in August and September — after the summer grilling months, not during them. In the tracked record the trough arrives on the far side of the grilling season. The window opens after that season, which is exactly where nobody is looking, because the calendar instinct says buy the grilling cut in grilling season.
The freeze angle is the whole point. The season matters more for a protein than for produce for one reason: you can freeze a protein. A real August ribeye trough is a buy-and-hold play a produce trough can never be, because the lettuce will not keep. That is the layer that turns a low month into inventory on your shelf, and it is why the seasonal read earns its place on the pricey cuts specifically — the same cuts that already print steady enough to hold a menu price.
A real season has to be told apart from noise, and the gate is strict. A cheapest-month window is named only when the trough is real: the cheap month's median has to beat the dear month's own cheap-week — its 25th percentile — and the peak-to-trough swing has to be at least as large as the ordinary month-to-month scatter. Whole turkey is the trap. Folk belief says buy it cheap at Thanksgiving; the wholesale record shows no readable window — its monthly medians scatter, and a typical January week already buys under a typical February. Turkey also holds the steadiest band on the board at plus-or-minus 0.8%, so the honest read is the opposite of a calendar play: its price barely moves, print it year-round. Most seafood carries too little multi-year history to read a season at all, so those stay withheld, not timed. All of this is descriptive of where a cut has sat, month by month — never a forecast that a given month will come in cheap. Act on it two ways: at a cut's window month, lock a freeze buy; ignore any cheap month that does not clear the gate.
The swap that isn't: when substitution only mirrors the rise
The reflex when a price jumps is to swap to a cousin ingredient. The co-movement layer shows when that reflex saves nothing. It reads, for each item, how many of its own notable moves each other item shared — moved the same way within a short window of each other. A high share means the two lines rise together; a low share means the substitute has a life of its own.
of the first item's notable moves, how many its neighbor shared — full bar = a mirror
The tightest pairs move as one. Pork shoulder and ground pork shared 6 of 6. Chicken thigh tracked chicken breast on 5 of 5; chicken breast tracked thigh on 5 of 6. Across the lettuces it is the same story: red leaf and iceberg 5 of 6, romaine and red leaf 5 of 6, iceberg and red leaf 5 of 6. Swap within a pair like that and you trade one rising number for another that is rising with it — a mirror, not a hedge.
This is co-occurrence, never cause — a shared growing region, a shared shipping lane, a shared aisle, not one item pushing the other. But the menu lesson holds either way: a swap only hedges when the replacement moves largely on its own. If the cousin keeps close company with the thing you are fleeing, the swap saves nothing. Look for a substitute with a low shared count, not the one that feels closest on the plate.
Four layers, three dishes: worked examples
Start with ribeye, a lock that carries a real window. The card reads bucket lock, band plus-or-minus 5.8%, trim tax 1.33 at 75% yield, cheapest August at minus 26%, no strong swap. Layer one says print it — a plus-or-minus 5.8% band holds a printed price. Layer two says your plate cost is your own invoice times 1.33, because a quarter of the ribeye is trim. Layer three says August is the freeze month: buy and hold at roughly 26% under its own yearly high. Layer four says there is no mirror-free swap to chase, so do not. Print the steak, freeze in August, leave it alone.
Now a produce float. Romaine's card: float, band plus-or-minus 21.8%, trim tax 1.33, cheapest January at minus 47%, and a 5-of-6 co-mover in red leaf lettuce. Broccoli's: float, band plus-or-minus 26.4%, trim tax 1.54, no readable seasonal window because its monthly prices scatter, and only a 3-of-6 tie to cauliflower. Layer one says print neither — market-price the salad or rotate it. Layer two still bites: broccoli's 1.54 trim tax means a third of the head is stalk you paid for. Layer three splits them — romaine has a January trough you can lean a feature into for a few weeks, broccoli has no window, so time nothing. Layer four says a romaine-to-red-leaf swap mostly mirrors at 5 of 6, while broccoli-to-cauliflower is a looser 3-of-6 tie and the marginally better hedge. Neither leaf freezes, so none of this is buy-and-hold; it is a this-week call.
Close with whole turkey, the steady band with no season. Its card: lock, band plus-or-minus 0.8%, trim tax 2.0 at 50% yield, no readable window. The folk move times it to Thanksgiving; the record says its months scatter and it barely moves at all. So the four layers land as: print it year-round, price the plate at twice the invoice because half the bird is frame and trim, time nothing, swap nothing. Set that beside whole crab — a withhold with a 4x trim tax: no band to print against yet, and only a quarter of it edible, exactly the line that belongs at market price with the trim math done before it reaches the menu. And note onion (a lock, cheapest December at minus 44%, 1.14 trim tax) against chicken breast (a cushion, cheapest November at minus 42%, priced to the top of its plus-or-minus 5.3% band): the same four questions, four different answers each time.
Print the steady lines, float the swingy produce, freeze-buy a protein at its own trough, and skip the swap that only mirrors the rise.
All 100 ingredients, at a glance
Sorted by pricing posture (print → float). The band is a wholesale reference against its own normal, never the delivered price.
| Ingredient | Pricing | Band | True cost | Cheapest | Futile swap |
|---|---|---|---|---|---|
| Acorn squash | ±6% | ×1.43 | Dec −26% | — | |
| Banana | ±0.6% | ×1.54 | — | Apple | |
| Beef tenderloin | ±3.5% | ×1.18 | Jul −20% | — | |
| Beet | ±6.1% | ×1.33 | Aug −21% | — | |
| Bok choy | ±5.8% | ×1.25 | Mar −34% | — | |
| Butter (AA, bulk) | ±4.4% | — | May −22% | — | |
| Butter lettuce | ±5.8% | ×1.54 | — | Green leaf lettuce | |
| Butternut squash | ±3.8% | ×1.43 | Jan −19% | Red onion | |
| Cabbage | ±6.6% | ×1.25 | — | Kale | |
| Cheddar cheese | ±2.5% | — | — | — | |
| Cilantro | ±1.2% | ×1.43 | Jan −19% | — | |
| Daikon radish | ±4.4% | ×1.18 | — | — | |
| Dill | ±2.9% | ×1.54 | — | — | |
| Eggplant | ±7.1% | ×1.23 | Jan −33% | Red onion | |
| Garlic | ±3.6% | ×1.15 | Jun −17% | — | |
| Ginger root | ±4.4% | ×1.18 | Sep −32% | — | |
| Grapefruit | ±3.4% | ×2.00 | — | Apple | |
| Habanero pepper | ±3.9% | ×1.18 | Jul −23% | — | |
| Leek | ±1.5% | ×2.00 | — | Artichoke | |
| Lemon | ±7.1% | ×2.22 | Mar −40% | — | |
| Mint | ±6% | ×1.43 | — | — | |
| Onion | ±5.4% | ×1.14 | Dec −44% | Short rib | |
| Pear | ±1.3% | ×1.28 | Mar −18% | — | |
| Pineapple | ±5.3% | ×2.00 | Nov −36% | — | |
| Poblano pepper | ±2.9% | ×1.25 | — | — | |
| Pork belly | ±3.2% | ×1.11 | — | — | |
| Pork loin | ±1.6% | ×1.18 | Dec −18% | — | |
| Pork shoulder | ±4.9% | ×1.33 | Oct −21% | Ground pork | |
| Red onion | ±5.8% | ×1.14 | — | Butternut squash | |
| Red potato | ±0.8% | ×1.18 | Jun −26% | — | |
| Ribeye | ±5.8% | ×1.33 | Aug −26% | — | |
| Russet potato | ±4.5% | ×1.23 | Apr −55% | — | |
| Short rib | ±1.8% | ×1.54 | — | Onion | |
| Striploin | ±3% | ×1.25 | Sep −40% | — | |
| Vegetable oil | ±5.1% | — | — | — | |
| Whole chicken | ±5.7% | ×1.67 | May −47% | — | |
| Whole turkey | ±0.8% | ×2.00 | — | — | |
| Apple | Cushion | ±19.6% | ×1.28 | — | Grapefruit |
| Artichoke | Cushion | ±11.5% | ×2.50 | Aug −45% | Leek |
| Asparagus | Cushion | ±16.7% | ×1.82 | Mar −32% | — |
| Avocado | Cushion | ±16.8% | ×1.33 | Nov −32% | — |
| Bell pepper | Cushion | ±14.4% | ×1.22 | — | — |
| Cantaloupe | Cushion | ±11.5% | ×2.00 | Aug −26% | — |
| Cherry tomato | Cushion | ±12.7% | ×1.00 | Oct −28% | Yellow squash |
| Chicken breast | Cushion | ±5.3% | ×1.05 | Nov −42% | Chicken thigh |
| Chicken thigh | Cushion | ±2.9% | ×1.11 | Jan −40% | Chicken breast |
| Corn on the cob | Cushion | ±16.1% | ×3.57 | May −16% | — |
| Cucumber | Cushion | ±12.6% | ×1.05 | Jul −40% | Zucchini |
| Green beans | Cushion | ±18.9% | ×1.14 | Mar −51% | Cherry tomato |
| Napa cabbage | Cushion | ±14.6% | ×1.25 | Jun −33% | — |
| Okra | Cushion | ±19.2% | ×1.18 | Aug −36% | — |
| Parsley | Cushion | ±8.3% | ×1.43 | Mar −30% | — |
| Red leaf lettuce | Cushion | ±18.2% | ×1.43 | Jan −44% | Iceberg lettuce |
| Snow peas | Cushion | ±13.7% | ×1.11 | Mar −46% | — |
| Spinach | Cushion | ±19% | ×1.33 | Jun −39% | — |
| Watermelon | Cushion | ±19.4% | ×2.00 | Oct −29% | — |
| Broccoli | Float | ±26.4% | ×1.54 | — | Cauliflower |
| Brussels sprouts | Float | ±21.2% | ×1.25 | Mar −38% | — |
| Green leaf lettuce | Float | ±22.3% | ×1.43 | Jan −51% | Iceberg lettuce |
| Raspberry | Float | ±24.6% | ×1.00 | Jun −50% | Romaine lettuce |
| Romaine lettuce | Float | ±21.8% | ×1.33 | Jan −47% | Red leaf lettuce |
| Serrano pepper | Float | ±20.1% | ×1.18 | Feb −45% | — |
| Yellow squash | Float | ±25% | ×1.05 | Jul −44% | Cherry tomato |
| Basil | Withhold | — | ×2.00 | — | — |
| Blueberry | Withhold | — | ×1.00 | Aug −57% | — |
| Button mushroom | Withhold | — | ×1.11 | — | — |
| Carrot | Withhold | — | ×1.22 | — | Rutabaga |
| Cauliflower | Withhold | — | ×1.67 | Sep −30% | Broccoli |
| Celery | Withhold | — | ×1.33 | Sep −52% | — |
| Clams | Withhold | — | ×3.33 | — | — |
| Collard greens | Withhold | — | ×1.54 | — | Leek |
| Eggs | Withhold | — | — | Jan −80% | — |
| Green onion | Withhold | — | ×1.54 | Jun −68% | — |
| Ground beef | Withhold | — | ×1.00 | — | — |
| Iceberg lettuce | Withhold | — | ×1.35 | Jan −63% | Red leaf lettuce |
| Jalapeño | Withhold | — | ×1.18 | — | — |
| Kale | Withhold | — | ×1.43 | — | Cabbage |
| Lime | Withhold | — | ×2.86 | Nov −64% | — |
| Octopus | Withhold | — | ×2.22 | — | — |
| Oregano | Withhold | — | ×1.82 | — | — |
| Rosemary | Withhold | — | ×2.00 | — | — |
| Rutabaga | Withhold | — | ×1.28 | — | Carrot |
| Salmon (skin-on fillet) | Withhold | — | ×1.25 | — | — |
| Salmon fillet | Withhold | — | ×1.05 | — | — |
| Scallops | Withhold | — | ×1.00 | — | — |
| Shrimp (head-on) | Withhold | — | ×2.00 | — | — |
| Shrimp (P&D) | Withhold | — | ×1.00 | — | — |
| Shrimp (shell-on) | Withhold | — | ×1.18 | — | — |
| Squid | Withhold | — | ×1.25 | — | — |
| Sweet potato | Withhold | — | ×1.33 | — | — |
| Tarragon | Withhold | — | ×1.82 | — | — |
| Thyme | Withhold | — | ×2.00 | — | — |
| Tomato | Withhold | — | ×1.10 | Mar −47% | Cherry tomato |
| Tuna loin | Withhold | — | ×1.18 | — | — |
| Whole crab | Withhold | — | ×4.00 | — | — |
| Whole halibut | Withhold | — | ×2.00 | — | — |
| Whole lobster | Withhold | — | ×3.33 | — | — |
| Whole salmon | Withhold | — | ×1.82 | — | — |
| Whole trout | Withhold | — | ×1.82 | — | — |
| Zucchini | Withhold | — | ×1.05 | Apr −42% | Cucumber |
39 kitchen profiles — no price band yet
Ingredients we track for prep but do not yet publish a wholesale price for (the new staples + yield-only items). Verified yield, storage, season, and substitutes; the price lights up when the index covers it.
| Ingredient | Edible | Cooked | Keeps | A swap that helps | Best season |
|---|---|---|---|---|---|
| Brown ricenew | 100% | ×3 | 4 d | white rice | year-round (dried pantry staple) |
| Corn tortillanew | 100% | — | 14 d | flour tortilla | Year-round; eats best within a day of pressing, straight off the comal |
| Cotija cheesenew | 100% | — | 28 d | parmesan (or grana-style hard cheese), grated | Year-round |
| Dried black beansnew | 100% | ×2.4 | 4 d | dried pinto beans | Year-round shelf-stable; new-crop (fall-harvested) beans cook fastest and taste best, ideally within ~1 year |
| Dried pinto beansnew | 100% | ×2.5 | 4 d | dried black beans | Year-round shelf-stable; new-crop (fall-harvested) beans cook fastest and taste best, ideally used within ~1 year |
| Farronew | 100% | ×2.5 | 4 d | pearled barley | year-round (dried pantry staple) |
| Flank steaknew | 90% | 76% | 5 d | skirt steak | Year-round |
| Masa harinanew | 100% | — | 2 d | fresh masa (masa preparada / prepared nixtamal dough) | Year-round shelf-stable; best used within ~9-12 months of milling |
| Mozzarellanew | 100% | — | 5 d | low-moisture mozzarella | year-round (fresh mozzarella eats best within a day or two of its make date) |
| Olive oilnew | 100% | — | — | canola or vegetable oil | late fall — new-harvest (olio nuovo) is the freshest, greenest, and most peppery |
| Parmesannew | 95% | — | 45 d | Grana Padano | year-round (aged 12-36 months; steady supply) |
| Queso fresconew | 100% | — | 7 d | feta, mild and rinsed to cut salt/tang | Year-round (best eaten very fresh) |
| Quinoanew | 100% | ×3 | 4 d | couscous | year-round (dried pantry staple) |
| Skirt steaknew | — | 72% | 5 d | flap meat (sirloin flap / bavette) | Year-round |
| Spring mixnew | 95% | — | 5 d | baby spinach | spring and fall (cool weather; summer heat turns baby lettuces bitter and bolts them) |
| White ricenew | 100% | ×3 | 4 d | jasmine or basmati (aromatic long-grain white) | Year-round shelf-stable; US new-crop is milled after the late-summer/fall harvest |
| Arugula | 95% | — | 5 d | watercress | spring and fall |
| Cremini mushroom | 90% | 45% | 7 d | white button | year-round (commercially cultivated indoors) |
| Fennel | 65% | — | 10 d | celery | fall through early spring, peaks in cool weather |
| Ground pork | 100% | 70% | 2 d | ground turkey | year-round (US commodity pork holds consistent quality all year) |
| Ground turkey | 100% | 75% | 2 d | ground chicken | year-round (farm-raised, no growing season) |
| Lamb shoulder | 65% | 65% | 5 d | leg of lamb | spring — traditional 'spring lamb' eats best from early spring to early summer |
| Leg of lamb | 70% | 75% | 5 d | lamb shoulder | spring — traditional 'spring lamb' eats best from early spring to early summer |
| Mango | 68% | — | 5 d | ripe papaya | late spring through summer (May-September) |
| Mussels | 25% | — | 4 d | small clams (littlenecks / Manila / cockles) | Fall through early spring — cooler months, when farmed mussels are plumpest |
| Orange | 50% | — | 21 d | tangerine or mandarin (juice + zest) | winter (Dec-March) for navels; Valencia peaks spring into summer |
| Oyster mushroom | 90% | — | 5 d | shiitake caps | year-round (commercially cultivated indoors) |
| Parsnip | 85% | — | 21 d | carrot | late fall through winter, sweetest after frost |
| Portobello mushroom | 85% | 45% | 7 d | large cremini | year-round (commercially cultivated indoors) |
| Pumpkin | 70% | — | 5 d | butternut squash | fall (October) |
| Radish | 85% | — | 10 d | daikon | spring (also a fall crop) |
| Salmon Skin On | 90% | 80% | — | — | year-round |
| Shallot | 85% | — | 30 d | yellow onion | summer at harvest; available year-round from storage |
| Shiitake mushroom | 85% | — | 7 d | cremini or portobello | year-round (commercially cultivated indoors) |
| Strawberry | 89% | — | 5 d | raspberries | late spring to early summer (April-June) |
| Swiss chard | 92% | — | 7 d | beet greens | summer through fall |
| Turnip | 78% | — | 14 d | rutabaga | fall (also a spring crop) |
| Whole branzino | 35% | 80% | 2 d | dorade (Mediterranean sea bream / orata) | Year-round (farmed, Mediterranean) |
| Yukon Gold potato | 85% | — | 45 d | red potato | fall harvest; stored year-round |
Cite & download (CC BY 4.0)
This playbook joins four Muntin open sets per ingredient — lock-or-float and co-movement, yields (CC BY 4.0) and seasonal normals (CC0). The joined 100-ingredient table is released under CC BY 4.0: reuse it, with attribution.
Cite Muntin Cost Index — Menu-Pricing Playbook dataset. muntin.digital/cost-index/menu-pricing/. CC BY 4.0.
Joins four Muntin open sets — lock-or-float and co-movement (CC-BY), yields (CC-BY), and seasonal normals (CC0) — each a wholesale-reference read against the ingredient's own baseline, not the delivered price. Descriptive, never a forecast; co-occurrence, never cause.
Food-safety recall history
No recall in the openFDA window (since 2020). FDA-regulated foods only — USDA/FSIS meat, poultry and egg recalls are absent here, so an empty record is not an all-clear.