The worst cash conversations happen on the 5th of the month, when your bookkeeper emails about a drawer that was off on the 14th of last month. By then nobody remembers who closed, whether there was a till swap during the lunch rush, or if the $40 difference was a miscount or something worse. The trail's cold. You end up eating it or having an awkward conversation three weeks too late.
The fix isn't a bigger end-of-month reconciliation. It's a tight shift cash checklist for your cafe — something that runs in about five minutes at every close, flags variances while people still remember the shift, and builds a clean weekly evidence pack your bookkeeper can actually use. This post is about that specifically — the shift-level choreography. Not monthly P&L, not inventory shrink, just the cash-to-POS loop at close.
The actual problem: variances go stale before anyone looks at them
Most cafes do count cash. That's not the issue. The issue is when the count gets compared to what the POS expected, and who actually sees the gap.
Here's the typical breakdown. A closing barista counts the drawer, writes a number on a sticky note or into a drawer-count field, drops the deposit in the safe, and goes home. The expected-net number — what the POS says should be in the drawer after cash sales, minus the float, minus any paid-outs — is sitting inside a reporting screen that nobody opens until later. The comparison between "counted" and "expected" happens days later, often by the owner on a Sunday or the bookkeeper mid-month.
So the variance exists at 9:15pm on a Tuesday, but nobody reacts to it until it's meaningless. The closer who could've said "oh yeah, we had a register freeze and I rang two sales on the backup" is long gone and doesn't remember.
Across a lot of small operations, it's almost never one dramatic theft. It's drip losses — $8 here, $22 there, a $15 over that nobody questions because an over feels like a win. Overs are actually a signal too. A drawer that's consistently over usually means paid-outs aren't being logged, or cash tips are getting mixed into the till, or someone's undercounting the float. Both directions are information.
What "expected net" actually means for a drawer
Before the checklist makes sense, the math has to be unambiguous — because this is where most closers get confused and call a variance that isn't real.
Keep every order and shift perfectly aligned.
Coffehq helps you manage orders, inventory, and staff schedules seamlessly.
- Unified order processing
- Real-time inventory updates
- Staff shift coordination
No credit card required
Opening float + cash sales − cash refunds − paid-outs (petty cash, tips paid out, vendor COD) = expected drawer total
Your counted total minus that expected number is your variance. Two mistakes generate fake variances more than anything else:
-
Forgetting the float. If you opened with $150 and count $430, your sales number isn't $430 — the deposit is $280. Closers who deposit the whole drawer including float create a phantom shortage the next morning.
-
Not logging paid-outs. Someone grabs $18 from the till to pay the ice delivery or restock oat milk from the grocery store down the street. If that's not entered as a paid-out, the drawer looks $18 short and the POS has no idea.
A clean cash handling loop depends on these two things being bulletproof. If your float and paid-outs aren't disciplined, no checklist will save you — you'll just be flagging noise.
The five-minute close: the actual choreography
This runs the same way every single shift. The point is speed and consistency, not thoroughness theater. Five minutes, every close, no exceptions.
-
Pull the POS expected-net number first. Before touching cash. Print or screenshot the shift's cash-sales total and expected drawer figure. Doing this before counting removes the temptation to "count toward" a number.
-
Count the drawer twice. Once by the closer, a quick second pass on the bills only. Separate out the opening float — set it aside to re-seed tomorrow's drawer or bag it per your routine.
-
Calculate the variance. Counted deposit minus expected cash sales. Write the actual number, even if it's zero. "Zero" logged intentionally is data; a blank field is a gap.
-
Apply the variance flag. Green, yellow, or red based on your thresholds (table below). The flag determines what happens next — not the closer's mood about it.
-
Bag, seal, log. Deposit bag number, amount, date, closer initials. Drop the expected-net screenshot or printout in the same spot every night.
Screenshot the POS expected-net before counting and drop the image in the deposit folder each night.
No investigating at close — that's the owner's or manager's job the next morning if a flag goes yellow or red. The closer's only job is to count accurately, log honestly, and escalate per the rule.
No investigating at close — that's the owner's or manager's job the next morning if a flag goes yellow or red. The closer's only job is to count accurately, log honestly, and escalate per the rule.
Variance thresholds that make sense for a cafe
Don't use a single dollar threshold for a drawer that does $300 on a slow Tuesday and $1,400 on a Saturday. A flat "$10 is fine" rule is too loose on a slow day and too tight on a busy one. Use a small tiered table and tie the response to the tier, not to who's standing there.
| Variance (over or short) | Flag | Who acts | Action |
|---|---|---|---|
| Within $5 or under ~1% of cash sales | Green | Closer only | Log and move on, no message needed |
| $5–$20, or ~1–3% | Yellow | Closer + manager | Send scripted message; manager reviews next open |
| Over $20, or ~3%+ | Red | Closer + manager + owner | Scripted message immediately; manager pulls transaction detail before next shift |
| Any repeat yellow, same closer, 3+ times in a week | Pattern flag | Owner | Sit-down, retrain on float/paid-outs, review voids |
The pattern flag row is the one most cafes miss. A single $12 short means nothing. The same person running $12 short three nights in a row means something — maybe a counting habit, maybe a float problem, occasionally something you need to address directly. You only catch it if you're logging green/yellow every shift, not just the bad ones.
Scripted escalation messages (so nobody has to find the words)
The reason escalations don't happen isn't that closers are hiding things. It's that at 9:20pm nobody wants to compose a careful text to the owner about being $30 short. So they don't, and it becomes a problem later. Pre-write the messages. Make them fill-in-the-blank.
Yellow (closer to manager group chat): > Close [date], [closer]. Drawer variance: [short/over] $. Expected cash $, counted $. Float set aside. Anything unusual: [register freeze / backup till / busy rush / nothing]. Deposit bag #.
Red (closer to manager + owner): > RED FLAG — Close [date], [closer]. Drawer [short/over] $ ( % of cash sales). Expected $, counted $. Context: [what happened, even if "no idea"]. Deposit secured, bag #___. Did NOT recount beyond twice. Flagging per rule.
The "flagging per rule" line matters more than it looks. It reframes escalation from an accusation into a routine. The closer isn't snitching on themselves — they're following the checklist. That shift is what keeps reporting honest. People flag freely when flagging is just the job, not a confession.
The one-week evidence pack
This is what makes your bookkeeper actually like you — and makes any future dispute winnable. Instead of a month of loose sticky notes, you hand over one clean weekly bundle.
-
Seven daily close logs — date, closer, expected cash, counted deposit, variance, flag color
-
The POS expected-net export for the week (one report, not seven screenshots if your system allows a date range)
-
Deposit records — bag numbers and bank deposit confirmations matched to each day
-
Any yellow/red escalation messages, copied in
-
A one-line weekly summary — total variance for the week, number of yellow/red days, any pattern flags
The whole thing should take a manager maybe 10–15 minutes to assemble on Monday morning for the prior week. Reconciliation stops being archaeology. Your bookkeeper matches deposits to the bank in one pass, flags nothing you haven't already flagged, and you're not reconstructing a Tuesday from memory in week four.
If you want the bigger picture on how this cash loop connects to inventory, scheduling, and accounting data, the cafe data sync and reconciliation playbook covers how these feeds line up end to end. And since cash refunds are one of the biggest sources of phantom variance, it's worth getting your refund codes clean too — the approach in fast refund accounting for perishables keeps refunds from quietly distorting your expected-net number.
A real scenario
A two-register neighborhood cafe, roughly $11k–$13k a week in sales, maybe 30% of it cash. The owner reconciled monthly and basically accepted that the drawer was "usually a little off." Over a typical month the net variance ran around $140–$180 short — small enough to shrug at, annoying enough to notice.
They put in the five-minute close with the green/yellow/red tiers. Two things surfaced in the first two weeks. One closer was consistently short $10–$18 — turned out they were re-seeding the next day's float from the deposit some nights and not others, so the math wandered. Easy fix, pure process. The second thing: a recurring $20-ish over on weekends, which was cash tips landing in the till instead of the tip jar during the rush.
Neither was theft. Both were invisible under monthly reconciliation and obvious under same-day flagging. After cleaning up the float routine and the tip handling, monthly net variance dropped to around $30–$50 — mostly legitimate rounding and the occasional honest miscount. The owner didn't recover a fortune, but they stopped losing a couple thousand a year to nothing, and month-end close went from a dreaded afternoon to a quick review of a stack of weekly packs.
When this is overkill — and when it isn't
When the full version makes sense: any cafe where more than ~20% of sales are cash, or where you run more than one register, or where closing duties rotate across several people. The more hands on the drawer, the more a shift-level checklist pays off.
When you can run a lighter version: a near-cashless cafe doing 90%+ card. You still want the close log and the expected-net check, but you can relax the tiered escalation — your cash exposure is small and a weekly glance covers it.
Who should skip the pattern-flag tracking: a true solo operation where the owner opens and closes every shift. You already are the control. Keep a simple daily variance log for your bookkeeper and skip the escalation scripts — there's no one to escalate to.
The honest failure mode to watch for: a checklist that gets logged but never reviewed. If closers dutifully write down variances and nobody looks at the yellows until month-end, you've just rebuilt the old problem with extra steps. The whole value is acting on a flag the next morning while the shift is still fresh. The paperwork is only worth the five minutes if someone reads it within a day.
Start with the expected-net discipline and the tiered flags. Get the float and paid-outs clean first, because everything downstream depends on those two numbers being honest. The scripts and the weekly pack are easy once the counting is trustworthy — and once they're running, the drawer stops being a monthly mystery and becomes something you close out and forget about every single night.
Ready to brew operational excellence?
Join hundreds of coffee shops using Coffehq to boost efficiency, reduce waste, and elevate customer satisfaction.