# Fix trading-day opening and closing problems

Opening and closing are Staff app tasks. Use **Stats** for the current location.
The Console is used to read reports and investigate the figures.

## Opening a trading day

1. Check the restaurant location on the device.
2. Open **Stats**. If **No trading day is open** appears, an authorised operator
   can select **Open daily**.
3. Wait for the action to finish. Confirm that the current day is open before
   starting service.
4. If the restaurant uses cash, record the opening float in **Money → Cash
   drawers** as a **Deposit** with the note “Opening float”. See
   [Recording cash in and out](/daily-reports/cash-drawers#recording-cash-in-and-out).

### Can't reach TablePort

The device has not loaded enough information to tell whether a day is open.
Check its connection and choose **Try again**. Do not interpret this message as
proof that the day is closed. Ask another authorised operator to check the
location's current day if this device still cannot connect.

### The day is already open

Use the existing open day. Check the location and its start time with the shift
leader if the day is unexpected. Do not close a live trading day just to change
the heading or start another one.

### Open daily is missing or unavailable

Check the device's location and ask a manager to confirm your role allows
opening and closing. Different roles can see different report details and
controls. Do not use another staff member's PIN or account to bypass access.

## Closing a trading day

1. In **Stats**, review the current day's outstanding orders, transactions,
   discounts, and voids with the shift leader.
2. Resolve uncertain payments before deciding how to handle any balance. See
   [Payment problems](/troubleshooting/payments).
3. Record cash actually paid in or out and save the actual drawer counts before
   closing. Counts compare cash; they do not move money.
4. Select **Close daily**. Read the confirmation: the report is locked for
   changes after closing. **Count drawers first (optional)** opens counting when
   available; a drawer count is not a mandatory closing requirement.
5. Confirm **Close daily** only when the shift leader is ready to close.
6. Wait for the result. Verify the day is closed, then open its saved report
   through **Settings → Daily reports** if needed.

### Closing failed, or the result is unclear

Keep the exact error wording. Restore the connection, refresh the daily, and
check whether it is now open or closed before another attempt. If closed, read
the saved report rather than repeating the action. If still open, follow the
displayed reason and ask the manager to resolve it.

An unfinished order or a completed order with an unsettled balance can block
closing. An order with a recorded payment can still need attention if the order
itself has not finished. Verify both the order state and payment outcome; closing
is not a substitute for settling an outstanding payment.

A cash variance is a separate investigation. Record the actual count and follow
the restaurant's closeout policy rather than entering a balancing cash movement.

### Counted cash differs from expected cash

Recount and check the opening float, cash movements, payment methods, refunds,
and drawer assignment. Save the real count even when there is a difference. Do
not add a deposit or withdrawal merely to make the figures agree. See
[When the count does not match](/daily-reports/cash-drawers#when-the-count-does-not-match).

### Daily not closed: unsettled orders or open time tracks

The app can open the unsettled-work view instead of completing the close. Review
the listed orders and staff time tracks with the shift leader. Settle each order
according to its actual payment outcome and finish time tracks only when the
recorded shift has ended. Then return to **Stats**, close the daily, and verify
the final closed state. Do not mark an unpaid order paid or end a staff shift
merely to make closing succeed.

Open time tracks block closing when the location's **Enforce time tracks ended**
setting requires it. Their absence from the blocking list does not prove every
employee has clocked out; check the actual staff records for payroll and handover.
Ask the authorised manager to resolve a legitimate open shift rather than
turning off enforcement to get past the close.

The **Before closing** panel during service and the explicit close check can
show different work: a close attempt checks unfinished orders as well. Wait for
record refreshes to finish and inspect the newly listed work. An empty-looking
list while records are loading does not establish that the day can close.

### Sales and takings do not match

Sales describe trading activity; takings describe money collected. A difference
can involve unpaid balances, deposits, refunds, or transactions collected at a
different time. Compare the same location and trading day, then use
[Reading the daily report](/daily-reports/console-report) to investigate.

### A mistake is found after closing

Keep the closed report and the evidence of the mistake. Cash entries cannot be
added after closing. Ask your manager or support for the supported correction
path; do not reopen or create another day solely to make the old figures match.

## What to include when escalating

Provide the location, trading-day number, opening/closing time, displayed state,
error wording, and whether another device shows the same result. Share order or
payment records only through the restaurant's authorised support channel.
