Strong sales but weak profit: where should restaurant owners investigate?

When the till looks busy but the bank balance doesn't move, the cause is usually a handful of costs that grew faster than sales. Here is the order in which to check them.

· 5 min read


Higher sales and lower profit in the same month is one of the most common complaints from restaurant owners, and one of the easiest to misread. Extra covers bring extra food, extra hours, extra packaging and often extra discounts. If each of those grows a little faster than revenue, the business works harder for less. The checks below go from the biggest and quickest to the more detailed.

1. Calculate prime cost for both periods

Start with the two largest controllable costs together. Restaurant365 defines prime cost as total cost of goods sold plus total labour costs, and prime cost percentage as prime cost divided by total sales. It suggests that a successful restaurant's prime cost is approximately 60% of food and beverage sales, around 60 to 65% for full-service and 55 to 60% for quick-service. Treat these as reference points; your own trend matters more than any single benchmark.

Compare the month that worried you with a month you were happy with. Look at the amount left after prime cost, not just at sales.

Hypothetical example: busier month, less money left
Month A sales90,000 currency units
Month A food and beverage cost27,900 (31%)
Month A labour25,200 (28%)
Month A prime cost53,100 (59%)
Left after prime cost, Month A36,900
Month B sales100,000 currency units
Month B food and beverage cost34,000 (34%)
Month B labour31,000 (31%)
Month B prime cost65,000 (65%)
Left after prime cost, Month B35,000

In this example sales rose by 10,000 while the amount available for rent, utilities and profit fell by 1,900. The rest of this article is about finding which of the two lines moved and why.

2. Check whether the sales mix has shifted

Total sales can rise because guests are buying more of your lower-margin items. A promotion on a large sharing platter, a new combo that bundles an expensive protein, or a delivery menu that sells mostly burgers can all lift revenue and lower the average margin per order.

  • Export item sales for both periods and rank items by quantity sold.
  • Next to each item, write its current portion cost and selling price.
  • Calculate the contribution (price minus portion cost) per item and the total contribution per item for each period.
  • Look for items that gained volume but have below-average contribution.

3. Compare theoretical and actual food cost

Theoretical food cost is what your food should have cost based on recipes and what you sold. Actual food cost is opening stock plus purchases minus closing stock. A gap between them points to waste, over-portioning, unrecorded staff meals, theft or recording errors. If you do not have costed recipes, this is the moment to build them for your top 20 sellers, because without them you cannot tell a price rise from a portioning problem.

Also check supplier prices line by line. A few ingredients that rose quietly over three months can move food cost by several points without anyone in the kitchen doing anything differently.

4. Count discounts, voids and complimentary items

Busy periods often come with more voids, more manager discounts and more free items given to settle complaints. Each one is small, so they rarely get reviewed together.

  • Total discount value as a share of gross sales, per period and per cashier.
  • Number and value of voids after an order was sent to the kitchen.
  • Promo codes used, how many orders each generated, and the average order value with and without the code.
  • Complimentary items: who approved them and why.

5. Separate delivery and aggregator orders

If growth came mainly from third-party delivery apps, calculate profit for that channel on its own. Deduct the platform commission, any marketing fees you agreed to, packaging per order and the cost of refunds or missing-item claims. A delivery order with the same menu price as dine-in can leave far less behind once these are counted.

6. Match labour hours to sales by hour

Labour often grows in steps: an extra cook added for a busy weekend stays on the weekday rota, or overtime becomes routine. Put scheduled hours next to sales for each hour of the day for two typical weeks. Hours where staff outnumber orders, and hours where overtime is paid while sales are flat, are where to adjust first.

7. Reconcile cash and payments

Make sure every shift is closed against counted cash and that card and online settlements match what the system recorded. Small daily shortages, refunds processed to the wrong method, or delivery payouts that arrive short are easy to miss when total sales are rising.

8. Review the costs below prime cost

Rent, utilities, software subscriptions, maintenance and bank fees can creep up without anyone noticing. Utilities in particular rise with longer opening hours and more equipment running. List every recurring charge and confirm it is still needed at its current level.

Questions to put to your team this week

  1. Which ten items sold most last month, and what does each one cost us to make today?
  2. Which supplier prices changed in the last 90 days?
  3. What was the total value of discounts, voids and free items, and who approved them?
  4. How much did we keep from an average delivery order after commission and packaging?
  5. In which hours did we pay for more staff than the orders needed?
  6. Did every shift close with counted cash matching the system?

A system such as Zad. Plus can compare sales with the previous period and show profit and loss by branch, which makes these checks faster to repeat each month.

Sources

  1. How to Calculate Restaurant Prime Cost (Restaurant365)

Want to see these numbers in your own restaurant?

Tell us how you operate, and we'll show you how Zad. can help.