Menu - Menu Engineering

Shows which items on your menu earn their place. Every item that sold in the period you choose is placed in one of four groups, Stars, Plowhorses, Puzzles or Dogs, by how much it sold and how much gross profit it makes. It covers every store in your brand and is meant for head office, menu planners and anyone who decides what to promote, reprice or remove.


Updated Wed 28 Oct 2026

Running the report

1
Open Reports and choose Menu Engineering under Menu.
2
Pick your start date and end date. Both days are included. A whole month (for example 1 September to 30 September) is the best place to start, because a single quiet day gives very little to compare.
3
Decide whether you want to see the items that could not be classified, then run the report. The first page shows the quadrant map, followed by one list for each group.
TipRun it for a whole month, then again for the same month a year earlier, to see whether an item has moved from one group to another.

Report options

Select your start date

The first day to include. It starts as today's date. The time of day is ignored: the whole day counts, from midnight.

Select your end date

The last day to include. It starts as today's date. The whole of this day counts too. If you pick the two dates the wrong way round, the report swaps them for the figures, so nothing goes missing.

Hide items with no sales or no recipes

A tick box, ticked by default. Ticked, the last section of the report (Cannot be classified) is hidden, which keeps the report short. Untick it to see every item on your menu that did not sell, sold for nothing, or has no costed recipe. The four groups above it are the same either way.

Ticked: items that cannot be classified are hidden (default)
Unticked: items that cannot be classified are listed at the end

The report at a glance

BOB'S BURGERS
Menu engineering report
For September 2026

The brand name and logo are at the top. The date line shows the whole month name when you chose a full calendar month, and otherwise the two dates, for example For 1 Sep 2026 to 15 Sep 2026. Every day is a calendar day, from midnight to midnight in your brand's local time.

  1. Selected parameters: the option you chose, on the first page only.
  2. The quadrant map: four boxes showing how many rands each group sold and earned.
  3. The item lists: Stars, Puzzles, Plowhorses and Dogs, each with its items, a bar, net sales and gross profit.
  4. Cannot be classified: items that cannot be placed, and why (only when you untick the option).

Selected parameters

A small panel under the heading, on the first page only. It repeats the one option that changes what the report prints.

Selected parameters
ITEMS WITH NO SALES OR RECIPESHidden

It says Hidden when the tick box is ticked and Shown when it is not.

The quadrant map

The four boxes at the top of the first page summarise the whole report. Across the page, gross profit percentage goes from lower on the left to higher on the right. Down the page, value sold goes from more at the top to less at the bottom.

LOWER GROSS PROFIT %HIGHER GROSS PROFIT %
MORE
VALUE
SOLD
Plowhorses
High net sales, low GP% - reprice or re-engineer the recipe
Net sales: R51 100
GP: R24 375 (48%)
Stars
High net sales, high GP% - protect these
Net sales: R64 735
GP: R48 492 (75%)
LESS
VALUE
SOLD
Dogs
Low net sales, low GP% - candidates for delisting
Net sales: R4 550
GP: R1 775 (39%)
Puzzles
Low net sales, high GP% - promote, or move on the menu
Net sales: R11 350
GP: R8 157 (72%)

1 Net sales and GP

Each box shows the net sales of every item in that group (what you actually sold, after discounts, without tax), the gross profit they made in rands, and that profit as a percentage of the sales in brackets. In the example, the Stars sold R64 735 and made R48 492, which is 75%.

2 What each group means

Stars
Sell a lot and earn a good margin. Protect them: keep them on the menu, keep the recipe and the price steady.
Plowhorses
Sell a lot but earn a low margin. Look at the price, or at the recipe cost, because even a small improvement is multiplied by high sales.
Puzzles
Earn a good margin but do not sell much. Promote them, or move them to a better place on the menu.
Dogs
Sell little and earn a low margin. These are the candidates for removing from the menu.

3 How an item is placed

Only items that sold, have a costed recipe and made some net sales are placed. They are first ranked by net sales (rands, not units) and split into two equal halves: the higher-selling half and the lower-selling half. Each half is then split in two again by gross profit percentage, again into equal halves. The result is four groups that are as near as possible the same size. If the number of items is odd, the extra item goes to the higher side.

The line between high and low movesBecause each half is split on its own, "high gross profit" does not have one fixed percentage. An item with a 72% margin can be a Star among the high sellers, while a 70% margin is enough to be a Puzzle among the low sellers. The groups describe how an item compares with the rest of your menu, not whether it meets a target.

4 How profit is worked out

Gross profit is net sales less the cost of the stock used. The cost comes from the recipe that was in force on the day of each sale, so a recipe change in the middle of the period is handled correctly. Both direct stock items and named recipes in the item's recipe are counted. Where an item takes a different amount for eat in and take away, each sale uses the amount for the way it was sold.

The item lists

Below the map there is one list for each group, in this order: Stars, Puzzles, Plowhorses and Dogs. Each list has a heading with the group name, what it means and how many items it holds, then the items from the biggest seller to the smallest, then a section total.

Net salesItemNet sales
(excl)
Gross profit
(excl)
Stars: High net sales, high GP% - protect these3 items
████████████████████412 x Burgers - Classic Cheeseburger (BG01) @ 72% GP41 200.0029 664.00
███████318 x Sides - Large Fries (SD02) @ 80% GP14 310.0011 448.00
████205 x Shakes - Vanilla Shake (SH01) @ 80% GP9 225.007 380.00
Section total 3 items     74.9% GP64 735.0048 492.00

1 The bar

A row of blocks drawn in proportion to net sales. The biggest seller in the group always gets the longest bar (20 blocks), so bars are only compared within the same group, never between groups.

2 The item line

Reads as quantity sold x category - item name (PLU code) @ gross profit %. For example 412 x Burgers - Classic Cheeseburger (BG01) @ 72% GP means 412 were sold and each rand of net sales earned 72 cents of gross profit. An item without a PLU code, or without a category, simply leaves that part out. Quantity is shown for information only: groups are decided by rands sold, not by units.

3 Net sales (excl) and Gross profit (excl)

Both figures are without tax. Net sales is what the item sold for, after its share of any discounts. Gross profit is net sales less the model cost of the recipe. A figure that is shown in pale grey as a dash means there is no figure to show.

4 Section total

The number of items, the group's gross profit percentage, and the group's total net sales and gross profit. These are the same figures as in the quadrant map at the top.

The other three lists look exactly the same. Here they are with the example figures:

Puzzles

Net salesItemNet sales
(excl)
Gross profit
(excl)
Puzzles: Low net sales, high GP% - promote, or move on the menu3 items
████████████████████55 x Salads - Greek Salad (SL01) @ 70% GP4 950.003 465.00
███████████████30 x Burgers - Mushroom Swiss (BG07) @ 72% GP3 600.002 592.00
███████████40 x Desserts - Brownie Sundae (DS02) @ 75% GP2 800.002 100.00
Section total 3 items     71.9% GP11 350.008 157.00

Plowhorses

Net salesItemNet sales
(excl)
Gross profit
(excl)
Plowhorses: High net sales, low GP% - reprice or re-engineer the recipe3 items
████████████████████290 x Burgers - Bacon Double (BG04) @ 50% GP33 350.0016 675.00
███████150 x Chicken - Wings 6 Piece (CK03) @ 45% GP11 250.005 100.00
████260 x Drinks - Soft Drink 440ml (DR01) @ 40% GP6 500.002 600.00
Section total 3 items     47.7% GP51 100.0024 375.00

Dogs

Net salesItemNet sales
(excl)
Gross profit
(excl)
Dogs: Low net sales, low GP% - candidates for delisting3 items
████████████████████45 x Sides - Onion Rings (SD05) @ 40% GP2 025.00810.00
██████████████20 x Desserts - Lemon Tart (DS04) @ 40% GP1 400.00560.00
███████████25 x Kids - Chicken Strips (KD02) @ 36% GP1 125.00405.00
Section total 3 items     39.0% GP4 550.001 775.00

A negative gross profit percentage can appear, usually on a cheap add-on such as a topping, when its recipe costs more than the price it is sold for. Those are worth a second look.

Cannot be classified

Items that cannot be placed in a group are kept out of the split, so they cannot distort it, and listed here instead, each with the reason. This section only prints when the Hide items with no sales or no recipes tick box is not ticked.

Net salesItemNet sales
(excl)
Gross profit
(excl)
Cannot be classified: No net sales, or no costed recipe - kept out of the split3 items
12 x Extras - Extra Sauce (EX01)  |  no recipe or no model costs84.00-
0 x Desserts - Seasonal Pie (DS09)  |  no sales in this period0.00-
30 x Burger Options - No Onion (BO02)  |  net sales value is zero0.00-
Section total 3 items--
no recipe or no model costs
The item sold, but its recipe is missing, or the stock in it has no model cost, so its gross profit cannot be worked out. Fix the recipe or the stock costs and the item will be placed next time.
no sales in this period
The item is on your current menu but sold nothing between the two dates you chose. Good candidates for a look at whether they still belong.
net sales value is zero
The item was sold, but for nothing, or was fully discounted, so a margin cannot be worked out.

Items are listed from the highest net sales to the lowest. The section total only counts items, because there is no gross profit to add up.

Frequently asked questions

Why are the four groups almost the same size?

By design. Items are split in half on net sales and each half is split in half again on gross profit percentage, so the four groups are always within one item of each other in size. This stops one group from being empty or huge by accident. It also means an item is judged against your other items, not against a fixed target.

Why is an item in Cannot be classified?

For one of three reasons, printed next to it: it sold nothing in the period, it sold but for a net value of zero, or it has no costed recipe. Untick Hide items with no sales or no recipes to see the section. Add the missing recipe or stock cost and the item is placed the next time you run the report.

Why does the net sales total not match my sales reports?

Only items that could be classified are in the four groups, so items that sold without a recipe, or for nothing, are left out. Net sales here are also without tax and after discounts, and only menu item lines are counted, so charges that are not menu items are not included. Compare against a sales report on the same basis, without tax and net of discounts, and remember that the last section can be hidden.

Why do my figures differ from the cashup or Gross Profit reports at the start or end of a period?

This report counts calendar days, from midnight to midnight in your brand's local time. The cashup reports count trading days, which end when your stores close. If your stores trade past midnight, a sale rung up at 01:30 lands on the calendar day here and on the previous trading day in the cashup reports. Over a whole month the difference is small.

Why is the gross profit different from the Gross Profit or Contribution Margin report?

This report works out gross profit from the recipe cost of each item, using the recipe in force on the day of the sale, and counts both direct stock items and named recipes. The stock costs used are your model costs, not what was paid on the day. Reports that cost sales a different way, or that use actual stock movements, will show different gross profit, so compare trends rather than single figures.

Does one item appear in more than one place if I have several menus?

No. Every store in your brand is included, whichever menu it uses, and an item that sells in several stores is added together into one line. It is ranked against every other item in the brand, so an item that only sells in one region can look weaker than it is. Closed stores are included too, if they traded in the period.

Are online orders and voided sales included?

Online orders are included. Voided invoices are not, because they are not real sales.

Why is a topping or option listed as an item?

Toppings, options and extras that are sold as menu items are counted like any other item, so you can see which add-ons are worth their place. If you would rather not see them, they usually show up as Dogs or in Cannot be classified.

Glossary

Calendar day
From midnight to midnight in your brand's local time. This report does not use your stores' close of trade.
Dogs
Items in the lower-selling half that also have the lower gross profit percentage. Candidates for removing from the menu.
GP (gross profit)
Net sales less the cost of the stock used to make the item, in rands.
GP %
Gross profit as a percentage of net sales. 72% means that each rand of sales earns 72 cents of gross profit.
Model cost
The cost per unit set for a stock item in your stock setup, used to cost recipes.
Net sales
What an item sold for, after its share of any discounts, without tax.
Plowhorses
Items in the higher-selling half with the lower gross profit percentage. Reprice them or cut the recipe cost.
Puzzles
Items in the lower-selling half with the higher gross profit percentage. Promote them or move them on the menu.
Stars
Items in the higher-selling half that also have the higher gross profit percentage. Protect them.
VAT
Value-added tax, or your country's equivalent sales tax. Every figure in this report is without it.