# Daily Reports Overview

TablePort groups everything your restaurant does into **trading days**, called
**dailies** in the app. A daily starts when someone opens it and ends when
someone closes it. Every sale, payment, cash movement, void, discount and staff
clock-in between those two moments belongs to that daily, and the daily report
is the summary of it.

The same report appears in four places:

| Where                    | What it is for                                                                                                                     |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| Staff app, **Stats** tab | Opening and closing the day, watching it live, cash drawer entries, printing. See [the staff app guide](/daily-reports/staff-app). |
| Console                  | The full report for managers and owners, with every section in detail. See [reading the report](/daily-reports/console-report).    |
| Email and PDF            | A digest sent to your chosen recipients when the day closes, with the full report attached as a PDF.                               |
| Thermal print            | A till slip printed from the app, with the saved drawer count or a blank count line.                                               |

## What a trading day covers

A trading day is not a calendar day. It runs from the moment it is opened to the
moment it is closed, so a late service that runs past midnight stays in the same
daily. That is why the report title can show two dates, for example "Mon, 5 Oct
– Tue, 6 Oct".

While no daily is open, TablePort does not accept new payments. Open the daily
before service starts so the team can take orders and payments.

## Opening the day

Open the day from the staff app:

1. Go to the **Stats** tab.
2. If no day is open, you see **No trading day is open**. Tap **Open daily**.
3. A message confirms the day is open, for example "Daily #128 opened".

When a day is already open, **Open daily** is replaced by **Close daily** in the
Stats header. If someone opens the day on another device first, the app simply
picks up the day that is already open.

Opening and closing need the **Manage Place Daily Reports** permission. Staff
without it see "Ask a manager to open the daily." Viewing the report needs
**View Place Daily Reports**. Permissions are set on each role; see
[Roles & Permissions](/staff/roles-permissions).

The console cannot open or close a day. It shows the report only.

## Closing the day

Close the day at the end of each service day, after the last bill is settled:

1. Go to the **Stats** tab.
2. Tap **Close daily** in the header.
3. The app asks **Close daily?** and explains: "The daily report will be locked
   for changes after that. Make sure all details are correct."
4. Tap **Close daily** again to confirm.

When the close succeeds you see a message such as "Daily #128 closed", and:

- the report is locked;
- report delivery is requested for your configured recipients; check the
  separate email status (see
  [Email delivery](/daily-reports/console-report#delivery-status));
- the Stats tab switches to the closed-day screen, ready for tomorrow.

### When unsettled orders block the close

A day cannot close while any order is still unsettled. That means an order that
is still in progress, a finished order whose bill is not settled, or an order
with a payment taken but not completed.

If you tap **Close daily** with unsettled orders, the day stays open, the app
shows "Daily not ended, please check for unsettled orders, and opened time
tracks." and opens **Settle pending work**:

- **Open orders**: inspect the existing order and actual payment state with the
  shift leader. Resolve it through the authorised order workflow; do not charge
  again or void a legitimate bill merely to clear closing.
- **Open time tracks**: verify the employee's actual finish time before
  recording an authorised clock-out or correction.

The list updates as the work is resolved. Check that the daily is still open and
that the pending work is settled before confirming close again. If it is already
closed, investigate any email or integration failure separately rather than
repeating the close.

You do not have to wait for the close to find these. While the day is open, the
Summary in the Stats tab shows a **Before closing** panel with the count of open
orders and open time tracks, and a **Settle now** button. In the console, the
**Tax & close-out** section lists what is still unsettled.

**Location Settings → General → Enforce time tracks ended** controls whether
open clock-ins block closing. When it is on, every time track must end first.
When it is off, open clock-ins do not block the close. Resolve actual work times
with the shift leader before closing; do not clock someone out who is still
working simply to clear a warning. Shifts lasting more than 16 hours are flagged
and excluded from report hours and labour cost.

If a drawer has cash activity and no saved count, the close flow offers an
optional **Count drawer** step. Save the count or close without counting. See
[Counting the drawer](/daily-reports/cash-drawers#counting-the-drawer).

## Why close every service day

TablePort never closes a day on its own. If nobody closes it, the same daily
keeps running, and every sale for the following days lands in it.

When a daily has been open for more than 36 hours, the report treats it as a
**long span**:

- the app header shows a chip such as "Open 4 days", and the console shows "Ran
  4 days" with a warning: "Reports are easiest to read when each service day is
  closed. Charts on this page show totals per day instead of per hour, and
  comparisons may not line up.";
- the sales chart switches from **Item sales by hour** to **Item sales by day**;
- the day is not compared with earlier days, because a multi-day total cannot be
  compared fairly with a single service;
- a **Problem** check appears first: "This trading day ran 4 days. Close the
  daily at the end of each service day so hours, comparisons and checks line
  up.";
- team hours, the cash drawer, and the email digest all cover the whole span.

If this happens, settle any open orders and close the daily now. The next daily
starts clean. Closed reports are not rewritten, so the long report stays as it
is.

## The guides in this section

- [Reading the daily report in the console](/daily-reports/console-report):
  every section and what each figure means.
- [The daily report in the staff app](/daily-reports/staff-app): the Stats tab,
  checks, printing and the closed-day screen.
- [Cash drawers](/daily-reports/cash-drawers): float, paying cash in and out,
  counting and opening the drawer.
- [Finding what you need](/daily-reports/finding-what-you-need): quick answers
  to common end-of-day questions.

## Related

- [Daily Operations Guide](/guides/daily-operations)
- [Location General Settings](/settings/location/general)
- [Reservation Reporting and Daily Routine](/reservations/reporting-and-daily-routine)
