Closing a Shift
Counting down the drawer, declaring the closing count, what the shift report shows, and the difference between an X and a Z reading.
7 min read · Updated 21 Oct 2026
On this page
Closing a shift is the moment the drawer is counted and the day is sealed. Kassly works out what should be there, compares it with what you say is there, and issues the shift's Z reading.
Needs the Cash Drawer & Expenses add-on (₱300 per branch each month), or any bundle that includes it. See Plans and add-ons.
Counting down
Count the drawer before you open End Shift. The End Shift screen shows Expected in Drawer above the box you type your count into, so it is not a blind count. If you read the expected figure first, you will count towards it, and a genuine shortage quietly disappears into a recount. Count, write the figure down, then type that.
Count all the cash, including what you opened with. Do not subtract it; Kassly expects the whole drawer.
On the phone
- Go to Settings → Shift & Operations. Your Active Shift card shows the opening amount, sales so far and transactions. Tap End Shift.
- The screen shows the Sales Summary, the Payment Breakdown and the Cash Drawer: Opening, Cash Sales, then AR Collected, Cash In, Cash Out and Cash Drops when there were any, and Expected in Drawer.
- Type your count into Closing Cash Amount. Confirm End Shift stays greyed out until you do. An empty drawer is 0, typed.
- Tap Confirm End Shift. If you are a cashier, a manager types their PIN here (see Who can close a shift).
- Shift Closed shows the Z-reading number, with Expected, Closing and how much you are Over or Short. Print Summary prints it on a paired printer.
There is no notes box on the phone.
On the web
Sales → Shifts → Close Current Shift closes your own open shift. Type the count into Closing Cash Amount; Close Shift stays greyed out until you do, and 0 is allowed. Notes is optional, up to 500 characters: a customer shorted you, a payout was not logged, the till was left unattended.
A shift is never closed on a blank count. The only ways one closes without a count are a manager's force-close and Kassly's automatic close, both described below, and either way it is recorded as not counted, never as ₱0.
What Kassly works out at close
| Figure | How it is arrived at |
|---|---|
| Expected in Drawer | Opening cash + cash sales + Cash In + AR cash collected − Cash Out − drops to the safe − cash refunds |
| Ending Balance | The figure you counted and declared |
| Over / Short | Ending Balance − Expected in Drawer |
| Transactions | Completed sales you rang up in the shift window |
| Total Sales, Discounts, Refunds | Totals for the same window |
| Payment Breakdown | One line per tender actually used |
Only cash counts towards the expected drawer. A sale paid on credit, by GCash, by card, or by bank transfer appears in the payment breakdown but not in the cash figure — the money never reached your till. See Cash over and short for how to read a variance.
What the shift report shows
Closing seals a Z reading for the shift, which you can view in the back office and download as a PDF sized for an 80mm thermal roll.
| Section | Contents |
|---|---|
| Transaction Receipt Range | Beginning and ending receipt (TRN) numbers |
| Sales Summary | Transaction count, void count, voided sales, return count, gross sales, discounts, returns and refunds, service charge, net sales |
| Payment Breakdown | One line per tender used |
| VAT Analysis | VATable sales, VAT amount at 12%, VAT-exempt sales, zero-rated sales |
| Accumulated Grand Total | Beginning and ending lifetime accumulator — BIR-accredited stores only |
| Cash Accountability | Beginning Balance, Cash Sales, AR Collected, Cash In, Cash Out, Cash Drops, then Expected in Drawer, Ending Balance, and Over / Short |
| Expenses | Optional and off by default — see below |
In Cash Accountability, the AR Collected, Cash In, Cash Out and Cash Drops lines only appear when there was something on them, so a plain shift stays short.
Showing expenses on the reading
Settings → Features has a switch under POS & Readings, Show expenses in X/Z reading. It is off by default, which keeps the reading BIR-clean. Turned on, it adds an expenses section and a net-after-expenses line, both clearly marked as management figures rather than BIR totals. Payouts already taken from the drawer are flagged so nothing reads as deducted twice.
Turning it on affects shifts closed from then on. Readings already sealed are never changed — that is what sealing means.
X reading versus Z reading
| X reading | Z reading | |
|---|---|---|
| When | Any time during an open shift | Once, when the shift closes |
| How many | As many as you like | One per shift |
| Numbered | No | Yes, from the terminal's Z counter |
| Changes anything | No | Seals the shift |
| BIR document | No — marked internal | Yes for an accredited store; otherwise marked as an internal Z-reading |
| Who can see it | Owner, manager, or the shift's own cashier | Owner and manager only |
Two more things worth knowing:
- The Z counter is a four-digit field, as declared to the BIR. On reaching 9999 Kassly refuses to seal any further readings rather than rolling over silently — the terminal has to be replaced or re-accredited first.
- A Z reading per shift exists for cashier accountability. Separately, Kassly seals a business-day Z reading per terminal, which rolls up every shift on that terminal for the day. That is the daily reading the BIR asks for.
Both are covered in X and Z readings.
Who can close a shift
| Shift | Who can close it |
|---|---|
| Your own, as Owner or Manager | You |
| Your own, as Cashier | You, with a manager's PIN |
| Anyone's, in a branch you can access | Owner or Manager, with Force Close on the desktop app's Shifts screen |
The Cashier role does not have End Shift Without Manager PIN, so when a cashier taps Confirm End Shift a manager types their PIN. You can give a cashier that permission with a custom role. Offline, with no manager at hand, the cashier can still end the shift, and Kassly records that nobody approved it.
Force Close is for a shift nobody is there to count. It records no count: the drawer shows as Not counted, exactly like the overnight automatic close below, so there is no Over / Short and nothing is booked to Cash Over/Short. It also writes who did it, and who approved it, into the shift's notes, so the close is never anonymous.
Owners, and managers assigned to that branch, are notified when a shift closes, with the sales total. The person whose shift it was is not notified about their own close.
When nobody closes the shift
A shift left open for more than 24 hours is closed automatically overnight. When that happens no count is recorded, because nobody counted the drawer. A manager's force-close is recorded the same way.
The reading reports Over / Short as NOT COUNTED rather than zero, and nothing is posted to your books. A drawer nobody looked at has an unknown variance, and recording it as balanced — or as a shortage of the entire expected balance — would be worse than recording nothing. The shift's notes say the drawer was never counted.
The lesson is the ordinary one: close your shift before you go home, even if the count is ugly.
Reopening a closed shift
Sometimes a ₱500 note turns up in a pocket a minute after closing. An owner, or a manager with access to the branch, can reopen a recently closed shift — a cashier cannot.
| Condition | Rule |
|---|---|
| Time limit | Within 24 hours of closing |
| Who | Owner, or a manager with access to that branch |
| Fiscal lock | Not once the shift's business day has been sealed by a daily Z reading |
The last one is not a preference: a sealed business day is a fiscal record, and a late correction is not allowed to reach back into it.
Reopening keeps the shift's original Z-reading number, and writes who reopened it and when into the notes. The Z reading sealed at the first close is not reissued — a sealed reading never changes.
Then take a look at Cash over and short, which is where most end-of-day questions actually land.