Why Your Stocktake Won't Match (And What to Actually Do About It)

It's Sunday night. You've spent two hours in the stockroom with a clipboard, a pen and a borrowed set of scales. You punch the numbers into your spreadsheet, hit enter, and the variance comes back at minus £427.
You stare at it for a minute. You shrug. You file it under "stocktake noise" and pour a glass of wine. Next month the variance is £390. The month after, £510.
Three months in, you've quietly written off about £1,300 of margin without ever asking why.
Here is the uncomfortable truth. Your stocktake variance is not noise. It's a map. It tells you, in pounds and grams, exactly where your gross profit is leaking out of the building. But only if you actually investigate it.
This post is the playbook for doing that without burning another Sunday.
What "good" variance looks like
Before we hunt anything, calibrate. Not every variance is a problem. Real cafés produce real waste, real spillage and real measurement error. The question is whether your variance is in the normal band or signalling something real.
| Variance vs theoretical COGS | What it means |
|---|---|
| 0 to 1% | Suspiciously clean. Either you nailed it or your stocktake is wrong. |
| 1 to 3% | Healthy. This is the normal noise band. Move on. |
| 3 to 5% | Watch list. One cause is starting to dominate. Worth a look. |
| 5 to 10% | Investigate. Real money is leaking. |
| 10%+ | Stop. You have a process problem, not a counting problem. |
For a typical independent café running £40k to £80k of COGS a year, a 3% variance is £1,200 to £2,400. Annoying, but normal. A 5% variance is £2,000 to £4,000. That's a holiday. A 10% variance is the difference between a profitable year and a flat one.
The two numbers you need
Variance only makes sense when you compare two things.
Theoretical usage is what your recipes say you should have used, based on what the POS sold. Eighty flat whites at 18g of beans equals 1.44kg of beans. Run that across every product, every modifier, every recipe, for the period.
Actual usage is opening stock plus purchases minus closing stock. This is what physically left the building.
Variance equals actual minus theoretical. If actual is higher, you used more than the recipes say you should have. That's the leak.
Most cafés can produce actual usage from a stocktake and a stack of invoices. Very few can produce theoretical usage, because it requires every recipe to be costed and every POS line to be mapped to a recipe. That's the work that makes the variance investigation possible at all. If you haven't done it, see how to price every dish on a café menu first.
The 7 causes of stocktake variance
Most café variance comes from the same handful of causes. Here is the rough share each one tends to contribute, based on what I see in cafés that actually break it down.
| Cause | Typical share of variance | Hardest to detect? |
|---|---|---|
| Unlogged waste / write-offs | 25 to 35% | No, just unloved |
| Recipe drift (over-pours, heavy hands) | 20 to 30% | Yes |
| Comp / staff drinks / freebies | 10 to 20% | Medium |
| POS / recipe mapping errors | 10 to 20% | Yes |
| Supplier shorts | 5 to 15% | Medium |
| Stocktake error itself | 5 to 15% | No, just sloppy |
| Theft (staff or customer) | 0 to 10% | Very |
Notice that theft is usually the smallest contributor, but it's the one owners jump to first. Almost always it's the boring stuff (waste, drift, mapping) doing the damage.
Let's go through each one.
1. Unlogged waste
The croissant batch that came out flat. The jug of milk that split when steamed too hot. The sandwich that was made wrong and binned. The tray of brownies that overcooked.
Every café has waste. It's a normal cost of the business. The problem is almost no independent café actually logs it. So when you do your stocktake, that waste shows up as a variance and looks like a leak. It isn't a leak, it's just invisible.
The fix is a waste log. A laminated sheet by the prep bench. Date, item, quantity, reason. That's it. It takes ten seconds per entry. After a month you'll have real data on what's actually being binned, and your variance will start to make sense.
2. Recipe drift
This is the biggest hidden killer in most cafés.
A flat white recipe says 18g of beans. The barista on shift today is doing 20g. It feels normal to them, the coffee tastes great, the customer is happy. That's an 11% over-pour.
Beans at £30 a kg, 60,000 drinks a year, 11% over-pour: roughly £350 of margin on one drink alone. Now do the same maths on the cheese on the toastie (75g recipe, 90g actual, 20% over), the avocado on the brunch plate, the syrup pumps in flavoured lattes.
Recipe drift compounds. Every staff member quietly establishes their own version of the recipe, and within six months your gross profit is three points off the recipe sheet.
The fix is dull but it works. Weigh things. Once a quarter, take ten random plates or drinks coming off the pass, weigh the ingredients, compare to the recipe. You don't need to do every product, just spot-check the high-volume ones.
This is the same investigation muscle covered in how to calculate food cost percentage. The maths only works if the portion is what you said it was.
3. Comp drinks, staff drinks and freebies
The regular gets a free coffee. The supplier rep drops in. The staff drink three flat whites a shift. The influencer films a brunch and you don't charge them.
Each one of these takes ingredients out of stock without taking money in, and unless you're recording them, your stocktake will show them as variance.
A normal comp ratio is 1 to 3% of revenue. Above 5% and either staff are giving things away too freely or the policy is too generous. Either way, you can't manage it if you're not tracking it.
The fix: ring every comp through the till as a £0 sale, or use the comp button on your POS. It's a one-second behaviour change that turns invisible give-aways into a number on a report.
4. POS and recipe mapping errors
This one is sneaky. You sold 80 flat whites yesterday. Your recipe deducts 18g of beans and 150ml of dairy milk per drink. Done.
Except 12 of those flat whites were on oat milk. Your POS recorded them as "Flat White" with a "+ Oat" modifier. If your recipe for Flat White only knows about dairy, the system deducts 80 portions of dairy from stock you didn't actually use, and zero portions of oat from stock you definitely did.
Multiply this across decaf, extra shots, syrups, alt milks, gluten-free swaps, side upgrades. In a busy café, modifier sales can be 20 to 40% of all transactions. If your recipes don't switch ingredients on modifier, your theoretical usage is wrong before you've even started.
This is one of the most common reasons stocktake "doesn't add up" even though everything else is fine. More on the cost of getting this wrong in the hidden cost of modifier extras.
5. Supplier shorts
The invoice says 12 bags of beans. The driver dropped 11. Nobody checked.
Or: 24 litres of oat milk on the invoice, 22 in the crate. Or: case of 30 portion packs, three were missing. Or: the avocado weight came in 8% under what you paid for.
Most cafés sign for deliveries without weighing or counting properly. Then the invoice goes through the bookkeeper and the short is paid for. When you do your stocktake, you're missing two bags of beans that you paid for, and that shows as a variance.
The fix is a delivery check at the door. Count cases against the invoice, weigh anything by-weight, and flag shorts before signing. If your invoices go through an AI invoice processing tool, it can also flag invoice line items that don't match what historically lands, but the count at the door is still the catch.
6. Stocktake error itself
You counted the 6oz cups thinking they were 8oz. You missed the spare crate of milk in the back fridge. You weighed the flour bin including the bin itself. You wrote "12" when you meant "1.2".
Stocktake error is real and it's usually the easiest variance to fix because it's just hygiene.
A clean stocktake checklist:
- Same person, same time of day, same day of week (start of trading, not end)
- Count by category, not by shelf (all coffee in one go, then all milk, then all syrups)
- Weigh everything that's open. Don't guess "about half a bag"
- Two people on high-value items (spirits, wine, premium coffee)
- Photo evidence of the count sheet at the end
- Same units, every time. Grams or millilitres only, never "tubs" or "scoops"
If you want the full system, see the weekly stocktake system that doesn't ruin Sundays.
7. Theft
It happens. Staff pocketing stock, a friend getting a large coffee paid for as a small, an unmonitored back door. Customer theft is rarer in cafés but does happen on small high-margin items (chocolate bars, energy drinks, branded merch).
Theft is usually the smallest contributor to variance, but it's the most damaging when it does happen because it tends to be repeated and concentrated. The signal is usually variance that:
- Persists after you've fixed waste, drift, comps and mapping
- Concentrates on high-margin small items
- Correlates to specific shifts when you cut the data by day
You don't investigate theft by accusing people. You investigate it by tightening the system: till audits, comp authorisation, CCTV at the back door, sealed stock for high-value items. If the variance disappears after the system tightens, you had a problem. If it doesn't, you didn't.
A walkthrough investigation
Here's how to actually run an investigation when your stocktake comes back ugly.
Step 1. Don't investigate the total variance. Investigate the biggest variance line. If you're £427 down overall but £290 of that is on dairy milk, start with milk. The rest is noise compared to the headline.
Step 2. For that line, work the seven causes top to bottom.
- Is there an obvious waste event you didn't log this period? (Did the milk fridge fail? A bad batch?)
- Are baristas free-pouring? (Spot-weigh five drinks tomorrow.)
- Did you run a promo or comp campaign? (Check the comp report.)
- Is the recipe correctly switching for oat / soy / decaf modifiers?
- Did the last dairy delivery match the invoice?
- Did you count the back fridge?
Step 3. Most of the time, by the time you've worked through that list, you've found the cause. It's almost never one big cause and usually two or three medium ones stacking up.
Step 4. Fix the system that allowed it. Don't just write off the variance. Add the waste log entry type, retrain the over-pour, fix the modifier mapping, brief the team on the door check.
Step 5. Next stocktake, look at the same line first. If it's improved, your fix worked. If it hasn't, your diagnosis was wrong, go again.
When to call it noise and when to chase it
You will never get to zero variance. Don't try.
A consistent 1 to 3% variance, week on week, is fine. That's the cost of running a real food business with real humans. Investigating it harder than that gives you diminishing returns very fast.
Chase variance when:
- It crosses 5% of COGS
- It changes suddenly (was 2%, jumped to 6%)
- It concentrates on one category (drinks fine, food blowing up)
- It correlates with a change (new starter, new menu, new supplier)
Don't chase it when:
- It's been steady at 2% for six months and didn't move
- The total is £80 on a £4,000 COGS week
- You haven't actually fixed the last cause you identified
Pareto applies. 80% of the leak is in 20% of the variance lines. Find those, fix those, leave the rest alone. The same logic applies to your menu in the sales mix Pareto analysis for café menus.
Where Brikly fits
Most café owners don't have the time or the spreadsheets to track theoretical usage manually. That's the gap CostingBrik fills.
Once your recipes are costed and your POS items are linked, CostingBrik calculates theoretical usage automatically every time a sale rings through. After your weekly stocktake it shows you actual versus theoretical, line by line, with the variance flagged. You see in one screen which ingredients are over-used, by how much, and roughly what it's costing you in margin.
The AI invoice processing in CostingBrik also picks up supplier shorts at the line-item level. If your usual case of 24 oat milk lands as 22, the system flags the line for you to query before you pay it.
The point isn't to remove the stocktake. The stocktake is still the truth. The point is to make sense of the gap between truth and recipe in minutes, not Sundays.
Ed O'Brien has run Hunters Cake Company for 17 years across cafés in Witney, Burford, and a bakery in Carterton, Oxfordshire. He's building Brikly - modular tools that give independent café owners the same data the big chains have, without the big chain price tag.