Menu Engineering: Formulas, Matrix and a Worked Example (Free Template)

Menu engineering is a method for rating every item on a menu by two numbers: its contribution margin (selling price minus food cost) and its popularity (share of category sales). Each item lands in one of four groups (Stars, Plowhorses, Puzzles or Dogs), and each group gets a different action on price, placement or recipe.
This page gives you the formulas, a full worked example with 10 real-looking dishes, the action plan for each quadrant, and a blank worksheet you can copy. All the math in the example was checked line by line, so you can use it to test your own spreadsheet.
Key Takeaways
- Two inputs per item: contribution margin in dollars and menu mix percentage. Food cost percentage alone is not enough.
- Two thresholds per category: the weighted average contribution margin, and the popularity cutoff of (1 / number of items) x 70%.
- Four quadrants: Stars (keep), Plowhorses (reprice or re-cost), Puzzles (promote), Dogs (rework or remove).
- Analyze one category at a time, for one period, with at least a few weeks of sales data.
- Repeat the analysis after every price or layout change. One run is a snapshot, not a strategy.
Table of Contents
- What is menu engineering?
- Menu engineering formulas cheat sheet
- The menu engineering matrix
- 1. Pick one category and one time period
- 2. Collect sales counts, prices and plate costs
- 3. Calculate contribution margin for each item
- 4. Calculate the menu mix percentage
- 5. Find the two thresholds
- 6. Classify every item
- 7. Decide what to do with each quadrant
- 8. Change the menu, then measure again
- Menu design levers: what the research says
- Limitations and common mistakes
- Free menu engineering worksheet template
What is menu engineering?
Menu engineering is a menu analysis method that compares each item's profit per sale with how often guests order it. The goal is not the lowest food cost. The goal is the highest total contribution margin from the menu you already sell.
The method was first introduced in 1982 by Michael L. Kasavana and Donald I. Smith of Michigan State University, in the book Menu Engineering: A Practical Guide to Menu Analysis (Hospitality Publications). Kasavana himself describes the origin and the four categories in an AHLEI article from April 2025, and the Wikipedia entry on menu engineering gives the same 1982 date.
Two other models are often taught next to it:
- Miller (1980), Menu Analysis: the matrix in Miller's book Menu Pricing and Strategy rates items by food cost percentage and sales volume, not by dollar margin.
- Pavesic (1983), Cost/Margin Analysis: D. V. Pavesic combined food cost percentage with weighted contribution margin, to raise total margin while keeping food cost low. Some sources date this model to 1985.
A 2021 case study in the Tourism and Hospitality International Journal applied all three models (Miller 1980, Kasavana and Smith 1982, Pavesic) to one restaurant and found only small differences in the rankings. Kasavana and Smith's version is the one most people mean when they say "menu engineering", so this guide uses it.
Menu engineering starts after you know your plate costs. If you still need to cost your recipes or set a price from a target food cost, start with our food cost formula and menu pricing guide, then come back here.
Menu engineering formulas cheat sheet
These are all the formulas you need. Run them inside one menu category (for example, mains only).
| Metric | Formula | Example |
|---|---|---|
| Item contribution margin (CM) | Selling price - item food cost (plate cost) | $15.00 - $4.10 = $10.90 |
| Total item CM | Item CM x number sold | $10.90 x 420 = $4,578.00 |
| Total category CM | Sum of all total item CMs | $23,712.50 |
| Weighted average CM | Total category CM / total items sold | $23,712.50 / 1,800 = $13.17 |
| Menu mix % (MM%) | Item sold / total items sold in category | 420 / 1,800 = 23.33% |
| Popularity threshold | (1 / number of items) x 70% | (1 / 10) x 0.70 = 7.00% |
| CM category | High if item CM is at or above the weighted average CM, else Low | $10.90 < $13.17 = Low |
| MM category | High if MM% is at or above the popularity threshold, else Low | 23.33% >= 7.00% = High |
| Item food cost % (context only) | Item food cost / selling price | $4.10 / $15.00 = 27.3% |
Why 70%? If all 10 items sold equally, each would take 10% of sales. Menu engineering calls an item popular if it reaches at least 70% of that fair share. The LibreTexts open textbook Introduction to Food Production and Service states it this way: "Menu analysis assumes that popular items have sales of 70% or more of the expected popularity." A Northern Arizona University menu engineering exercise uses the same example: 1/10 x .70 = 7%.
The same textbook defines the average CM as "the total contribution margin divided by total numbers of items sold". That is a weighted average. A simple average of the item CMs gives a different (and misleading) answer, as you will see in step 5.
The menu engineering matrix
The matrix crosses the two ratings. Kasavana's own AHLEI article defines the four groups by "profitability" (CM) and "popularity" (MM%).
| Low popularity (MM% below threshold) | High popularity (MM% at or above threshold) | |
|---|---|---|
| High CM | Puzzle: profitable, but guests rarely order it | Star: profitable and popular |
| Low CM | Dog: low profit and low popularity | Plowhorse: popular, but earns less per sale |
Some courses use other labels for the same grid, such as Gold, Silver, Bronze and DQ in the NAU exercise. The logic does not change.
1. Pick one category and one time period
Run the analysis on one group of items that compete for the same guest decision. A guest picks one main, not "a main or a dessert". If you mix categories, cheap sides look like Plowhorses and steaks look like Puzzles for no useful reason.
- Good categories: mains, starters, desserts, pizzas, cocktails, hot drinks.
- Good periods: 4 to 8 weeks for a busy restaurant, longer for a small cafe. Avoid a period with a holiday, a closure or a big promotion unless you analyze it on its own.
- Keep the item list fixed. If a dish was added in the middle of the period, its count is not comparable.
Our example uses the mains category of a casual restaurant over 4 weeks: 10 items, 1,800 mains sold.
2. Collect sales counts, prices and plate costs
You need three numbers per item:
- Number sold from your POS product mix (PMIX) report. Count voids and comps the same way for every item.
- Selling price before sales tax. If you add a service charge, leave it out.
- Item food cost (plate cost) from a costed recipe, including garnish and the side that comes with the plate.
| Item | Number sold | Food cost | Selling price |
|---|---|---|---|
| Classic Burger | 420 | $4.10 | $15.00 |
| Grilled Salmon | 180 | $9.20 | $26.00 |
| Ribeye Steak | 95 | $14.50 | $36.00 |
| Chicken Parmesan | 310 | $5.40 | $19.00 |
| Fish and Chips | 260 | $5.80 | $17.00 |
| Mushroom Risotto | 70 | $3.60 | $18.00 |
| Lamb Shank | 60 | $8.90 | $28.00 |
| Veggie Bowl | 55 | $4.20 | $14.00 |
| Pasta Carbonara | 290 | $3.90 | $16.00 |
| Pork Chop | 60 | $7.70 | $20.00 |
| Total | 1,800 |

3. Calculate contribution margin for each item
Subtract food cost from price, then multiply by the number sold. Total revenue and total food cost are useful checks.
| Item | Item CM | Total food cost | Total revenue | Total CM | Food cost % |
|---|---|---|---|---|---|
| Classic Burger | $10.90 | $1,722.00 | $6,300.00 | $4,578.00 | 27.3% |
| Grilled Salmon | $16.80 | $1,656.00 | $4,680.00 | $3,024.00 | 35.4% |
| Ribeye Steak | $21.50 | $1,377.50 | $3,420.00 | $2,042.50 | 40.3% |
| Chicken Parmesan | $13.60 | $1,674.00 | $5,890.00 | $4,216.00 | 28.4% |
| Fish and Chips | $11.20 | $1,508.00 | $4,420.00 | $2,912.00 | 34.1% |
| Mushroom Risotto | $14.40 | $252.00 | $1,260.00 | $1,008.00 | 20.0% |
| Lamb Shank | $19.10 | $534.00 | $1,680.00 | $1,146.00 | 31.8% |
| Veggie Bowl | $9.80 | $231.00 | $770.00 | $539.00 | 30.0% |
| Pasta Carbonara | $12.10 | $1,131.00 | $4,640.00 | $3,509.00 | 24.4% |
| Pork Chop | $12.30 | $462.00 | $1,200.00 | $738.00 | 38.5% |
| Total | $10,547.50 | $34,260.00 | $23,712.50 | 30.8% |
Check: $34,260.00 revenue - $10,547.50 food cost = $23,712.50 total CM. The numbers agree.
Look at the Ribeye. It has the worst food cost percentage on the menu (40.3%) but the best CM per plate ($21.50). A manager who only watches food cost % would push it down. Menu engineering keeps it, because the bank deposits dollars, not percentages.
4. Calculate the menu mix percentage
Divide each item's count by the category total of 1,800.
| Item | Number sold | Menu mix % |
|---|---|---|
| Classic Burger | 420 | 23.33% |
| Chicken Parmesan | 310 | 17.22% |
| Pasta Carbonara | 290 | 16.11% |
| Fish and Chips | 260 | 14.44% |
| Grilled Salmon | 180 | 10.00% |
| Ribeye Steak | 95 | 5.28% |
| Mushroom Risotto | 70 | 3.89% |
| Lamb Shank | 60 | 3.33% |
| Pork Chop | 60 | 3.33% |
| Veggie Bowl | 55 | 3.06% |
| Total | 1,800 | 100% (99.99% after rounding) |
5. Find the two thresholds
Popularity threshold: (1 / 10) x 0.70 = 7.00%. In units, that is 7% of 1,800 = 126 sold. Any main that sold 126 or more is "High" popularity.
Weighted average CM: $23,712.50 / 1,800 = $13.17 (exactly $13.1736). Any main with a CM of $13.17 or more is "High" CM.
Common error: if you take a simple average of the ten item CMs, you get $141.70 / 10 = $14.17. With that wrong cutoff, Chicken Parmesan ($13.60) drops from Star to Plowhorse, and you might raise the price of your best-balanced dish. Always weight by the number sold.
6. Classify every item
Compare each item with both thresholds and read the quadrant from the matrix.
| Item | Item CM | CM rating | MM% | MM rating | Classification |
|---|---|---|---|---|---|
| Grilled Salmon | $16.80 | High | 10.00% | High | Star |
| Chicken Parmesan | $13.60 | High | 17.22% | High | Star |
| Classic Burger | $10.90 | Low | 23.33% | High | Plowhorse |
| Fish and Chips | $11.20 | Low | 14.44% | High | Plowhorse |
| Pasta Carbonara | $12.10 | Low | 16.11% | High | Plowhorse |
| Ribeye Steak | $21.50 | High | 5.28% | Low | Puzzle |
| Mushroom Risotto | $14.40 | High | 3.89% | Low | Puzzle |
| Lamb Shank | $19.10 | High | 3.33% | Low | Puzzle |
| Pork Chop | $12.30 | Low | 3.33% | Low | Dog |
| Veggie Bowl | $9.80 | Low | 3.06% | Low | Dog |
Result: 2 Stars, 3 Plowhorses, 3 Puzzles and 2 Dogs. The three Plowhorses produce $10,999.00 of the $23,712.50 total CM (46.4%), so small changes there matter most in dollars.
7. Decide what to do with each quadrant
The actions below follow the standard teaching material (the LibreTexts textbook and the NAU exercise linked above), with numbers from our example.
Stars: protect them
- Keep the recipe and portion exact. LibreTexts: "Maintain the specifications of the item rigidly."
- Give them a visible place on the menu, such as the top of the category or a short highlighted box.
- Test small price increases. The NAU exercise lists "Test for price elasticity." For Grilled Salmon, +$1.00 adds $180 per 4 weeks at the same volume.
Plowhorses: raise the margin without losing the guest
- Increase prices slowly. LibreTexts advises: "Increase prices carefully and gradually."
- Do the break-even math first. Burger at $16.00 has a CM of $11.90. To match today's $4,578.00 you need 4,578 / 11.90 = 384.7, so 385 burgers. You can lose up to 35 sales (8.3%) and still earn more. If volume drops 5% to 399, total CM is $4,748.10, which is $170.10 more.
- Lower the plate cost. Review portion size, the side, or one ingredient. Cutting $0.30 from the Carbonara plate adds 290 x $0.30 = $87.00 with no price change.
- Move them to a quieter spot so they do not take attention from Stars and Puzzles. Guests who want the burger will still find it.
Puzzles: make more guests choose them
- Reposition and describe. LibreTexts: "Shift demand to these items by repositioning them on the menu." Add a clear, appetizing description and a good photo.
- Use servers. Brief staff on one Puzzle per shift.
- Consider a lower price if the item has room. The Ribeye CM is $8.33 above average, so a small cut can still leave it High CM.
- Know the prize. Every guest who picks the Lamb Shank ($19.10) instead of the Burger ($10.90) adds $8.20 of CM. Fifty such switches in 4 weeks add $410.00.
Dogs: rework, reprice or remove
- Remove if the dish has no other role. LibreTexts says items that are neither popular nor profitable are "obvious candidates to remove from the menu."
- Rework if you must keep it. The Pork Chop needs a CM of at least $13.17. A price of $21.00 gives $13.30, which moves it to High CM (a Puzzle), if the volume holds.
- Keep with a reason. The Veggie Bowl may be the only vegetarian main. Removing it can cost whole tables, not just one plate. In that case, cut its cost or raise its price, and keep it.
8. Change the menu, then measure again
Make a small number of changes, write them down with the date, and run the same analysis on the next period of the same length. Compare total category CM, not only the classification of each item.
- Change a few things at a time. If you change ten prices and the layout in one week, you cannot tell which change worked.
- Use the same period length and avoid comparing a holiday month with a normal month.
- Re-cost the recipes first. If supplier prices moved, your CM column is out of date before you start.
Monthly is a practical rhythm for most restaurants. A digital menu makes this loop cheaper, because a price change or a new position for a Puzzle does not need a reprint. With a QR menu such as QR Menu Generator you edit the item and the change shows to guests at once, and you can add or improve product photos and descriptions for Puzzles. See how to update seasonal menu offerings without printing.

Menu design levers: what the research says
Menu engineering tells you which items to push. Menu design is how you push them. Some popular design rules have weaker evidence than people think.
- The "sweet spot" is not proven. In an eye-tracking study of 25 diners, Sybil Yang (International Journal of Hospitality Management, 2012) found that diners read two-page menus "like a book", left to right and down, and found no sweet spot above the right-hand midline, as reported by Nation's Restaurant News. Wikipedia's article also notes there is "no empirical evidence on the efficacy of the sweet spots on menus". Practical lesson: put Stars and Puzzles where guests read first in each category, and test it with your own data.
- Diners pick the main first. The same study reports that guests choose the entree and then build the meal around it. Your mains category deserves the first analysis.
- Price format can change spending. In a Cornell study at a Culinary Institute of America restaurant, guests with numeral-only prices (no dollar sign) spent significantly more than guests with "$" or written-out prices (Yang, Kimes and Sessarego, 2009, Cornell eCommons). The authors note the result may apply only to that restaurant's lunch service. The abstract also says that, compared with non-menu factors such as party size and length of time at the table, the price format did not significantly affect total spending, so those factors mattered more.
- Descriptions and photos help Puzzles because they give guests information, and Yang's study suggests guests read for information. Write specific, honest descriptions. Our guide to design best practices for digital menus has layout tips.
A note on sources. Many articles on menu labels cite research from Brian Wansink's former Cornell lab. In September 2018, Cornell's provost stated that a faculty committee found Wansink "committed academic misconduct in his research and scholarship", and that he would retire from Cornell. Retraction Watch reported that JAMA journals retracted six of his papers that month. This page does not rely on those studies.
Limitations and common mistakes
- Mixing categories. Analyze mains with mains. A $6 side and a $36 steak do not compete for the same choice.
- Using a simple average CM. Weight by number sold, as in step 5.
- Ignoring labor. Classic menu engineering uses food cost only. A Puzzle that takes 20 minutes of a cook's time on a busy line may cost more than its CM shows. Add a note for labor-heavy items, or use prime cost thinking for those dishes.
- Small samples. With 60 sales, a few large tables can move an item across the threshold. Use longer periods for slow categories.
- Seasonality. Soups and salads swap places between winter and summer. Compare the same season, or run seasonal menus as separate analyses.
- Old plate costs. If ingredient prices changed, the CM column is wrong. Re-cost before each run.
- Ignoring strategic items. Kids' meals, the only vegan dish, or a signature item can be a "Dog" that still brings in tables. Decide with the numbers, not by the numbers.
- Ignoring cross-sales. An item that guests share with drinks or desserts can be worth more than its own CM. The matrix sees each item alone.
- Too many changes at once. Change a few items per cycle so you can see cause and effect.
Free menu engineering worksheet template
Copy this table into a spreadsheet. Fill columns A to D, then use the formulas in the header row. Add one row per item in the category.
| A. Item | B. Number sold | C. Food cost | D. Selling price | E. Item CM (D - C) | F. MM% (B / total B) | G. Total CM (E x B) | H. CM rating (E vs avg CM) | I. MM rating (F vs threshold) | J. Class | K. Action |
|---|---|---|---|---|---|---|---|---|---|---|
| Totals | Total sold | 100% | Total CM |
| Summary cell | Formula |
|---|---|
| Weighted average CM | Total CM / Total sold |
| Popularity threshold | (1 / number of items) x 0.70 |
| Class (J) | H + H = Star, Low CM + High MM = Plowhorse, High CM + Low MM = Puzzle, L + L = Dog |
Spreadsheet tip: if items sit in rows 2 to 11, the CM rating in Google Sheets or Excel is =IF(E2>=SUM($G$2:$G$11)/SUM($B$2:$B$11),"High","Low") and the MM rating is =IF(F2>=0.7/COUNTA($A$2:$A$11),"High","Low").
Cite this page
You may quote the formulas, the worked example and the worksheet with a link to the source: QR Menu Generator, "Menu Engineering: Formulas, Matrix and a Worked Example (Free Template)", https://qrmenugenerator.io/blog/menu-engineering-guide. Last reviewed: October 2026.
Re-run your menu engineering every month, without reprinting
Put your menu on a QR code and change prices, order, photos and descriptions in minutes. Start on the free plan or see the live demo. Create your QR menu free.
Cover photo by Luke Chesser on Unsplash.
Frequently Asked Questions
- What is menu engineering in simple terms?
- Menu engineering rates each menu item by its contribution margin (price minus food cost) and its popularity (share of category sales). Items fall into four groups, Stars, Plowhorses, Puzzles and Dogs, and each group gets a different action on price, placement or recipe.
- What is the 70% rule in menu engineering?
- It sets the popularity cutoff. Take the share each item would get if all sold equally (1 divided by the number of items) and multiply by 0.70. With 10 items the cutoff is 7%. Items at or above it count as popular.
- How do you calculate the average contribution margin?
- Divide the total contribution margin of the category by the total number of items sold in it. This is a weighted average. A simple average of the item margins gives a different cutoff and can put items in the wrong quadrant.
- What is the difference between a Plowhorse and a Puzzle?
- A Plowhorse sells well but earns a below-average margin per sale, so you work on its price or plate cost. A Puzzle earns an above-average margin but sells poorly, so you work on its position, description and staff recommendations.
- How often should a restaurant do menu engineering?
- Monthly works for most restaurants, and always after a price change, a supplier price change or a new menu layout. Use periods of the same length and season so the results are comparable.
- Should I remove every Dog from my menu?
- No. Remove a Dog only if it has no other role. A dish can be the only vegetarian or kids' option and still bring in whole tables. In that case, cut its cost or raise its price and keep it.
About the author
Evrenus Fırat Polat
Restaurant technology expert and founder of QR Menu Generator. Passionate about helping restaurant owners harness digital tools to grow their business.



