Menu engineering: find your stars, puzzles and dogs
A step-by-step menu engineering walkthrough with a worked eight-dish example: classify every item by margin and popularity, then decide what to promote, reprice, rework or remove.
Menyo Team
June 17, 2026

Two dishes sell the same number of plates a month. One leaves you EGP 130 per plate after ingredients, the other EGP 280. Most owners can't say which is which without digging through invoices, so both get the same spot on the menu, the same attention from staff and the same treatment when costs rise.
Menu engineering fixes that. It is a simple method, first published by Michael Kasavana and Donald Smith in the early 1980s, that sorts every dish on two measures: how much money it makes per plate and how often it sells. Four groups come out of it, each with a clear action. You can do it in an afternoon with a spreadsheet and your last month of sales. This guide walks through a full worked example.
1What you need before you start
- Units sold per item for a normal period of four to eight weeks. Avoid Ramadan and holiday weeks unless you are engineering a Ramadan menu specifically.
- Net selling price for each item, meaning without VAT or service.
- Plate cost for each item from an up-to-date recipe card. If you don't have these yet, start with our guide to food cost percentage and recipe costing.
- One category at a time. Compare mains with mains and desserts with desserts. Putting a EGP 85 juice next to a EGP 780 grill platter makes the matrix meaningless.
2Step 1: calculate margin and popularity
For each item, calculate contribution margin (CM) = net price − plate cost. Then calculate two thresholds for the category:
- Average CM = total CM earned by the category ÷ total units sold. This is weighted by sales, so a dish that sells a lot counts more.
- Popularity threshold = (1 ÷ number of items) × 0.7 × total units. The original method uses 70 percent of an equal share, so a dish counts as popular if it sells at least that much.
Here is an illustrative mains section from a casual restaurant, four weeks of sales:
| Dish | Units | Net price | Plate cost | CM (EGP) | Total CM (EGP) |
|---|---|---|---|---|---|
| Chicken shawarma plate | 520 | 240 | 72 | 168 | 87,360 |
| Beef burger | 410 | 310 | 110 | 200 | 82,000 |
| Penne arrabbiata | 380 | 170 | 38 | 132 | 50,160 |
| Kofta plate | 300 | 395 | 117 | 278 | 83,400 |
| Grilled sea bass | 90 | 450 | 190 | 260 | 23,400 |
| Chicken Caesar salad | 70 | 220 | 85 | 135 | 9,450 |
| Mixed grill for two | 60 | 780 | 330 | 450 | 27,000 |
| Veal escalope | 55 | 360 | 175 | 185 | 10,175 |
| Total | 1,885 | 372,945 |
Average CM = 372,945 ÷ 1,885 = EGP 197.80. Popularity threshold = 1,885 ÷ 8 × 0.7 = 165 units.
3Step 2: sort every dish into four groups
| Group | Rule | Dishes in the example |
|---|---|---|
| Star | CM above average, popular | Kofta plate (278, 300 units), beef burger (200, 410 units) |
| Plowhorse | CM below average, popular | Shawarma plate (168, 520 units), penne (132, 380 units) |
| Puzzle | CM above average, not popular | Sea bass (260, 90 units), mixed grill (450, 60 units) |
| Dog | CM below average, not popular | Caesar salad (135, 70 units), veal escalope (185, 55 units) |
Notice the burger. It is a star by less than three pounds of margin. That tells you it is fragile: one more supplier increase on beef or buns and it drops into the plowhorse box. The matrix is most useful for exactly this kind of early warning.
4Step 3: what to do with each group
Stars: protect them
Keep the recipe, portion and quality exactly where they are. Give stars the best positions on the menu (top of the section, a good photo) and never make them the discount item. If costs rise, a small price increase on a star is usually safe, but check it against sales afterwards.
Plowhorses: raise the margin without scaring off the volume
These are your crowd favourites, and they are paying less than they could. Options, in order of how noticeable they are to guests:
- Re-engineer the plate. If half the fries come back uneaten, cut the portion. Cutting 40 g of fries from the shawarma plate saves about EGP 2 a plate, over EGP 1,000 a month at 520 plates.
- Sell a high-margin partner. Offer the shawarma as a combo with a fresh juice at a small discount. The juice's margin lifts the average.
- Add a paid upgrade. Penne with grilled chicken for EGP 60 more, where the chicken costs 25, adds EGP 35 of margin every time it is chosen.
- Nudge the price. A low-cost staple like penne can often take EGP 10 to 15 more without a drop in orders. Test it and compare.
Puzzles: make more people order them
Good margin, not enough buyers. Find out why before acting. Is the dish hidden at the bottom of the section? Is the description vague? Is the price a shock without context? The mixed grill for two probably suffers because "780" looks huge until the guest reads "serves two". Move it to the top of the grills, add a photo and a clear "serves 2" line, and brief waiters to suggest it to pairs. For the sea bass, check waste as well: a low-selling fresh fish is often a source of spoilage, which quietly erases that nice margin.
Dogs: rework or remove
Low margin and low demand. The veal escalope is the textbook case, and if veal is used in no other dish, removing it also simplifies ordering and storage. The Caesar salad is a different story: it may be the only light option on the menu, and a table of four sometimes chooses a restaurant because one person can eat something lighter. Keep a dog only if you can name the job it does, and then at least rework its cost.
Pro Tip
Before cutting a dish, check its ingredients. If removing it frees a perishable that nothing else uses, the savings go beyond the dish's own numbers: fewer orders, less spoilage, one less item to count.
5Removing items without losing customers
Owners hesitate to cut dishes because someone always loves the one you remove. Handle it deliberately:
- Check who orders it. If a dog is ordered mostly by a few regulars, tell them before it disappears, and ask what else they like.
- Offer a close replacement. Veal escalope out, chicken escalope in, using chicken you already stock.
- Retire it in stages. Mark it as available for the next few weeks only, then remove it. On a digital menu that is one edit, not a reprint.
- Watch the category, not the item. Four weeks after removal, total mains margin should be flat or higher. If it dropped, you lost more than the dish.
- Keep the recipe card. A retired dish can come back as a seasonal special.
6Spreadsheet or software?
A spreadsheet handles menu engineering well. Put item, units, net price and plate cost in columns A to D. Then add:
- E (CM): =C2-D2
- F (total CM): =B2*E2
- Average CM cell: =SUM(F:F)/SUM(B:B)
- Threshold cell: =SUM(B:B)/COUNT(B:B)*0.7
- G (group): =IF(B2>=threshold, IF(E2>=avgCM,"Star","Plowhorse"), IF(E2>=avgCM,"Puzzle","Dog"))
The hard part is not the formulas, it is keeping two inputs current: units sold and plate cost. Sales data comes from your POS. Plate costs go stale every time a supplier raises a price.
This is where software saves time. On Menyo's Professional plan, sales reports rank top and bottom sellers with category performance for any period and export to CSV, and the inventory module keeps a live food cost and margin on each dish's recipe as ingredient prices change. Menyo does not draw the four-box matrix for you, but with both numbers current, the spreadsheet above takes minutes rather than an evening. For reading the rest of your menu numbers, see what your menu analytics are telling you.
7Limits of the matrix
Menu engineering is a sorting tool, not a verdict. Keep its blind spots in mind:
- It ignores labour. A dish with great margin that ties up your only grill cook for twelve minutes may not be worth promoting at peak.
- It ignores cross-effects. Some dishes bring tables in; others get ordered alongside profitable drinks.
- It shifts with the calendar. Run it again for Ramadan, summer in Sahel, or any period your mix changes. See building a seasonal menu for rotating items in and out.
- It is only as good as your plate costs. Out-of-date recipes will misclassify dishes with total confidence.
8Frequently asked questions
How often should I run menu engineering?
Quarterly is a good rhythm for most restaurants, plus after any major price change or menu update. Run a separate analysis for seasonal menus such as Ramadan.
Can I use food cost percentage instead of contribution margin?
It's not a good idea. Percentages favour cheap dishes and punish high-ticket ones that earn more money per plate. The method uses margin in pounds for a reason.
Should I remove every dog?
No. Remove dogs that have no strategic job. Keep the ones that serve a purpose, such as a vegetarian option, a kids' dish or a light choice, but rework their cost or price.
How many items should be in each category?
There is no fixed number, but fewer, stronger items are easier to engineer, cook consistently and stock without waste. If a category has many dogs, it is usually too long.
9Your first run
Pick your mains, pull four weeks of units, cost every dish honestly and fill in the table. You will almost certainly find a puzzle hidden at the bottom of the page and a plowhorse that could earn more with a small change. Fix those two first, then re-run in a quarter.
To get item sales and live recipe costs in the same place, try Menyo's Professional plan with a 7-day trial.
Ready to digitize your menu?
Create a beautiful QR menu from a photo in minutes—the AI scan takes about 60 seconds. AI extracts items and prices automatically.
Try Menyo Free