Restaurant Cash Reconciliation: How to Open, Count and Close Every Cashier Shift
For restaurant, café and cloud-kitchen owners and managers · 7 min read
Restaurant cash reconciliation is the daily routine of proving that the money in a cashier's drawer matches what the point-of-sale says should be there. It is done one shift at a time: you start with a known float, record every sale and refund against that shift, count the drawer at the end, and compare the count to the expected figure. Whatever is left over, positive or negative, is the variance. In Baghdad, where cash still dominates, and in Doha, Manama or Muscat, where each shift also carries card, wallet and national-network payments, this is the single control that tells an owner whether the till is honest and the books are right. This guide explains the method, shows how to run it in Culina, and works through a full example in Iraqi dinars (IQD).
- Restaurant cash reconciliation compares expected cash (opening float + cash sales − cash refunds) with counted cash at the end of a shift; the difference is the variance.
- The shift, not the day, is the right unit: one cashier, one float, one drawer, so any shortage points to one person and one time window.
- Reports estimate that 90% to 95% of transactions in Iraq are still conducted in cash (Shafaq News, March 2026), so a Baghdad restaurant's drawer holds most of its takings.
- Culina stamps every invoice and payment with the open shift, nets refunds against the collected total, and on close shows expected versus counted cash and creates the closing record and a Z-report.
- In the worked example below, a shift with IQD 5,950,000 of sales expects IQD 4,055,000 in the drawer, counts IQD 4,038,000, and shows a variance of −IQD 17,000.
What restaurant cash reconciliation is, and why the shift is the unit
A float is the fixed amount of cash a cashier starts with so that change can be given from the first sale. A Z-report is the end-of-shift summary that totals sales by payment method and closes the period so it cannot be quietly edited afterwards. Reconciliation connects the two: opening float, plus what the system recorded as cash taken, minus what it recorded as cash handed back, gives the cash that should be in the drawer. You count what is actually there and compare.
The reason to do this per shift rather than per day is accountability. If two cashiers share one drawer across a day, a shortage of IQD 17,000 could belong to either. If each opens their own shift with their own float and closes with their own count, the shortage has a name, a time window and a list of invoices attached to it. That is what turns a vague feeling that the till is losing money into something a manager can check in ten minutes.
Why it matters across the GCC and Iraq
In Iraq, cash is the main tender. Reports cited by Shafaq News in March 2026 estimate that 90% to 95% of transactions in the country are still conducted in cash, and many cardholders use their cards mainly to withdraw salaries rather than to pay. A restaurant there can take most of its revenue across the counter in banknotes, so a drawer error is not a rounding issue; it is most of the business. Mobile wallets such as Zain Cash and local card schemes such as Qi Card add a second and third tender that must be kept apart from the cash.
In the Gulf the mix is different but the discipline is the same. Qatar has Himyan and NAPS cards, Bahrain has BENEFIT, and Oman has OmanNet, so a single shift often holds cash, a card terminal batch and a wallet or QR total. Each of those settles to a different account on a different day. If they are all lumped together, a cash shortage can hide behind a card surplus. Reconciliation works only when every tender is recorded under its own name and only the physical cash is counted against the drawer.
Step 1: open every shift with a float and make it mandatory
Start by deciding the float and writing it down. A common practice is a round, fixed amount per till, large enough to give change for the first hour and small enough to limit exposure. In Culina, the cashier opens a shift and enters the opening cash float, which creates a Culina Opening Shift record. The setting that makes this reliable is Require open shift in Culina Settings: with it on, no sale can be rung until a shift is open, so there is no way to take money outside the process.
Because the system works per profile, a multi-branch owner can run the same routine at every store, each with its own float and its own currency. A branch in Muscat can work in OMR and a branch in Baghdad in IQD under the same discipline.
Step 2: let every sale, refund and tender land on the shift
Once the shift is open, Culina stamps invoices and payments with it. Each tender you accept is a Mode of Payment with its own default account for your company, and when a payment is taken the system posts a Payment Entry that debits exactly that account. Cash goes to the cash account, a card or wallet to its bank or clearing account. This is what keeps tenders separate: the cash figure the system expects in the drawer is built only from cash payments.
Refunds matter just as much. When a customer returns an order, the return is made from Transactions, against the original invoice, and the refund can be paid out as a cash or bank refund or kept as a credit note only. Culina nets refunds against the collected total for the shift, so a cash refund reduces the cash you expect to find. Two controls are worth switching on at this step: limit who can edit prices or exceed the discount cap by role, and set a maximum discount percentage. Most mysterious shortages are really unrecorded discounts or voids, and these settings leave a trail.
Step 3: count the drawer, close the shift, read the variance
At the end of the shift the cashier counts the physical cash and enters it in the close-shift dialog. Culina then shows expected versus counted and creates the closing record and the Z-report, which prints from the closing record. Managers can also review Shift Sales and Closing summaries in the desk. The habit that makes this work is simple: the cashier counts before seeing the expected figure in their head, writes the count, and only then reads the variance. Counting to match a number you already know is how small errors become large ones.
After closing, the owner's policy decides what happens to the cash. A typical routine is to keep the next shift's float in the drawer and send the rest to the safe or the bank. That routine is a management choice, not something the system enforces, but it is easy to follow once the closing figure is in front of you.
A worked example in Iraqi dinars
Take an evening shift at a Baghdad restaurant. The cashier opens with an IQD 250,000 float. During the shift the till records IQD 3,850,000 in cash sales, IQD 1,420,000 paid by card and IQD 680,000 paid by mobile wallet, for total sales of IQD 5,950,000. One order is returned and refunded in cash for IQD 45,000.
| Line | Amount (IQD) | Share of sales |
|---|---|---|
| Cash sales | 3,850,000 | 64.7% |
| Card sales | 1,420,000 | 23.9% |
| Mobile wallet sales | 680,000 | 11.4% |
| Total sales | 5,950,000 | 100.0% |
Expected cash = opening float + cash sales − cash refunds
= 250,000 + 3,850,000 − 45,000 = IQD 4,055,000
Variance = counted − expected = 4,038,000 − 4,055,000 = −IQD 17,000The cashier counts IQD 4,038,000. The variance is −IQD 17,000, which is 0.44% of the shift's cash sales (17,000 ÷ 3,850,000). Only the cash lines are tested against the drawer: the IQD 2,100,000 of card and wallet sales (35.3% of the total) is checked later against the card settlement and the wallet statement. If the owner keeps the float in the drawer, the cash to deposit is IQD 4,038,000 − 250,000 = IQD 3,788,000.
A single IQD 17,000 gap is small. The value of the report is that it makes the pattern visible: the same shortage every day on one till would be 17,000 × 30 = IQD 510,000 a month, and you would see it on the second day rather than the end of the quarter.
What to do with a variance
Do not treat every variance as theft. Most are honest: wrong change, a refund handed out but not entered, or a mis-keyed tender. Start by re-counting, then check the shift's refunds and any discount or price overrides, then check whether a payment was recorded under the wrong tender. If a shortage repeats for the same cashier, or a surplus appears with it, that is when a conversation is warranted. Keep the Z-reports, because a documented history is what lets you tell a one-off slip from a habit.
Wrap-up — Open each shift with a fixed float, keep every tender in its own account, count the drawer, and compare the count with the expected figure. Culina records the shift, nets refunds, shows expected versus counted and produces the Z-report, so the routine takes minutes and the answer is on paper.
See shift closing in Culina
Book a short demo and we will walk through opening a float, taking mixed tenders, closing a shift and printing the Z-report on your own menu and branches.
Book a demoFrequently asked questions
How do you reconcile a cash drawer at the end of a shift?
Count the physical cash, then compare it with expected cash: opening float plus cash sales minus cash refunds. The difference is the variance. In Culina the cashier enters the counted cash when closing the shift, and the system shows expected versus counted and creates the closing record and Z-report.
What is a Z-report in a restaurant?
A Z-report is the end-of-shift or end-of-day summary that totals sales by payment method and closes the period. In Culina it prints from the closing record created when a shift is closed.
How much cash variance is acceptable at a restaurant till?
There is no universal figure. Each owner sets a tolerance, and the useful signal is the pattern: a one-off small gap is usually a change error, while the same shortage on the same till repeatedly is worth investigating. In the example above, IQD 17,000 on IQD 3,850,000 of cash sales is 0.44%.
Can I run cash reconciliation in IQD, QAR or OMR in the same system?
Yes. Currency is set per Culina profile, so each branch rings sales and closes shifts in its own currency, such as IQD in Baghdad or OMR in Muscat, while unified reporting is available across profiles.