Revenue Is Up But Profit Isn't? 6 Hidden Cafe Profit Leaks You're Probably Missing
Your cafe is busier than ever but the bottom line tells a different story. The culprit is usually not one big problem -- it's six small ones bleeding you dry. Here's how to find and fix the most common hidden profit leaks in cafe operations.
The Frustrating Gap Between Revenue and Profit
Here's a scenario that's painfully common: your cafe is busier than last month. The sales chart looks great. But when you close the books, the profit number hasn't moved. Or it's actually gone down.
If this sounds familiar, you're not alone. From our conversations with cafe owners, this pattern shows up constantly -- especially in cafes that are growing. More revenue means more complexity, and more complexity means more places for money to quietly disappear.
The dangerous part: these leaks rarely show up in standard reports. There's no line item for "money that vanished somewhere" in your P&L. The loss is slow, small, and spread across multiple points at once.
Let's break them down.
1. Over-Portioning: The Silent Food Cost Killer
This is the classic one. Your barista pours a little extra milk. The kitchen adds a generous scoop of toppings because "it looks better that way." An extra tablespoon per serving seems trivial, but multiply it by hundreds of orders a day.
Say you sell 150 lattes per day. If each cup gets an extra 20ml of milk, that's 3 extra liters daily. At around $2 per liter for fresh milk, you're losing $6 a day. That's $180 a month -- from one ingredient, on one menu item.
Now imagine this happening across your entire menu.
How to track it:
- Compare actual ingredient usage against theoretical usage. If your recipe says 1 liter of milk = 5 lattes, and you sold 150 lattes but used 35 liters instead of 30, that's a 16% variance.
- Do weekly stock counts on your most expensive ingredients (milk, coffee beans, chocolate, cheese).
- Use jiggers, scales, and portion cups. This isn't about not trusting your team -- it's about giving them the tools to be consistent.
2. Undocumented Internal Consumption
Staff meals. Tasting a new recipe. Drinks for a team meeting. An order that came out wrong and got eaten in the kitchen. All of this is normal -- it's part of running a cafe. But if it's not recorded, you have no idea how much it's actually costing you.
We've seen plenty of cafes with zero tracking for internal consumption. The result? Food cost is always over budget at month end, and nobody can explain why.
How to track it:
- Make a rule: all internal consumption must be entered into the POS as an internal order. No payment needed, but it's on record.
- Set a monthly budget for staff meals and tastings. Say $100 a month. If you go over, at least you know.
- Wrong orders? Log those too. Void data is valuable -- if you're consistently voiding the same item, the problem is in the process, not the person.
3. Uncontrolled Discounts
"Just give them a discount to keep them happy." That sentence is dangerous without a framework around it.
What typically happens: cashiers give manual discounts to friends, managers comp drinks without a record, promotions that should have ended are still running because nobody turned them off. All of this reduces your actual revenue but stays invisible if you're only looking at top-line sales.
How to track it:
- Every discount needs an approval trail. Who gave it? Why? How much?
- Review your discount report weekly. Look at total discounts as a percentage of gross revenue. If it's above 5%, start digging.
- Restrict who can apply manual discounts. A good POS lets you control this through role permissions -- for example, only managers can apply discounts above 20%.
4. POS Prices That Don't Match Your Menu Board
This sounds too obvious to happen, but it's far more common than you'd think. Your menu board says an iced latte is $5.50, but the POS still has it at $5.00 because nobody updated it after the last price increase. Or the reverse -- POS price went up, menu board didn't change, customers complain, and the cashier manually overrides the price.
Every time you change a price, there's a checklist that needs to run:
How to prevent it:
- Update the POS first -- this is your source of truth.
- Then update every other touchpoint: physical menu board, digital menu, delivery platforms (if applicable).
- Monthly audit: match POS prices against the menu board. Schedule it -- don't leave it to "whenever we get around to it."
- If you have multiple locations, sync prices through a centralized system -- don't rely on manual updates per outlet.
5. Cash Handling Errors
Many cafes still handle a significant portion of transactions in cash. And where there's cash, there's variance.
This isn't about suspecting theft -- most cash variance comes from honest mistakes. Miscounted change, small expenses paid from the drawer without a receipt (ice run, supplier tip), coins that don't add up.
But small errors that happen consistently add up. If your cash drawer is short $2-5 every shift, that's $60-150 a month. Not catastrophic, but it's money that should be hitting your bottom line.
How to track it:
- Count cash at the start and end of every shift. Every time. No exceptions.
- Every cash expense from the drawer -- no matter how small -- gets logged. Bought a bag of ice? Log it. Tipped the delivery guy? Log it.
- Set a tolerance threshold. Maybe variance under $1 is acceptable. Above that? Review.
- Use your POS shift management feature that automatically calculates expected cash vs. actual cash.
6. Supplier Price Creep
This is the sneakiest one. Supplier prices inch up slowly -- 50 cents here, a dollar there -- and because nobody checks regularly, you don't notice that your food cost has silently shifted.
We've talked to cafe owners who realized their coffee bean supplier had raised prices 15% over six months. No notification, no negotiation -- just invoices that gradually changed.
How to track it:
- Record the purchase price of every key ingredient. A simple spreadsheet works: item, supplier, price per unit, date. Update it every time you buy.
- Quarterly review: compare current prices to three months ago. Anything above 5%? Time to negotiate or shop around.
- Have at least two suppliers for critical ingredients. Not to switch constantly, but to have leverage when negotiating.
- Don't accept price increases without asking why. Sometimes just asking "what changed?" is enough for the supplier to hold the old price.
A Simple Framework: Monthly Profit Leak Audit
You don't need a fancy system to start. Here's a framework you can run every month:
- Food cost ratio -- Total ingredient cost / Total F&B revenue. Industry target for cafes is generally 25-35%. If you're above that, something needs investigating.
- Variance check -- Actual vs. theoretical usage for your 5 most expensive ingredients.
- Discount review -- Total discounts / Gross revenue. Track the trend month over month.
- Cash variance -- Total cash discrepancies across all shifts for the month. Track the trend.
- Supplier price check -- Compare prices of your top 5 ingredients vs. last month.
These five numbers, reviewed consistently every month, give you enough early warning to catch leaks before they become serious.
Start With the Data You Already Have
The good news: most of the data you need is already in your POS. Per-item sales reports, discount history, cash shift reports -- these are all building blocks for a profit leak audit.
What's usually missing is just the habit of looking at them regularly and knowing which numbers to pay attention to.
At CrescendPOS, we deliberately designed our shift, discount, and sales reports so these numbers are easy to access -- not buried in a submenu nobody opens. Because data that never gets looked at might as well not exist.
If you're looking for a POS that helps you not just record transactions but actually understand where your money is going, give CrescendPOS a try. It's free to start, and you can see for yourself how the reports work.
Get F&B business tips in your inbox
New articles, operational guides, and business insights for cafe and restaurant owners. Free, unsubscribe anytime.