Cash up should read every order, not the last few hundred
A cash-up screen that works its expected drawer from a capped list of orders quietly understates what should be there — and writes the wrong figure into the record as proof nothing went missing. Why the count has to read the whole period.
Cashing up is a subtraction anyone can do: the drawer should hold the float plus every cash sale taken since it was last counted. The till knows both numbers, so the screen can tell you what it expects before anyone lifts a note. That expected figure is the whole point — it is what the counted cash is measured against.
The trap is where the expected figure comes from
To work out expected cash the screen adds up the cash orders for the period. The easy way to write that query is to fetch the recent orders and sum them. The word “recent” is where it goes wrong. A busy Saturday can run past whatever limit the query was written with — five hundred orders, say — and the sum then stops at five hundred while the day kept going.
The number it produces is lower than the truth, and lower in the most dangerous direction. If the till expects less cash than was actually taken, a shortfall can sit inside that gap and the count still balances. Worse, cashing up writes a permanent, signed record: the wrong expected figure is now filed as evidence that nothing went missing on a day when something could have.
Read the period, all of it
The fix is unglamorous: page through every order in the window, not a capped slice, and add the cash ones. It is a little slower and it is correct, which on a figure a member of staff signs their name against is the only thing that matters.
There is a second, quieter version of the same mistake in the dates. If “today” is built from a calendar date in the wrong timezone, the small hours of the morning fall on the wrong side of midnight and a count taken at 00:30 can rake in all of yesterday. A cash-up window has to be built in the venue’s own local time, not the server’s.
What to check on your own till
Take a genuinely busy period and compare the expected cash the screen shows against the orders you can count by hand. If they diverge only on the big days, you have found a cap on a total — the kind of bug that is invisible until the business grows into it, and by then it is quietly wrong every weekend.