Menu engineering: find the dishes that actually make money
Menu engineering, worked through a Thai menu in baht: sort every dish by popularity and profit into stars, plowhorses, puzzles and dogs, then act on each one.
Menu engineering sorts every dish on your menu by two numbers: how often it sells, and how many baht it leaves you after ingredients (its contribution margin). That gives four groups. Stars sell well and earn well, so protect them. Plowhorses sell well but earn little, so re-cost or re-price them. Puzzles earn well but sell little, so give them better placement. Dogs do neither, so rework or cut them. Run it on four weeks of sales, one menu category at a time, using the price you actually keep.
Menu engineering is a method for finding out which dishes on your menu actually make you money. It puts every dish on two scales at once: how often it sells, and how many baht it leaves after ingredients. The dishes that sell the most are not always the ones that earn the most, and a dish with a "good" food cost percentage can still be dead weight. Plot both numbers together and the menu sorts itself into four groups, each with a clear next step.
This guide walks a seven-dish example Thai menu through the full menu engineering analysis, in baht, and then covers what to do with each group and the mistakes that skew the result.
What menu engineering is, and why food cost % is not enough
Most operators judge dishes on one number. Usually it is food cost percentage, sometimes it is how many sold last month. Both on their own will mislead you.
Food cost percentage tells you how efficiently a dish turns ingredients into sales. It does not tell you how much money it makes. Sales volume tells you what guests like. It does not tell you whether you make anything on it. Menu engineering, the approach Michael Kasavana and Donald Smith published in 1982 and still widely taught in hospitality courses, combines the two:
- Popularity: each dish's share of the plates sold in its category.
- Contribution margin: selling price minus plate cost, in baht. This is the money each plate contributes toward rent, wages and profit.
If you have already worked through our food cost formula guide, you have done the hard part. Menu engineering takes those plate costs and adds the sales side.
The menu engineering matrix: four kinds of dish
Put popularity on one axis and contribution margin on the other, draw a line through the middle of each, and every dish falls into one of four boxes:
- Stars: popular and high-margin. Your best dishes. Protect them.
- Plowhorses: popular but low-margin. Guests love them and they keep the room busy, but each plate earns less than average. Re-cost or re-price.
- Puzzles: high-margin but unpopular. Every one you sell is good money, you just do not sell many. Work out why.
- Dogs: low on both. Rework them or take them off, unless they do a job you can name.
The names come from the original method. Some operators prefer friendlier labels, and Papaya's Copilot calls them stars, quiet losers, hidden gems and dead weight. The logic is the same.
The data you need before you start
You need three things per dish, and you probably have two of them already.
1. Plates sold over at least four weeks. Pull this from your POS. Four weeks smooths out one big party or a public holiday. If you changed the menu mid-month, start from the change.
2. An honest plate cost. Every ingredient, with yield on proteins and a batch cost for sauces. A plate cost that skips yield will push dishes into the wrong box.
3. The price you actually keep. Take VAT out if your prices include it, and leave service charge out. Run dine-in on its own. A delivery order loses roughly a third to commission, so mixing it in drags every margin down. If delivery is a big share of your sales, run it as a separate matrix, using the numbers from our guide to delivery app GP.
One more rule: analyse one category at a time. Comparing a ฿99 som tam with a ฿420 sea bass tells you nothing useful. Run mains together, starters together, drinks together.
Menu engineering analysis: a worked example in baht
Take the seven mains at an example mid-sized Bangkok Thai restaurant, with four weeks of dine-in sales, prices shown without VAT:
| Dish | Price | Plate cost | Margin | Sold | Share | Group |
|---|---|---|---|---|---|---|
| Pad kra pao moo krob | ฿159 | ฿52.60 | ฿106.40 | 620 | 30.2% | Plowhorse |
| Crab fried rice | ฿220 | ฿99.00 | ฿121.00 | 450 | 22.0% | Plowhorse |
| Tom yum goong | ฿280 | ฿112.00 | ฿168.00 | 360 | 17.6% | Star |
| Green curry chicken | ฿199 | ฿48.00 | ฿151.00 | 300 | 14.6% | Star |
| Steamed sea bass, lime | ฿420 | ฿168.00 | ฿252.00 | 150 | 7.3% | Puzzle |
| Massaman lamb | ฿360 | ฿130.00 | ฿230.00 | 90 | 4.4% | Puzzle |
| Stir-fried mixed veg | ฿129 | ฿30.00 | ฿99.00 | 80 | 3.9% | Dog |
Here is how the two lines are drawn.
The margin line is the weighted average contribution margin. Multiply each dish's margin by the plates sold, add them up, and divide by total plates. Here that is ฿292,618 across 2,050 plates, or ฿142.74 per plate. Anything above it is high-margin.
The popularity line uses the 70% rule. With seven dishes, an equal share would be 1 ÷ 7 = 14.3%. The method sets the bar at 70% of that, so 10%, or 205 plates. Anything at or above is popular. The 70% stops every dish below a perfect average share from being labelled unpopular.
Now look at what the matrix shows that food cost % hides. The stir-fried vegetables have the lowest food cost on the menu, 23%, and they are the only dog. The tom yum runs at 40% food cost and is a star, earning ฿168 every bowl. Ranked by percentage alone, you would push the wrong dish.
And the two most popular dishes, kra pao and crab fried rice, are both plowhorses. Together they are over half the plates sold, and both earn below average. That is where the money is.
What to do with each group
Stars: protect them. Do not touch the recipe or the portion. Keep them in the best spot on the menu, make sure every server can describe them, and do not put them on discount; they sell without help. Watch the plate cost, because a star whose main ingredient jumps in price can quietly become a plowhorse.
Plowhorses: re-cost first, then re-price. These carry the room, so be gentle. Two moves, in this order:
- Re-cost. The crab fried rice runs at 45% food cost. Trimming ฿11 from the plate, through a slightly smaller crab portion or a better price from your supplier, adds ฿4,950 a month at the same sales.
- Re-price in small steps. Put the kra pao up ฿10, to ฿169. If every guest keeps ordering it, that is ฿6,200 a month. Even if 5% switch to something else, you still come out about ฿2,600 ahead. You only lose if more than 8.6% stop ordering it, which is unlikely for the most popular dish on the menu.
You can also pair a plowhorse with something that earns: a fried egg add-on, a drink suggestion. The free menu price calculator will tell you what price hits your target before you print anything.
Puzzles: make them easier to choose. The massaman and the sea bass earn well over ฿200 a plate, but few guests order them. Ask why. Is the dish buried at the bottom of the page? Is there no photo on the QR menu? Does the team never mention it? Move it up, add a good photo, rename it if the name means nothing to guests, and brief servers to recommend it. If 40 guests a month order the massaman instead of the kra pao, that is about ฿4,900 more margin, from the same number of guests.
If a puzzle still does not move after a month of real effort, the price may be too high for your crowd. Try a smaller portion at a lower price before you give up on it.
Dogs: rework, cut, or keep on purpose. The stir-fried vegetables earn ฿99 a plate on 80 plates a month. If it is your only vegetarian main, it is doing a job: one vegetarian at a table of six can decide where the whole group eats. Keep it, maybe add tofu and charge ฿149. If it is not doing a job, cut it. Every line you remove makes the kitchen faster and leaves less stock waiting to spoil.
Mistakes that skew the matrix
- Using the menu price instead of the price you keep. VAT, service charge and delivery commission all change the margin. Get this wrong and dishes jump boxes.
- Mixing categories. Drinks and desserts have very different margins from mains. Run each on its own matrix.
- Plate costs that are out of date. A dish costed on January's prawn price is in the wrong box by June. Re-cost before you analyse.
- Reading one bad month. Four weeks is the minimum. A rainy-season dip or a festival week can make a star look like a dog.
- Changing everything at once. If you re-price, move the menu and cut three dishes in the same week, you will not know which change worked. Make a few changes, wait four weeks, measure again.
How often to run it, and how Papaya does it
Once a quarter for the whole menu is a good rhythm, with a quick check whenever you change a price or a key ingredient moves. A spreadsheet is fine for a menu of 20 or 30 dishes, as long as you keep the plate costs current.
The spreadsheet gets painful when you have 60 dishes, three channels and ingredient prices that change weekly. In Papaya, the recipe cost of every dish comes from Papaya Stock, which keeps it in line with your latest purchase prices, and sales come straight from the POS. The menu engineering report, in Inventory Insights on the POS + Inventory Pro AI plan (see pricing), sorts every dish into the four groups for you. Copilot reads the same sales and recipe costs and tells you which dishes to re-price, re-cost or rework. It suggests; it never changes a menu or a price on its own. Because each channel can carry its own price, you can fix a plowhorse on delivery without touching the dine-in menu.
Whichever tool you use, the work is the same: honest plate costs, four weeks of sales, one category at a time, and one clear action per group.
Frequently asked questions
What is menu engineering?
Menu engineering is a way to analyse a menu by putting every dish on two scales at once: popularity (its share of the plates sold in its category) and contribution margin (selling price minus plate cost, in baht). Dishes land in one of four groups, stars, plowhorses, puzzles and dogs, and each group gets a different action.
How do you calculate the menu engineering matrix?
For each dish in one category, work out its contribution margin (price you keep minus plate cost) and its share of plates sold. A dish is "high profit" if its margin is above the category's weighted average margin. It is "popular" if its share is at least 70% of an equal share. With seven dishes an equal share is 14.3%, so the line sits at 10%.
Why use contribution margin instead of food cost percentage?
Because you bank baht, not percentages. A tom yum goong at ฿280 with a 40% food cost leaves ฿168 per bowl. A stir-fried vegetable dish at ฿129 with a 23% food cost leaves ฿99. The one with the worse percentage makes more money every time it sells.
Should I just delete the dogs?
Not automatically. Some low-selling, low-margin dishes do a job, such as the only vegetarian main or a dish a regular group always orders. Keep those on purpose. Cut or rework the ones nobody would miss, because every extra line slows the kitchen and adds stock that can spoil.
How often should I run a menu engineering analysis?
Quarterly for the full menu is a good rhythm, plus a quick check after any price change or when a key ingredient jumps in price. Always use at least four weeks of sales so one busy weekend or a holiday does not skew the result.
Popular is not the same as profitable
Menu engineering is a simple idea that most menus never get: look at how often a dish sells and how many baht it leaves you, at the same time. The dishes your team thinks of as winners are often plowhorses, and the dishes you were about to cut are sometimes your best-earning puzzles.
Start small. Take your mains, pull four weeks of sales, cost each plate honestly, and sort them into the four groups. Pick one action per group, give it four weeks, and run the numbers again. That loop, repeated every quarter, is worth more than any redesign of the menu card.
Menu-price calculator
Price a dish to hit a target food-cost percentage.
More on Food cost & margin
Cost your recipes, cut waste and protect margin without touching the menu.
