← All guides

Operations deep-dive

Cash discipline at a cannabis dispensary: variance, escalation, audit

Cannabis dispensaries run cash-heavy by design — federal banking is a long story. That means cash variance happens daily, and the only thing standing between $5 over the threshold and $500 walking out the back door is the system that catches the first one cleanly. Here is how to run it.

By CannAgent7 min read

Why this matters more in cannabis than other retail

A grocery store with $20 short on a $40K-revenue day has slack — the math hides in the noise. A cannabis dispensary running cash-only doesn't have that slack: every dollar is accounted for, every variance shows up the next morning, and a WSLCB inspection (or the equivalent state regulator) can ask for the till-count log going back five years. The system has to be tight from day one.

The variance threshold — set it, code it, escalate it

Every shop sets a variance threshold. Below the threshold, the variance gets logged but nobody loses sleep. Above the threshold, it triggers escalation. The threshold is not a one-size-fits-all number — it scales with shop size and reasonable counting error.

  • Set it as a fixed dollar amount per day that scales with your volume — small enough that a real problem crosses it, large enough that honest counting error does not.
  • Write the number down per store. A threshold that changes with the manager on shift is not a threshold.

The three-step escalation ladder

When variance crosses the threshold, the right response is not 'manager investigates.' That's a single point of failure. The right response is a defined ladder where each step has a name, a timing window, and an exit condition.

  1. Step 1 — the bookkeeper, first. They get the variance amount, the till session and the budtender, review the count and the footage at that time, and decide whether it reconciles (a recount or a known cause) or needs to go up.
  2. Step 2 — the manager. If the bookkeeper couldn’t reconcile it, the manager-on-duty for that shift checks the footage, talks to the budtender, and writes a reconciliation note.
  3. Step 3 — the owner. Anything not closed at step 2 lands with the owner. By the time it lands at this step, it has the full chain: count log, footage timestamps, manager interview, written reconciliation attempt. The owner makes the call: write-off, write-up, or further investigation.

The audit row — what to log, how long to keep it

Every till close writes a record. Variance or no variance. The record holds what the system expected, what was counted, the difference, who counted, when, and how the variance was resolved. Without it, the WSLCB / MED / DCC inspection asks 'how do you know?' and the answer has to be a record, not a memory.

Retention: five years. WAC 314-55-087(1) requires records “kept and maintained on the licensed premises for a five-year period” — read verbatim at primary source. But read (3) with it: it “do[es] not eliminate the requirement to maintain source documents, but … allow[s] the source documents to be maintained in some other location.” So the five years is not negotiable and the ADDRESS largely is, which is the question every operator on a hosted POS asks first. At what storage costs today, keeping everything for the full statutory period is the right call.

The morning reconciliation — what the bookkeeper sees

The day starts with a single email digest. Yesterday's till closes, all variances over threshold, link to the count log + footage timestamp for each. The bookkeeper either resolves them on the spot or escalates to step 2. The whole pass takes 15-25 minutes for a 2-store operation if the system is doing its job.

  • One digest a morning, before the bookkeeper's first coffee
  • One section per store, sorted by variance size
  • Each line: register, budtender, expected, counted, variance, and the footage time
  • Reconcile on the spot, or send it to the manager, from the same screen

Common patterns + what they mean

Variance is a signal, not random noise. Across operator forums and years of running cash-heavy floors, four recurring patterns show up. Knowing the pattern is half the resolution.

  • Single budtender, repeat $5-15 short → coaching opportunity, not theft. Counting error compounds without a feedback loop. A 10-minute till-count refresher solves it 80% of the time.
  • All registers, single shift, $30+ short → bank deposit was light or change order math wrong. Trace it backward through the till-open log.
  • Single register, $50+ over (yes, over) → comp ring or change-order recorded twice. Audit the change-fund movements that day.
  • Steady drift on one register over multiple days → register hardware miscounting, OR a process issue (e.g. tip share posted to till). Always check hardware first; software second; people last.

What to NOT automate

There's a temptation to fully-automate the resolution. Don't. The threshold + ladder + audit row + morning digest are the right level of automation. The actual reconciliation step has to involve a human looking at footage and talking to the budtender.

  • Don't auto-write-off below a higher threshold. Variances ARE the signal — automating them away is automating away the signal.
  • Don't auto-classify the cause. Classification needs context the system doesn't have.
  • Don't auto-escalate without the bookkeeper review step. That's how you train the owner to ignore step 3.
  • Do automate the audit-row write, the digest assembly, and the timestamp linkage to footage.

Takeaways

  • The threshold is a dollar amount per day that scales with volume — write it down per store, don't memorize it
  • Three-step ladder (bookkeeper → manager → owner) filters recoverable cases before they reach the owner
  • A record on every close — kept the five years WAC 314-55-087(1) requires
  • The morning digest is the one always-exists paper trail; the day's pass takes minutes, not an hour
  • Variance is signal, not noise. Single-budtender / single-register / hardware-drift patterns each resolve differently — knowing the pattern is half the work

Frequently asked

What does WSLCB actually ask for when they check my cash handling?
WSLCB pulls under WAC 314-55-087 ask for the daily till-close log and the variance audit trail — that section lists financial transaction records and accounting records among what must be kept and produced on request. 'We count the cash and write it down' is not enough - they want a system-of-record with timestamps, actors, and reconciliation steps. They can ask for the till-count log going back 36 months, and the same is true for MED, DCC, CRA, and OLCC at varying depths.
What variance threshold should I set for my store?
The threshold scales with shop size and reasonable counting error. Under $250K/yr per store, $5/day is the right floor; at $250K-$1M/yr, $10/day works because counting error scales with volume; at $1M+/yr, use $25/day or 0.5% of daily gross, whichever is smaller. Configure it in the platform per store rather than keeping it in a manager's head - if it lives only in someone's memory, it doesn't exist.
Who should a cash variance go to, and in what order?
Use a three-step escalation ladder rather than sending every variance straight to the owner. Step 1 is a bookkeeper SMS within 1 hour with the variance amount, till session ID, and budtender name; Step 2 is manager review within 24 hours if it couldn't be reconciled; Step 3 is an owner alert within 48 hours for anything still open. The bookkeeper layer filters the recoverable cases out, so by the time something reaches the owner it's a case that actually needs the owner.

Related guides

Ready to talk through your migration?

30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.