Stock Counts
Counting the shelf on the app, how variance decides whether a manager has to approve, and what approval actually changes.
5 min read · Updated 10 Sep 2026
On this page
A stock count is the disciplined version of correcting your figures: you walk the shelf, type what is really there, and Kassly shows you the difference against its own number before anything is committed. Big differences go to a manager. Small ones apply on the spot.
It is free on every plan.
Counts are done on the POS app. There is no stock-count screen in the web app — counting is a job you do standing at a shelf with a phone in your hand, so that is the only place it lives. What the web app does have is the one-item Physical Count option on the Stock Adjustment form, which is a different, unreviewed thing. See Stock adjustments.
Starting a count
On the app, open Inventory → Counts, then New count. You pick a type and optionally leave a note.
| Type | Shown as | Meant for |
|---|---|---|
| Cycle count | Cycle count — Scheduled full segment | The regular walk through part of the catalogue |
| Spot check | Spot check — Quick verification | A handful of items you have a doubt about |
The count is created against the branch the device is signed in to.
Partial or full — the honest answer
The type is a label. It does not change how the count behaves, and Kassly has no "full count" mode that locks the catalogue or requires every item to be seen.
A count is exactly the lines you add to it, and nothing more:
- Nothing is pre-loaded. You start with an empty count.
- An item you never add is not counted and is not touched. It is not assumed to be zero.
- A line whose counted figure matches Kassly's figure writes nothing at all when the count is approved.
So a full count is a cycle count where you happened to walk the whole shop, and a partial count is one where you did not. Both are safe. What you cannot do is prove after the fact that a count covered everything — the count only knows what you put in it.
Adding lines
For each item, either scan its barcode or search for it, then enter the counted quantity and an optional line note. Each line shows three figures:
| Column | What it is |
|---|---|
| System | What Kassly thought you had at the moment you added the line |
| Counted | What you typed |
| Variance | Counted minus System |
The System figure is a snapshot taken when the line is added, not when the count is submitted. If the till sells three of an item while you are still counting the next aisle, that sale is not reflected in the line you already added — and approving the count will overwrite the real figure with your counted one. Count a busy section when the till is quiet, or count it last.
Lines can only be added while the count is Open.
Submitting, and when a manager gets involved
Tap Submit. What happens next depends on the size of the variance:
- Every line is inside your tenant's thresholds → the count is approved immediately, stock is applied, and you see Applied.
- Any single line is outside them → the count goes to Submitted, an approval is queued for a manager, and you see Submitted for approval.
A line trips the check if either test fails:
| Test | Default |
|---|---|
| Absolute variance in units is greater than the units threshold | 5 units |
| Variance as a percentage of the system figure is greater than the percentage threshold | 10% |
The percentage is the absolute variance divided by the system figure. When the system figure is zero the percentage test is skipped, because a percentage of nothing has no meaning — a line counted against zero can therefore only be caught by the units test.
The thresholds have no settings screen yet. They default to 5 units and 10% for every tenant and can currently only be changed through the API. If the defaults are wrong for your business, ask support to change them rather than hunting for the setting.
Submitting also asks for a manager PIN if the person counting does not hold the Stock In / Adjust Inventory permission. Anyone from Cashier upwards can start a count and add lines.
The four states
| Status | Shown as | Means |
|---|---|---|
open |
Open | Still being counted; lines can be added |
submitted |
Submitted | Waiting for a manager, because a variance was too large |
approved |
Approved | Applied to stock |
rejected |
Rejected | Nothing changed; kept as a record |
Approved and Rejected are final. A rejected count cannot be re-opened — start a fresh one.
What approval changes
Approving a count, whether automatically or by a manager, does this and only this, for each line where the counted figure differs from the system figure:
- sets the branch's on-hand figure to your counted quantity, and
- writes a Stock Count movement for the difference, referencing the count.
Lines with no variance are skipped entirely — no movement, no noise in the history.
Rejecting changes no stock. The count, its lines and the reason are kept as an audit record, and the manager's reason is appended to the count's notes.
Pending counts appear in the shared approvals queue alongside everything else waiting on a manager. See Approvals and promotions.
Offline
Counts need a connection. Both the list and the New count screen say so: Counts require a connection. Lines are sent to the server as you add them, and the System figure has to come from the server, so there is nothing sensible to do offline.
If you are counting a stockroom with no signal, count on paper and enter it where you have signal. Nothing is lost, but nothing is queued either.
Where to go next
- Stock adjustments — correcting a single item
- Stock levels — what the figures mean
- Approvals and promotions — the manager's side