12 Hidden Restaurant Costs Quietly Eating Your Profit (and How to Catch Them)

Hidden restaurant costs quietly eating your profit

A lot of owners do the maths in their head and feel sure the shop is making money: sales of ฿150,000 a month, ingredients ฿50,000, rent ฿15,000, wages ฿20,000 — so there should be almost ฿50,000 left as profit. Then the month ends and there's less than ฿20,000 in the account. Where did the money go?

The answer is almost always hidden costs — expenses you genuinely pay every month but that never make it into the books, never get counted in your cost per dish, and are each too small to remember on their own. This article covers the 12 hidden costs we see most often in Thai restaurants, with ballpark figures and a way to catch them within a month.

What are hidden costs, and why are they dangerous?

Hidden costs aren't mysterious. They're ordinary expenses that share three traits:

That last one is the most dangerous, because it means the sales figure you remember and the money that actually lands in your account are different from the start. Added up, hidden costs in a restaurant that doesn't keep detailed records usually come to 8–15% of sales — and if you also sell through delivery apps, the total can go past 20%. That's more than enough to turn a restaurant that looks like it makes a 12% profit into one that breaks even or loses money.

The 12 most common hidden costs

Group 1 — Costs hiding in the kitchen

1. Waste and mistakes — wilted greens, pork left over from yesterday, wrong orders, burnt dishes. A typical made-to-order (ตามสั่ง) shop loses around 3–5% of the ingredients it buys. If you buy ฿50,000 of ingredients a month, that's ฿1,500–2,500 thrown away every month without you noticing. Shops with big menus and many fresh ingredients can hit 8%.

2. Trimming loss (yield) — you buy 1 kg of Chinese kale for ฿40, pick off the yellow leaves and trim the stems, and end up using 800 g. The real cost per kilo that reaches the plate is ฿50, not ฿40. Filleted fish leaves you roughly half, peeled prawns 60–70%. If you calculate cost straight from the purchase price, your cost per dish will always come out lower than reality. (The full method is in How to calculate food cost.)

3. Condiments and cooking oil — fish sauce, soy sauce, sugar, oyster sauce, pepper, vegetable oil. They look like a few satang per plate, but together they add up to ฿3,000–6,000 a month for a mid-sized made-to-order shop. Frying oil that has to be changed every 2–3 days eats far more money than most people think.

4. Cooking gas — a 15 kg tank costs around ฿400–450. A made-to-order shop open every day usually goes through 3–5 tanks a month, or ฿1,300–2,200. If you've never spread that across your cost per dish, every plate you sell carries about ฿1 of cost that has never been counted.

5. Electricity for fridges and air conditioning — a two-door fridge uses roughly ฿250–400 of electricity a month per unit, and it runs 24 hours a day even when the shop is closed. For a shop with 2–3 fridges, a freezer and air conditioning, an electricity bill of ฿4,000–8,000 a month is normal.

Group 2 — Costs hiding at the front of the shop

6. Packaging — rice boxes, carrier bags, soup bags, plastic cutlery, rubber bands, napkins. Together that's around ฿3–6 per takeaway order. At 40 takeaway/delivery orders a day, that's ฿3,600–7,200 a month — and it's a cost that grows with sales. The more you sell, the more you pay, and if your takeaway price is the same as your dine-in price, every takeaway order makes you less profit.

7. Delivery-app GP — apps such as GrabFood and LINE MAN generally take around 30% of what the customer pays. Sell a pad krapow (กะเพรา) for ฿65 on the app and you actually receive about ฿45. With ingredients at ฿23 and packaging at ฿4, your gross profit is ฿18 — compared with ฿42 when you sell the same dish at the same price in the shop. How to price on delivery apps without losing money is covered in How to price your menu.

8. Payment fees and promotions — credit card fees of roughly 1.5–2.5% of the bill, discounts you fund yourself in the apps' campaigns, and coupons you have to co-pay. None of these ever show up as an expense in your books, because they've already been deducted from the money transferred to your account.

9. Staff meals, freebies and tastings — meals for 3 staff × 2 meals × 30 days at ฿25 a plate comes to ฿4,500 a month. That doesn't mean you shouldn't feed your staff — but you should know how much it costs, because it's a real expense, not something free.

Group 3 — Costs that arrive as a big lump when you least expect it

10. Equipment repairs and depreciation — gas stoves, fridges, extractor hoods, fryers: everything has a lifespan. A ฿25,000 fridge that lasts about 5 years is roughly ฿420 a month of depreciation, plus another ฿500–1,500 a month on average for repairs and maintenance. Shops that don't set this money aside run into a cash-flow problem the moment the fridge breaks.

11. Consumables and cleaning — dishwashing liquid, sponges, bin bags, rags, floor cleaner, rubbish collection, grease-trap pumping. Together that's around ฿1,000–2,500 a month, paid in cash ฿100–200 at a time, so nobody remembers how much went out over the whole month.

12. The owner's own labour — this is the most important and the most forgotten. If you stand at the wok 10 hours a day and don't pay yourself a salary, the profit you see is fake profit. If one day you have to hire someone to do your job at ฿18,000 a month, ฿18,000 of profit disappears instantly. A shop that "makes" ฿20,000 a month while the owner works full time is really a shop that barely makes any profit at all.

Estimate table: a made-to-order shop with ฿150,000 monthly sales

The figures below are estimates based on the cost structure above, to show how big hidden costs get when you add them all up. Use it as a template and fill in your own shop's real numbers:

ItemEstimate per month% of sales
Waste + mistakes (4% of ฿50,000 ingredients)฿2,0001.3%
Condiments + cooking oil฿4,5003.0%
Cooking gas (4 tanks)฿1,7001.1%
Electricity for fridges + air con฿5,0003.3%
Packaging (40 orders/day × ฿4)฿4,8003.2%
GP (฿30,000 delivery sales × 30%)฿9,0006.0%
Meals for 3 staff฿4,5003.0%
Repairs + equipment depreciation฿1,5001.0%
Consumables + cleaning฿1,8001.2%
Total hidden costs฿34,80023.2%

Note that this figure doesn't include the owner's salary — or even rent, staff wages or main ingredients. This is only the part most shops "don't write down".

Now spread it per plate. Say the shop sells 100 plates a day, or 3,000 plates a month:

Hidden cost per plate = 34,800 ÷ 3,000 = ฿11.60 per plate

So if you've costed a plate of pad krapow at ฿23 and sell it for ฿65, thinking you make ฿42 gross profit, the truth is closer to ฿30 — before rent and wages. That gap is exactly why a shop can be "busy but broke".

The ฿11.60 figure is an average across every plate, which is useful for a quick overall picture. If you want more detail, work out two separate figures: plates sold in the shop carry neither GP nor packaging, while delivery plates carry both. The hidden cost per plate on the delivery channel is therefore several times higher than this average — and that's why your app prices shouldn't be the same as your in-store prices.

💡 A simple self-check: take the whole month's sales and subtract every baht of expenses you've recorded. If the result doesn't match how much the shop's bank balance actually went up, the difference is hidden costs you haven't caught yet. Numbers don't lie — but memory lies every day.

How to catch hidden costs within one month

Step 1 — Record every baht for 30 days straight, without judging what matters
In the first month, don't worry about setting up neat categories. The only goal is "if money goes out, write it down" — including the ฿60 from the cash drawer you used to buy bin bags. Snapping a photo of the receipt is fine. What works best is recording it the moment you pay, not at the end of the day, because by the end of the day you'll only remember the big items.

Step 2 — Split categories finely enough to make decisions
One big "ingredients" bucket tells you nothing. At a minimum, split it into meat / vegetables / dry goods and condiments / packaging / gas and electricity / shop supplies / repairs and maintenance. That way, when costs rise you'll know where they rose, instead of just knowing "we spent a lot this month". The full category guide is in Simple restaurant bookkeeping.

Step 3 — Record delivery-app sales at the full amount, and record GP as an expense
Don't record only the net amount the app transfers to you — you'll only ever see the final number, not how much GP you paid. Record full sales as income, then record GP as an expense in its own category. Do this for two or three months and you'll see clearly whether delivery is worth it for your shop.

Step 4 — Weigh your waste once a week
Set aside a bin or box for anything thrown out because it spoiled or was made wrong, and once a week estimate its value and record it as an expense under "waste". Most shops are shocked by the first month's figure — and it usually drops by itself in the second month, because everyone in the kitchen gets more careful once they know it's being counted.

Step 5 — Pay yourself a salary and record it as an expense
Set a reasonable figure for the work you actually do, such as ฿15,000–20,000, and transfer it to your personal account every month just like paying an employee. The profit left after that is the shop's real profit — the only number you can use to decide whether to expand, raise prices or cut costs.

Once you've found them, what next?

Most hidden costs can't be cut — a shop needs gas, boxes and fridges. What you can do is make them show up in your selling price. Once you know your hidden cost is ฿11.60 per plate, build it into your pricing formula from the start instead of pricing from ingredient cost alone.

The ones you can really reduce are usually these three: waste (cut by 30–50% by ordering more often in smaller amounts and using older stock first), packaging (compare 2–3 suppliers and stop handing out cutlery to customers who don't need it) and electricity (a fridge with worn door seals can use up to 20% more power — new seals cost a few hundred baht and pay for themselves in two months).

What makes all of this possible is having the numbers in hand every month, not just in your head. Bunchee helps here: snap a photo of a receipt and AI pulls out the items and amounts for you, categorises them automatically, shows price-history charts per category so you can see which costs are moving, and lets you ask in plain language — "How much did we spend on packaging this month?" or "How does this month's waste compare with last month?"

Summary

  1. Hidden costs in a restaurant without detailed records usually run 8–15% of sales — and can be much higher in shops that sell a lot through delivery.
  2. The biggest ones are GP, electricity, packaging, condiments and waste.
  3. The owner's own labour is the biggest and most often forgotten hidden cost — no salary for yourself = the profit you see is fake profit.
  4. Catch them by recording every baht for 30 days, splitting categories finely, and recording delivery sales at the full amount with GP as a separate expense.
  5. Most can't be cut, but they must be built into your selling price — and recalculated every time a major cost moves by more than 10%.

Track your restaurant's income and expenses, and let AI find the missing costs

Bunchee is a free restaurant bookkeeping app — AI receipt scanning, automatic expense categories, ingredient price history charts, and instant daily/monthly summaries.