Menu Engineering: How to Analyze Restaurant Menu Profitability

Menu Engineering: How to Analyze Restaurant Menu Profitability — Poskio POS guide

Two dishes can have the same food cost percentage and contribute very different amounts of money to your restaurant. Menu engineering looks past percentages to the question that pays the bills: which dishes bring in the most profit, and which ones are popular? The answers tell you what to promote, reprice, rework or remove.

This guide explains the classic menu engineering method developed by Michael Kasavana and Donald Smith, walks through a complete eight-item example with verified calculations, and turns the result into practical menu decisions.

What is menu engineering?

Menu engineering evaluates each dish on two dimensions:

  • Popularity — the dish’s share of all items sold in its menu category (its sales mix).
  • Profitability — its contribution margin: selling price minus food cost, in money rather than percentage.

Combining the two places each dish in one of four quadrants: Stars, Plowhorses, Puzzles and Dogs. The approach deliberately focuses on contribution in money because, as its proponents put it, you deposit cash, not percentages.

The formulas

MeasureFormula
Item contribution margin (CM)Menu price (net of tax) − plate food cost
Total CM for an itemItem CM × number sold
Average CM (benchmark)Total CM of all items ÷ total number of items sold
Sales mix %Number sold of the item ÷ total items sold in the category × 100
Popularity threshold (70% rule)(100% ÷ number of items in the category) × 70%

An item is popular when its sales mix is at or above the threshold, and profitable when its CM is at or above the average CM. With eight items, the threshold is (100% ÷ 8) × 0.70 = 8.75%. The 70% factor recognises that, in a category of eight, not every item can sell an equal 12.5%; an item reaching 70% of an equal share is considered popular.

Use plate costs from standard recipes — see food cost percentage — and quantities sold per item from your POS for the same period.

Worked example: an eight-item menu

A small Italian restaurant analyses one month of its mains and sides category. Prices are net of tax; all figures are hypothetical and calculated exactly.

ItemSoldMix %PriceFood costCMTotal CMClass
Margherita pizza42024.28%$12.00$3.10$8.90$3,738.00Star
Pepperoni pizza36020.81%$14.00$3.90$10.10$3,636.00Star
Lasagna26015.03%$15.00$5.40$9.60$2,496.00Star
Garlic bread30017.34%$5.00$0.90$4.10$1,230.00Plowhorse
Truffle pasta905.20%$19.00$5.20$13.80$1,242.00Puzzle
Seafood risotto704.05%$22.00$8.60$13.40$938.00Puzzle
Caesar salad1508.67%$10.50$2.60$7.90$1,185.00Dog
Veggie wrap804.62%$9.50$3.40$6.10$488.00Dog
Total1,730100%$14,953.00
  • Average CM = $14,953.00 ÷ 1,730 ≈ $8.64.
  • Popularity threshold = 8.75%.
  • Example: Lasagna sells 15.03% (popular) with a CM of $9.60 (above $8.64) → Star.
  • Example: Caesar salad sells 8.67% — just below 8.75% — with a CM of $7.90 → Dog, by a narrow margin.
Menu engineering matrixEight menu items plotted by sales mix percentage and contribution margin. Margherita, pepperoni and lasagna are Stars; garlic bread is a Plowhorse; truffle pasta and seafood risotto are Puzzles; Caesar salad and veggie wrap are Dogs.STARSPUZZLESPLOWHORSESDOGSMargheritaPepperoniTruffle pastaCaesar saladLasagnaSeafood risottoGarlic breadVeggie wrapSales mix % → (threshold 8.75%)Contribution margin $ ↑ (average $8.64)
Original chart plotted from the worked example.

What the example reveals

  • Food cost % can mislead. Lasagna has the highest food cost percentage of the Stars (5.40 ÷ 15.00 = 36%) yet contributes $9.60 per plate, more than the Margherita at about 25.8% food cost. Removing it to “lower food cost” would cost money.
  • Garlic bread is a classic Plowhorse: very popular, low contribution. It still contributes $1,230 a month and drives check size.
  • Puzzles are profitable but under-ordered: truffle pasta and seafood risotto contribute over $13 each but sell rarely.
  • Borderline items need judgement: Caesar salad is only 0.08 points below the threshold. One month of data is not enough to remove it.

What to do with each quadrant

QuadrantPopularityCMTypical actions
StarsHighHighKeep quality and consistency; give prime menu position; test small price increases carefully
PlowhorsesHighLowRaise price slightly, reduce plate cost (portion, ingredients) or pair with higher-CM items; avoid prominent placement
PuzzlesLowHighImprove description and position, suggest them verbally, rename, feature as specials; check price perception
DogsLowLowRework the recipe or price, or remove; keep only if strategically important (e.g. the only vegetarian option)

In the example, a sensible plan might be: keep the three Stars prominent; test garlic bread at a slightly higher price or bundle it with a pizza; feature truffle pasta as a server recommendation; keep the veggie wrap only if it is the main vegetarian choice, and reformulate it to lower its cost; review Caesar salad again next month before deciding.

Worked example: re-pricing a Plowhorse

Garlic bread sells 300 portions a month with a contribution margin of $4.10, for a total of $1,230. Suppose the restaurant raises its price by $0.50, to $5.50, without changing the recipe. The CM per portion becomes $4.60.

ScenarioPortions soldCM per portionTotal CM
Before300$4.10$1,230.00
After, no change in sales300$4.60$1,380.00
After, sales drop 5%285$4.60$1,311.00

Total contribution only falls below the original $1,230 if sales drop below 1,230 ÷ 4.60 ≈ 267.4 portions — fewer than about 267 a month, a decline of roughly 11%. For a popular, inexpensive side, a small price rise is often absorbed. This break-even check — original total CM ÷ new CM per unit — is worth doing before any price change.

Doing the analysis in a spreadsheet

ColumnFormula (Excel / Google Sheets)
A: Item name—
B: Number soldfrom POS item sales report
C: Price (net of tax)—
D: Plate costfrom recipe costing
E: CM=C2-D2
F: Total CM=B2*E2
G: Mix %=B2/SUM($B$2:$B$9)
Average CM (one cell)=SUM($F$2:$F$9)/SUM($B$2:$B$9)
Threshold (one cell)=0.7/COUNTA($A$2:$A$9)
H: Class=IF(G2>=Threshold,IF(E2>=AvgCM,”Star”,”Plowhorse”),IF(E2>=AvgCM,”Puzzle”,”Dog”))

Name the two single cells “Threshold” and “AvgCM”, or replace them with absolute references. Analyse each menu category on its own sheet, because starters, mains and desserts have very different price levels.

Drinks, desserts and specials

Run the analysis separately for each category: comparing a dessert with a main course would always make the main look more profitable. Drinks usually have their own cost structure and are best analysed apart from food. Daily specials are harder to classify because they change often; record their sales and cost anyway, and review them as a group to see whether specials as a whole earn more or less than the regular menu.

Menu design and placement

Analysis only pays off when the menu changes. Common, low-cost levers include:

  • Placement: put Stars and Puzzles in the most visible positions of each section.
  • Boxes and highlights: use them sparingly for items you want to promote.
  • Descriptions: specific, appealing descriptions help Puzzles; avoid long lists of ingredients for everything.
  • Price presentation: align prices discreetly rather than in a column that invites price comparison.
  • Staff suggestions: brief servers on which dishes to recommend this week.

Treat these as hypotheses to test, then measure the effect in the next period’s analysis.

Running menu engineering every period

  1. Choose a period (typically one month) and a category (mains, starters, desserts — analyse each separately).
  2. Export quantities sold per item from the POS for that period.
  3. Update plate costs with current recipe costs and supplier prices.
  4. Calculate CM, total CM, average CM, sales mix and the popularity threshold.
  5. Classify items and agree on one or two actions per quadrant.
  6. Implement menu, price or recipe changes, and brief the team.
  7. Repeat next period and compare.

Item-level sales come from the POS — see reports and analytics and restaurant POS.

Limitations to keep in mind

  • Labour is not included. A high-CM dish that takes twice as long to prepare may not be the best choice at peak times. Academic critiques of the method point to this explicitly.
  • Thresholds are relative. Adding or removing items changes the average CM and the popularity threshold for all others.
  • Seasonality and promotions distort a single month; compare like with like.
  • Strategic items (a children’s dish, a vegetarian option, a signature dish) may deserve a place regardless of their quadrant.
  • Garbage in, garbage out: inaccurate recipes or plate costs lead to wrong classifications.

Get item-level sales data for your menu analysis: the free edition records every sale by product, with demo data to explore.

Frequently asked questions

What is menu engineering?

A method for analysing menu items by popularity (sales mix) and profitability (contribution margin) to classify them as Stars, Plowhorses, Puzzles or Dogs and decide what to promote, reprice, rework or remove.

How is contribution margin calculated for a dish?

Menu price (net of tax) minus the plate food cost. A $15.00 lasagna with a $5.40 plate cost has a contribution margin of $9.60.

What is the 70% rule in menu engineering?

An item is considered popular if its sales mix is at least 70% of an equal share. With eight items, that is (100% ÷ 8) × 70% = 8.75%.

Should I remove all Dogs from my menu?

Not automatically. First try reworking the recipe or price, and keep items that serve a strategic purpose, such as the main vegetarian or children’s option.

How often should menu engineering be done?

Monthly or quarterly, and after any significant menu, price or supplier cost change.

Sources and further reading