Cashier dashboard
The cashier dashboard is the screen that frames every shift. The till opens here in the morning when the lead cashier types the starting float and taps Open Cash Float; it closes here at the end of service when they count the drawer and reconcile against expected. In between, the dashboard is the situational-awareness page of the shift — today’s revenue ticking up, the average ticket, the open tables that still need to be settled before close, the payment-method mix (cash, card, mobile, other). It’s the only place in the system that knows what’s currently in the drawer, what should be there, and what the gap is.
This page is for the cashier who runs the shift, the manager who reviews variances, the owner who wants to know the rule for opening and closing the till. If you’ve never seen the point of sale before, read the overview first; then come back here for the till. The order-taking screen the server lives on is the terminal — the dashboard and the terminal share the same shift session, so closing one closes the other.
Why this page exists
A cash drawer without sessions is a black box. At end-of-day you have the cash in front of you and no way to say whether it matches what was rung. Was the till short? Long? Did someone take a tip out without writing it down? Did a refund eat into the float? You can’t tell — the drawer is just a pile of bills.
The dashboard replaces that with a documented triangle: float in at the start of the shift, sales recorded during the shift, counted out at the end. The system already knows the first two; the cashier types the third; the dashboard shows the variance immediately. A €3 gap on a €700 cash day is small change in the tip jar; a €60 gap is the kind of thing a manager wants to know about before the cashier goes home.
The other reason this page exists is that the terminal refuses to take an order without an active shift behind it — the till has to be open before any money can land. If a server walks up to start a takeaway at 11:05 and nobody’s opened the shift yet, the terminal blocks them with a dialog pointing here. One shift, one cashier on duty, one place the cash actually lives.
The rule
One shift, one open session. The till opens with a counted float, closes with a counted drawer, and writes the variance — every euro that enters or leaves the drawer during service has a row behind it. If no session is open, the terminal cannot take an order.
What you see on the screen
The dashboard splits vertically into a shift strip across the top and the body below it.
The shift strip is a single horizontal band that reads, left to right: a green pulse dot, the title Cashier Dashboard, a sub-line saying who’s on shift and for how long (“Maria · on shift for 3h 20m · opening cash €100”), a link to the POS Terminal, and the red Close Shift button. The button stays disabled while any table is still unpaid — its label reads Close Shift (3 open) until every order is settled, then snaps to plain Close Shift.
The KPI row sits below the strip — four cards, each one a single number with a small caption. Today’s Revenue is the running take. Expected Cash is the float plus all cash sales so far, the number the drawer should show right now. Open Tables is the count of unsettled orders; while this is above zero, the shift cannot close. Avg Ticket is today’s revenue divided by paid order count.
The payment-method row breaks the revenue across Cash, Card, QR / Mobile, and Other, each card showing the amount and a small horizontal bar with that method’s share of the total. A glance tells you the night ran half-cash or mostly-card.
The open tables strip lists each unsettled order as a tappable amber tile — order number, current state (“Sent — unpaid”, “Draft — items not sent”, “Partially paid”), running total. Tapping a tile drops you into the terminal on that order. Below it, when there are discounts, service charges, tax, or tips on the day, a small footer summarises them.
The recent shifts list at the bottom is yesterday’s and the prior shift’s closed sessions — cashier name, duration, total sales, variance — colour-coded by status (green border for clean close, amber for ongoing, red for force-closed). This is the historical strip the manager scrolls when reviewing the week.
How to use it
The dashboard opens from the sidebar, or directly at /cashier. The first thing it asks is who you are — a numeric PIN pad covers the screen until a staff member identifies themselves. Then it asks the second question: is the till already open, and if so, are you the one who opened it?
Opening the shift
If no session is open, the dashboard shows a centred card with a key icon and the heading “No cashier on duty”. Tap Open Cashier Session. The dialog asks two things: the Opening cash (the float you’ve put into the drawer to make change — type the amount in euros) and an optional Notes field for anything worth recording (“changed €50 of small bills from yesterday’s till”). Tap Open. The till is now live. The dashboard switches to the KPI view, the terminal un-blocks itself, and every order rung up during the shift rolls into this session.
During the shift
The dashboard refreshes itself in real time. The four KPI cards tick up as orders are paid. The payment-method bars redistribute as the cash/card mix shifts. The open-tables strip grows when a table is opened and shrinks when one settles. Tap any open-table tile to jump into the terminal on that ticket — typical use is the cashier checking which tables are still waiting on the bill before the kitchen closes.
If you’re a manager checking on the shift mid-service, every read on this page is harmless — nothing on the dashboard mutates the till. The mutating buttons are Open Cashier Session, Close Shift, and the manager-only Force Close.
Closing the shift
At the end of service, tap Close Shift in the strip. If any tables are still unpaid the button is greyed out and a tooltip explains why — settle the rest first. Once every table is paid, the dialog opens with a totals summary at the top (today’s revenue, cash sales, expected cash) and a single input field underneath: Counted cash.
Physically count the drawer. Type the figure. The dialog computes variance = counted − expected and shows it in colour: green if the count matches exactly, amber if it’s within roughly 1% (or €10, whichever is greater), red beyond. Add a Notes line if there’s a known reason for the gap (“waitress took €20 in tips out before counting”, “found two cards left on the bar”). Tap Close. The session is sealed — totals, counted, expected, variance all frozen in the historical record. The till is now closed; the terminal refuses to take orders until the next cashier opens a fresh session.
When another cashier left the till open
If you walk up at 7 AM and the dashboard says another cashier is on duty (because last night’s lead forgot to close), you have two options. If you’re a shift lead or manager, a Manager override… link offers to force-close last night’s session — the dialog logs your name and a reason in the audit trail, then seals the session as it stood. If you’re a regular cashier, lock the terminal, ask the manager to PIN in, and let them do it. Force-close is not an everyday tool; it’s the cleanup path for “someone forgot”.
Strict shifts or open till — choosing the handover style
The default is strict shifts: one cashier owns the till, the next person is blocked until the shift closes with a cash count. For small teams without fixed cashier roles, the owner can switch to Open till under Settings → POS terminal → Cashier handover: one shared register session for the whole day. Whoever arrives first opens it with a counted float; after that any staff member with POS access can PIN in and take over — they just see a short notice (“make sure all the cash is in the drawer”) and tap Cash is in — continue. The drawer is counted once, at day close.
Good to know:
- Every order still records who rang it, in both modes.
- In open-till mode a cash difference points at everyone who used the till that day, not at one shift. Choose it because your team is small and trusted.
- Close Shift is available to whoever is at the register.
What happens behind the scenes
A cashier session is a single row in the system’s ledger: who opened it, when, with how much cash, who closed it, when, with how much cash counted, and the gap. While the session is open, every order paid against the till updates the session’s running totals — cash sales add to the expected-cash number, card sales add to the card column, mobile transfers to QR, on-account or bank-transfer to other. The system computes expected cash = opening float + cash sales − cash refunds; this is the figure the Counted cash field is compared against.
The “every table must be paid before close” rule is enforced server-side, not just by the disabled button. Even if a cashier somehow got past the button (a race, an old tab), the close call returns an error and the session stays open. The dashboard reflects whatever the server says; nothing on the page can lie.
When the close call succeeds, the session moves to closed and its totals freeze. A refund logged the next day against an order from this session does not change last night’s variance — it writes its own counter-entry against tomorrow’s session. Each shift is a closed book once it’s sealed.
When the terminal asks “is there an active session?”, it asks this same record. If no session is open, the terminal shows its own Open Cashier Session dialog and refuses to add the first item until one is.
Worked example — a Friday lunch close
Friday, 5:30 PM. Lunch service is done; the kitchen is cleaning down. Maria, the lead cashier, walks to the till and taps Close Shift.
The dashboard’s KPI cards read: Today’s Revenue €1,847, Expected Cash €742, Open Tables 0, Avg Ticket €38. The payment-method row breaks down €642 cash, €1,180 card, €25 QR / mobile, €0 other. The close-shift button is enabled — no open tables left to block.
The dialog opens. Counted cash is the only field — Maria pulls the drawer, counts in bundles, types 739. The variance line under the field flips to amber: −€3, “within tolerance”. The expected was €742 (the €100 starting float plus €642 in cash sales), the count is €739, the gap is small change. Maria types into the notes “tip jar overflow, all small change” and taps Close.
The session moves to the recent-shifts list — green left border, no force-close flag, “€1,847 · 47 orders · −3” in the row. The dashboard returns to the no-session view: “No cashier on duty”, the key icon, the Open Cashier Session button. The dinner shift opens at 6:00 — the relieving cashier walks up, PINs in, taps Open Cashier Session, types 100 for the fresh float, taps Open. The till is live again. The terminal un-blocks. The first dinner ticket can be rung.
One shift, opened in a tap, closed in three taps and a count. The variance is in the books before the cashier has left the building.
Related features
- POS overview — the four surfaces and how the till sits among them; read first if you’re new to the system
- POS terminal — the order-taking screen the dashboard’s till stands behind; without an open session the terminal refuses to ring
- Floor plan — the visual map of dine-in tables; every open table on the map is also an open table on this dashboard
- Kitchen display — the line-side screen the dashboard’s sales eventually flow through
- Where your information lives — the till is one of the five rooms of the system
- Prices, costs, and margins — what the dashboard’s revenue number represents, and how it relates to the cost of what was sold