Busy Restaurant but No Profit: The 7 Most Common Causes and How to Fix Them
Customers queue from noon, the kitchen never stops, delivery orders keep pinging — yet at the end of the month, once rent, wages and ingredients are paid, your bank balance has barely moved. Or worse, you're topping it up from your savings. If that sounds like your shop, you're not alone. “Busy but no profit” is one of the most common problems restaurant owners face, and one of the most frustrating, because from the outside the shop looks like it's doing great.
The good news: a busy shop already has the hardest ingredient to fix this problem — customers. What's missing is finding where the money is leaking out. This article covers the 7 most common leaks, how to check which ones are hitting your shop, and fixes you can start this week.
First: sales are not profit
A shop that sells ฿10,000 a day doesn't put ฿10,000 a day in your pocket. If all your costs add up to 97% of sales, the shop keeps just ฿300 a day — and on any slower day it's instantly losing money. So the number to watch isn't sales; it's what's left after everything is paid.
Here's the cost structure of a busy one-unit made-to-order shop with sales of ฿180,000 a month, compared with the same shop after plugging the leaks:
| Item | Before (฿/month) | % of sales | After (฿/month) | % of sales |
|---|---|---|---|---|
| Ingredients | 75,600 | 42% | 63,000 | 35% |
| Labour (incl. OT) | 48,000 | 27% | 43,000 | 24% |
| Rent | 18,000 | 10% | 18,000 | 10% |
| Water, electricity, gas | 12,500 | 7% | 11,000 | 6% |
| Delivery-app GP + fees | 13,500 | 7.5% | 9,000 | 5% |
| Boxes, bags, cutlery | 6,500 | 3.6% | 5,000 | 2.8% |
| Miscellaneous + maintenance (averaged) | 4,000 | 2.2% | 4,000 | 2.2% |
| Net profit | 1,900 | ~1% | 27,000 | 15% |
Exactly the same sales, the same customers, yet more than 14 times the profit — and no single line had to be slashed. Each one moved just a few percent. The figures in the table are a hypothetical example to illustrate the point; your shop will differ, but this pattern is very common.
Cause 1: Your cost per plate is higher than you think
Many owners set prices based on competitors or gut feel without ever working out the real cost per plate. Once you break it down, you often find some best-sellers carry an ingredient cost of 50–60% of the selling price. The more they sell, the more they eat into the profit from your other dishes.
How to check: Take your top 5 best-sellers and cost each plate in full — including oil, seasonings, the fried egg, side vegetables, and the box (for delivery). A typical target for a Thai restaurant is an ingredient cost of about 30–40% of the selling price. See the detailed method in how to calculate food cost.
How to fix: For any dish over target, pick one route: raise the price, adjust the recipe/portion, or bundle it with a higher-margin drink or side.
Cause 2: Ingredient prices went up, your menu prices didn't
Minced pork, eggs, cooking oil and some vegetables move up and down all year. Most shops are afraid to raise prices in case customers leave, so they absorb the difference themselves. A rise of ฿5–10 per kilo may not sound like much, but if you use 10 kg of pork a day and pork goes up ฿10/kg, that's an extra ฿2,600 a month (26 days) from a single ingredient.
How to check: Compare the unit price of your 5–10 main ingredients with 3–6 months ago. If you have no records, that's the first problem to fix.
How to fix: Review prices every quarter. If cost per plate goes over your target, raise prices in small steps (฿5) rather than waiting until you need one big jump. See how in how to price your menu for real profit.
Cause 3: Selling on delivery apps at the same price as in-store
This is the most common reason shops get “busier and poorer” these days. If the app (GrabFood, LINE MAN and the like) takes around 30% GP, a ฿60 dish on the app leaves only about ฿42 for the shop. If ingredients plus the box cost ฿25, the remaining ฿17 has to cover wages, rent and electricity — and usually it doesn't.
How to check: Separate in-store sales from each app's sales, then look at what the app actually transfers to you — not the sales figure shown in the app.
How to fix: Set app prices separately from in-store prices with the formula: app price = the price you want to receive ÷ (1 − GP). Drop dishes that lose money on the apps, and encourage regulars to order directly from you.
Cause 4: Labour grows with sales, but productivity doesn't
When a shop gets busy, the first thing owners do is hire more people or have staff work overtime. That's not wrong, but many shops add staff based on a feeling of “we're slammed” rather than looking at which hours are actually busy. The result: 3–4 people standing around in the afternoon while lunch is still short-handed.
How to check: Calculate labour including OT as a percentage of sales — most small shops should sit around 20–30% — then look at which part of the day your sales are concentrated in.
How to fix: Schedule more people at peak and fewer in quiet hours, use part-timers for the lunch rush instead of adding full-time staff, and cut unnecessary work — for example, let customers order themselves via QR so you need fewer people taking orders.
Cause 5: Waste and inconsistent portions
The busier the shop, the more the kitchen eyeballs portions. 80 grams of pork today, 110 grams tomorrow, and different cooks serve different amounts. If portions run 20 grams over on average, with pork at ฿150/kg, that's ฿3 a plate. At 150 plates a day, it adds up to almost ฿12,000 a month — before you count the food thrown out because you over-ordered.
How to fix: Use measuring scoops or a scale for key ingredients, log waste every day for at least 7 days to see what gets thrown out most, then adjust your ordering. See the step-by-step method in how to reduce kitchen waste.
Cause 6: Big one-off expenses that aren't spread across the months
In months without a lease renewal, insurance premium, fridge repair, air-con cleaning or signboard tax, the shop looks nicely profitable — until the month several big bills land at once and the money vanishes in one go. The problem isn't these expenses; it's that we don't count them in every month's profit.
How to fix: List all your annual expenses, divide by 12 and set that amount aside every month. If they total ฿48,000 a year, you need to deduct ฿4,000 a month from profit before you say how much the shop made. See the items most often forgotten in 12 hidden restaurant costs.
Cause 7: Shop money and personal money are mixed
Taking cash from the drawer to fill up the car, paying your kids' school fees from the shop account, buying household and shop supplies on one bill — all of this scrambles the shop's numbers. Often owners feel the shop isn't profitable when money is actually being pulled out for personal use without being counted. Or the reverse: they feel things are fine while the shop is losing money and their personal savings are propping it up.
How to fix: Open a separate bank account for the shop, pay yourself a fixed salary, and record every withdrawal. See how to set up the system in simple restaurant bookkeeping.
A 30-minute health check for your shop
If you're not sure which leaks apply to you, run through this with last month's numbers:
- Add up the month's sales, split between in-store and delivery (use what the apps actually transferred)
- Add up the month's ingredient costs and divide by sales — is it over 40%?
- Add up labour including OT and divide by sales — is it over 30%?
- List your annual expenses, divide by 12 and add that to this month's expenses
- Add up the money you took out for personal use (if you can't remember, you've already found the problem)
- Sales − all expenses = that month's real profit
If you can't do steps 2–5 because you don't have the numbers, don't be discouraged. That's where most owners are, and it's exactly why so many busy shops have no idea where their money goes.
Record it so you can see it, and the problem points to itself
All 7 causes have one thing in common: you can't see them unless you write things down. Cost per plate, shifting ingredient prices, the GP that disappears — they all hide in the receipts and transfer slips piled in the drawer. Daily records don't need to be accountant-level detail; just getting the categories right is enough to see where the money flows.
The Bunchee app makes this easier — snap a photo of a receipt and the AI reads the items and categorises them for you. Price-history charts show how much pork or eggs have gone up, you get daily and monthly income and expense summaries, and you can ask the AI assistant directly, “what percentage of sales were ingredients this month?”, without building a spreadsheet.
A busy restaurant with no profit doesn't have a customer problem — it has a numbers problem it can't see. Once you can see them, most fixes are just a few baht per plate. Multiply that by the customers you already have, and it's tens of thousands of baht in profit a month.
Find your shop's leaks with real numbers
Bunchee is a free restaurant bookkeeping app — AI receipt scanning, automatic categories, ingredient price history charts, and real-time daily/monthly summaries.