Wilson Wu
Chief Revenue Officer, Snappy
September 24, 2026·16 min read
Menu engineering ranks every dish on two numbers, contribution margin in dollars and share of category sales, then sorts them into four quadrants: Stars (high margin, high popularity), Plowhorses (low margin, high popularity), Puzzles (high margin, low popularity) and Dogs (low margin, low popularity). Each quadrant gets a different action. You need a plate cost and a POS item sales report, and nothing else.
The method comes from Michael Kasavana and Donald Smith, who published Menu Engineering: A Practical Guide to Menu Analysis in 1982 (Wikipedia). It is more than forty years old, it costs nothing to run, and it is still the highest-leverage margin exercise an independent operator can do in an afternoon. This guide shows the arithmetic with real numbers, then shows which reports to pull so you never count by hand.
Summary
On this page
Menu engineering is the practice of scoring each dish on profitability and popularity at the same time, then treating each combination differently. Kasavana describes the analysis as centring on “three basic data elements: a) customer demand (number of covers sold), b) menu mix (sales preference scoring), and c) contribution margin (gross profit tabulation)” (AHLEI). Most operators already track one of the three. Very few plot them together, which is where the money hides.
Here is why it beats an across-the-board price increase. Take a six-item entrée category doing 1,000 covers in a period, with $25,970 in category revenue and $16,340 in total contribution margin (the worked numbers are in the table below). A 3% price increase across all six items produces about $779 (25,970 times 0.03), and every guest sees it, including the ones ordering the dish nobody wants.
Now take two targeted moves instead. Lift the contribution margin on the highest-volume item by $2, through a small price move or a portion and sourcing change, and 320 covers produce $640. Move the 70 covers going to the Dog onto the Star, a $7 swing per cover ($20 minus $13), and that produces $490. Two dishes changed, $1,130 captured, and most guests never notice.
The honest caveat: the second move assumes those 70 guests trade across rather than walk out. That is testable in one period, and cheaper than a menu-wide reprice.
Every menu item needs two numbers, both already on your POS and recipe cards: contribution margin in dollars, which is menu price minus plate cost, and menu mix as a percentage, the item’s share of units sold within its category. Contribution margin, in dollars. Menu price minus plate cost. Use dollars, not percentages. Percentages tell you how efficient a dish is. Dollars tell you what it actually deposits.
Kasavana’s own example makes the point with two items. If “Chicken Bites has a food cost of $1.00 and a menu price of $3.00 it will have a 33% menu item cost,” while a “NY Strip Steak has a food cost of $2.50 and sells for $5.00, it will carry a 50% menu item cost” (AHLEI). The chicken looks better on the food cost report. But the chicken contributes $2.00 per sale (3.00 minus 1.00) and the steak contributes $2.50 (5.00 minus 2.50). The dish with the worse percentage puts more money in the till every time it sells, which is why menu engineering ranks on the dollar figure.
Our restaurant food cost calculator produces exactly this figure. You enter each ingredient’s pack price, pack quantity and amount used, and it prorates the cost automatically (a $12 bag of flour yielding 1,000g means 250g costs $3.00), then returns total plate cost, food cost percentage and gross profit per plate. That gross profit per plate is your contribution margin. Note what it excludes: labour, rent and overhead. Menu engineering is a dish-level tool, not a P&L.
Menu mix, as a percentage. An item’s units sold divided by total units sold inside its category. Pull it from your POS item sales report for a representative period, typically four to eight weeks with the same number of weekends.
The margin line is the category’s weighted average contribution margin, and the popularity line is typically 70% of an item’s equal share of the category. Every item is judged against these two thresholds, one for margin and one for popularity, and getting them wrong shifts the whole matrix.
The margin line is the weighted average contribution margin of the category. The original rule sets it as “Menu CM / Number of items sold” (AHLEI), meaning total contribution dollars divided by total units, not the simple average of the six item margins. A high-volume item pulls the line toward its own margin, which is what you want: the line reflects the money the category actually makes.
The popularity line has two common versions. The original version from Kasavana and Smith is the more forgiving 70% rule: an item is high in menu mix when its share is “greater than or equal to seventy percent of its equal menu share,” using the formula “1 / N (70%) where, N = number of menu items” (AHLEI). For six entrées that is 1/6, or 16.7%, times 0.7, which gives 11.7%. The stricter version many operators use is plain equal share, 16.7% for six items. The 70% discount exists because a menu never sells evenly, so a dish slightly under its equal share is still pulling its weight.
Pick one and apply it consistently. In the worked example below both lines sort the six dishes the same way; on a long category with a bunched middle the choice matters, and the 70% rule is the one the method was built on.
Which of your top sellers earns the least per plate?
Bring one category's item sales and your plate costs, and we'll map the margin and popularity lines with you, using your own numbers.
Show me my dish rankingsSix entrées, 1,000 covers, real arithmetic. The weighted average contribution margin works out to $16.34 ($16,340 divided by 1,000 units), the equal-share popularity line is 16.7% and the 70% rule line is 11.7%.
| Item | Units | Menu mix | Price | Plate cost | Contribution margin | Quadrant |
|---|---|---|---|---|---|---|
| Roast chicken | 240 | 24.0% | $27 | $7 | $20 | Star |
| House burger | 320 | 32.0% | $21 | $9 | $12 | Plowhorse |
| Fish and chips | 180 | 18.0% | $24 | $11 | $13 | Plowhorse |
| Steak frites | 90 | 9.0% | $39 | $14 | $25 | Puzzle |
| Braised lamb shank | 100 | 10.0% | $34 | $12 | $22 | Puzzle |
| Vegetable risotto | 70 | 7.0% | $22 | $9 | $13 | Dog |
Illustrative figures for demonstration. Category revenue $25,970; total contribution $16,340; weighted average contribution margin $16.34; equal-share popularity line 16.7%; 70% rule line 11.7%.
Read it in two passes. First ask whether the item clears the popularity line. Then ask whether it clears $16.34 in margin. The burger sells the most and earns the least per plate, which makes it the most valuable thing on the list to fix. The risotto does neither, which makes it the easiest decision on the page.
One item most operators get wrong: the steak frites. It looks like a winner because it carries the highest price and the fattest margin, but at 9% of units it is barely contributing. A Puzzle is not a success. It is a dish your guests are not choosing, for a reason you have not diagnosed yet.
The quadrant tells you the action. Kasavana’s short version is that “star items should be retained, plowhorse items repriced, puzzle items repositioned (on the menu), and dog items removed” (AHLEI). The mistake is treating all four as pricing problems, when only one of them is.
| Quadrant | Profile | What it looks like | Do this | Do not do this |
|---|---|---|---|---|
| Star | High margin, high popularity. Kasavana calls these "winners" | Roast chicken: 24.0% of units, $20 margin | Protect it. Lock the recipe, lock the supplier, lock the spec. Give it the best position on the menu and name it in staff briefings. | Do not reprice it casually. It is your volume anchor and the dish guests use to judge value. |
| Plowhorse | Low margin, high popularity. Kasavana calls these "marginal" | House burger: 32.0% of units, $12 margin | Engineer the cost, not the price first. Re-spec the protein, trim the garnish, tighten the portion, renegotiate the single largest ingredient. Then test a modest price move. | Do not delete it. Guests came for it, and volume is exactly what makes a margin fix worth doing. |
| Puzzle | High margin, low popularity. Kasavana calls these "potential" | Steak frites: 9.0% of units, $25 margin | Diagnose before you act. Rename it, move it to a visible position, add a photo on digital channels, brief servers to recommend it. Consider a smaller portion at a lower price point. | Do not raise the price. Low demand at the current price is the problem you are solving. |
| Dog | Low margin, low popularity. Kasavana calls these "losers" | Vegetable risotto: 7.0% of units, $13 margin | Cut it, unless it earns its place another way: a dietary requirement your guests need, a shared prep with a Star, or a dish that anchors a whole table's booking. | Do not keep it out of sentiment. Every line on a menu costs prep time, inventory and guest attention. |
Sources: quadrant definitions and labels per AHLEI; item figures are the illustrative worked example above.
When a Plowhorse fix does turn into a pricing decision, work backward from a target rather than guessing. Our restaurant menu price calculator uses menu price = item cost divided by target food cost percentage, and returns a pricing matrix at 25%, 28%, 30%, 33% and 35% so you can see the whole range before you commit. Run the burger’s $9 plate cost through it and pick the price your guests will accept, not the one the spreadsheet prefers.
Redesigning the menu comes down to three changes, and all three are free: shorten the category, move the Stars and Puzzles into view, and update the digital menu, which can change the same day, before committing anything to print.
Shorten the category. Cutting a Dog does not just remove a low-margin dish, it removes a competing option. Fewer items concentrates demand onto the ones you want ordered, and shortens prep, ordering and waste.
Move the Stars and Puzzles up, and show them. Position is the cheapest change available, and imagery is the next cheapest. Kasavana notes that “research indicates that strategic use of high-quality photos can increase item sales by as much as 30%,” with the caveat that photos are “not appropriate for all operations” and should be limited to keep the presentation balanced (AHLEI). One photo on the Puzzle, not one on everything.
Be honest about the evidence on placement, though. The Wikipedia entry on menu engineering states plainly that “to date, there is no empirical evidence on the efficacy of the sweet spots on menus” (Wikipedia). Treat placement as a hypothesis to test against your own POS data next quarter, not as a law.
Change the digital menu first. Print costs money and takes weeks. Your online ordering menu and your self-serve kiosk can be re-ordered and renamed the same day, which makes them the fastest place to test a Puzzle before committing it to print. A digital menu is also the place where a photo costs nothing to add or remove, so test the imagery there before it goes to the printer. Snappy’s point of sale describes “real-time menu synchronization across POS, online ordering, kiosk & QR,” so the change lands in every channel at once.
Do not run more than one change per dish per period. If you rename a Puzzle, move it and reprice it in the same week, you learn nothing about which one worked.
Quarterly is the right default for most single-location restaurants. That is frequent enough to catch supplier drift and seasonal shifts, and infrequent enough that each period carries a readable sample.
Run it off-cycle in three cases. When a key ingredient’s cost moves more than about 10%, because plate cost is half the calculation and a protein spike can flip a Star to a Plowhorse without anything else changing. When you launch or retire items, because both lines shift the moment the item count changes. And at a seasonal turn, since a patio summer and a February Tuesday do not share a menu mix.
The cost context argues for holding the discipline. Total expenses for an average restaurant rose 36% between 2019 and 2026 (US data) (National Restaurant Association), and Restaurants Canada’s CEO note cites an analysis by Professor Sylvain Charlebois that projects a net decline of approximately 4,000 restaurants across Canada in 2026, with independently owned establishments disproportionately affected (Restaurants Canada). A menu priced against 2024 invoices is a slow leak.
You need three reports, and any competent restaurant POS produces all three: item sales by quantity within each category, modifier-level detail on add-ons and substitutions, and a channel split across dine-in, online, kiosk and marketplace orders.
Item sales by quantity, filtered by category and date range. This is your menu mix. Insist on units sold, not revenue. Revenue rankings flatter expensive dishes and hide the volume items that actually drive the category.
Modifier-level detail. If half the burgers leave with a $2.50 add-on that costs $0.60, your real contribution margin is higher than the recipe card says: 160 add-ons at $1.90 each add $304 to the burger line, or $0.95 per burger sold. If a third get a free substitution that costs $1.80, it is lower.
Channel split. Dine-in, online, kiosk and marketplace mixes are rarely the same, and a delivery commission changes the margin on the same plate. Rank each channel separately.
How you get them depends on your stack.
| Approach | How the menu mix gets counted | How plate cost gets in | Where it breaks | Best fit |
|---|---|---|---|---|
| Paper tickets and a spreadsheet | Tickets tallied by hand for a sample week | Typed in from recipe cards | Thin sample, lost modifiers, nobody repeats it next quarter | A one-category test before you have any reporting |
| Generic POS export into a spreadsheet | Item sales exported by quantity, filtered by category and date | Typed in per item, or from a costing tool like our food cost calculator | Exports come out in revenue order, modifiers sit in a separate report, online and kiosk orders never join | Single location, one channel, an owner comfortable in spreadsheets |
| Separate menu-analysis or inventory software on top of the POS | Pulled from the POS through an integration | Recipe costing kept inside the extra tool | One more subscription, one more login, an integration that breaks on every menu update | Multi-unit groups with a dedicated finance or purchasing person |
| Snappy POS with online ordering, kiosk and QR on the same menu | The POS reports sales, peak hours and labour analysis, with every channel on one menu | Plate cost from your recipe costing, using our food cost calculator or your own sheet | Plate costs still have to be maintained by someone; the POS does not cost recipes for you | Independents and small groups who want channel and location reporting from one system |
Snappy’s point of sale product page lists “enterprise-level reporting including sales, peak hours & labour analysis,” access to “live sales, labour, and menu performance data,” and “multi-location reporting and analytics.” For multi-unit operators the point is comparability: the same six entrées land in different quadrants at different locations, and that difference is usually a merchandising or training problem rather than a menu problem.
If your current system cannot export item sales by quantity by category, that is the finding. Fix the reporting before you touch the menu.
Contribution margin is a dollar figure: “the menu price minus the item’s direct cost” (AHLEI). Food cost percentage is a ratio: plate cost divided by menu price. Menu engineering ranks on the dollar figure because dollars pay rent. A dish with a great percentage and no volume contributes almost nothing.
The original method uses 70% of equal share, so six items gives 11.7% rather than 16.7% (AHLEI). Equal share is stricter and pushes more dishes into the Puzzle and Dog quadrants. Either works if you apply it to every category the same way; the 70% rule is the safer default on a long category.
Four to eight weeks for most restaurants, covering an equal number of weekends and weekdays and avoiding holidays. If a category runs fewer than about 200 covers in that window, extend the period rather than accept a thin sample.
By category, always. Appetizers, entrées, desserts and drinks have structurally different margins and volumes, so a single ranking puts every entrée above every appetizer and tells you nothing. Both lines are calculated inside the category.
Yes, with one adjustment. Subtract any third-party commission from the menu price before calculating contribution margin, because the same dish carries a different margin on a marketplace order than on a dine-in cover. Then rank each channel separately, since menu mix on a delivery app rarely matches the dining room.
Do not attempt the whole menu. Pick the category with the most covers, pull eight weeks of item sales, cost the plates, draw the two lines, and act on one dish per quadrant. That is an afternoon of work against a margin that 41% of Canadian foodservice businesses no longer have (Restaurants Canada).
The framework is public, it is forty-plus years old, and no vendor owns it. What differs between systems is whether the item, modifier and channel reports come out clean enough to run it without rebuilding a spreadsheet every quarter.
To see what sales, peak hours and multi-location reporting look like in a system built for restaurants, talk to our team.
Book a walkthrough
Want to run this every quarter without rebuilding a spreadsheet?
Walk through your own item sales and plate costs with our team, see the reports a system built for restaurants can pull without manual counting, and decide for yourself.

Written by
Wilson Wu
Chief Revenue Officer, Snappy
Wilson Wu is Chief Revenue Officer at Snappy, the restaurant technology company, and is based in Boston. His first job was in a restaurant kitchen, and he has spent his career since at the intersection of hospitality and software, working with operators across Canada on the systems their service runs on. He also builds the technology he writes about. His engineering work includes a per-location customer service agent that answers guests with a restaurant's real hours, menu and prices, deployed with independent restaurants, and a document-extraction model that reads supplier invoices and matches invoice numbers against what is owed. He writes here about what changes on a busy service: ordering, payments, loyalty, the phone, and the Canadian rules behind them. He holds an MBA from Duke University and a Master of Science in Computer Science from Georgia Tech.
Connect on LinkedInNo-obligation walkthrough
Know Which Dishes Are Losing You Money
See your item sales and plate costs mapped onto the four quadrants, on a call built around your own menu.
On this page
Get The Latest Restaurant Data, Trends & Tips