← All guides

Compliance ops playbook

State traceability reconciliation — the daily, weekly, monthly discipline

Every state with legal cannabis runs a seed-to-sale traceability system — METRC across most legal states, WA-LCB Traceability (formerly Leaf Data Systems) in Washington. Your POS records sales. Your manifest-receiving records intake. The state’s system records what it BELIEVES you have. Reconciliation between those three views is where most operators eat preventable WSLCB write-ups, $1,000-5,000 fines, or — in the bad cases — a license-renewal hold. The reconciliation cadence that holds, and how it surfaces inside CannAgent so a manager catches drift in hours instead of weeks.

By CannAgent7 min read

The three views and why they drift

ViewSource of truth forHow it drifts
POSWhat sold to a customer + at what price + whenWrong package selected at register; void recorded but not reflected in physical pull; manual quantity adjustments
Physical inventoryWhat actually sits in the vault + on the floorTheft (employee or customer); damage; misplaced packages; receiving-count variance vs manifest
State system (METRC / LCB Traceability)What the state THINKS you haveStale because of POS-sync delay; stale because of unposted manifests; stale because of accepted-receipt-but-not-finalized statuses

The daily cadence (15-30 min, end of every operating day)

  1. Verify POS-to-state sync. Did every sale ring at the register make it into the state system today? Most platforms have a "sync status" page. Anything stuck = investigate before next-day open.
  2. Process today’s receiving. Every manifest received today gets reconciled — manifest line vs physical count vs state intake. Discrepancies logged, reasons documented, vendor contacted IF the variance was theirs.
  3. Daily waste log. Anything destroyed, damaged, sampled, or removed gets a same-day waste entry. Per WAC 314-55-079(7) (WA): ‘all unusable marijuana waste shall be tracked.’ Other state codes are similar.
  4. End-of-day cash-tied-to-tickets check. Cross-reference till variance + transaction count + traceability record count. Numbers should agree within tolerance; large gaps indicate a posting issue, not a math issue.

The weekly cadence (60-90 min, same day every week)

  1. Cycle-count 4-6 high-velocity SKUs. Pick by velocity + value. Physical count vs POS-recorded vs state-recorded. Variance > 1 unit triggers investigation.
  2. Reconcile manager-PIN inventory adjustments. Every manual quantity adjustment from the past week gets reviewed by someone OTHER than the manager who entered it. Looks for pattern: same SKU adjusted weekly = look at receiving practices.
  3. Vendor-claim review. Every receiving discrepancy logged this week gets escalated to the vendor IF appropriate (theirs to fix vs ours to absorb).
  4. Expired / aging SKU sweep. Anything within 30 days of state-mandated test-result expiration OR vendor-claimed shelf life — flagged for clearance, donation if allowed, or scheduled destruction with state notification.

The monthly cadence (2-4 hours, last business day)

  1. Full inventory count. Every SKU, vault + floor, against state record. Variance per SKU > 2% OR > $100 in cost-basis = investigate.
  2. Audit log review. Sample 50-100 audit entries from the prior month: voids, returns, manual adjustments, manager-PIN overrides. Pattern-search for staff outliers.
  3. Submit any state-required monthly reports. State-by-state — WA: nothing routine; CO: monthly sales-tax + traceability summary; CA: distributor-relevant tax filings, etc. Calendar these as recurring tasks, not as remember-on-the-day tasks.
  4. Year-end audit-defense binder update. Add this month’s reconciliations + any vendor-claim resolutions + waste totals to the binder. Per /guides/cannabis-280e-tax-reality, this binder is the audit-survival artifact.

What CannAgent does to make this stick

  • Reconciliation surfaces are first-class. /admin/reconciliation isn’t buried — it’s on the manager dashboard with sync-status, daily-receiving variance, and waste-log gaps as headline metrics.
  • Recurring-task scheduler — daily-receiving + weekly-cycle-count + monthly-full-count tasks auto-create with manager-on-duty assignment + escalation if not closed by deadline.
  • Variance-investigation routing. Any discrepancy > tolerance auto-creates an investigation ticket with: linked transactions, manager-PIN history, receiving-line context. Manager closes with reason; reason logs to audit.
  • State-system sync health on the homepage. Sync stuck > 4 hours = red banner across the manager dashboard, not a notification you have to dig for.
  • One-click year-end binder export — daily/weekly/monthly reconciliation history + waste log + vendor-claim resolutions + audit-log samples → audit-ready PDF.
  • Compliance officer surface — read-only role with full reconciliation visibility, no transactional access. Policy: every dispensary should have one designated compliance officer beyond the GM, even at small scale.

Takeaways

  • Three views drift: POS / physical / state-system. Reconciliation discipline catches drift in hours; lack of it costs $2,500-5,000 per WSLCB write-up plus license-renewal scrutiny
  • Daily 15-30 min: verify POS-to-state sync, process receiving, log waste same-day, cash-tied-to-tickets check
  • Weekly 60-90 min: cycle-count 4-6 high-velocity SKUs, reconcile manager-PIN adjustments by someone OTHER than the entering manager, vendor-claim review, expiry sweep
  • Monthly 2-4 hours: full count, audit-log review for outliers, state-required reports, year-end binder update
  • CannAgent surfaces sync-health + variance-investigation tickets + recurring-task scheduler + one-click binder export so a manager catches drift in hours instead of weeks

Frequently asked

Why do my POS numbers, my physical count, and the state system never quite match?
The three views drift for different reasons: the POS drifts from the wrong package selected at the register, a void recorded but not reflected in the physical pull, and manual quantity adjustments; physical inventory drifts from theft, damage, misplaced packages, and receiving-count variance versus manifest; and the state system goes stale from POS-sync delay, unposted manifests, and accepted-but-not-finalized receipt statuses. Reconciliation between those three views is where most operators eat preventable WSLCB write-ups. The point is that discipline beats heroics on this.
How much time does a reconciliation cadence actually take each day, week, and month?
The daily cadence runs 15-30 minutes at the end of every operating day: verify POS-to-state sync, process today's receiving, log waste same-day, and run the end-of-day cash-tied-to-tickets check. The weekly cadence is 60-90 minutes on the same day each week: cycle-count 4-6 high-velocity SKUs, reconcile manager-PIN adjustments, review vendor claims, and sweep expiring or aging SKUs. The monthly cadence is 2-4 hours on the last business day: full inventory count, audit-log review, any state-required reports, and the year-end binder update.
What actually happens if we put off reconciling until we have time?
Drift compounds. Day 1 drift between POS and physical might be 2g and easily explained, but Day 30 unaddressed can be 47g of variance across 12 SKUs, none of which the on-shift manager remembers the cause of. Operators who say they will reconcile when they have time develop 6-week-old discrepancies that nobody can explain when WSLCB asks. The cost-to-do-it (about 6 hours of managerial time a month) is set against roughly $2,500-5,000 per write-up plus license-renewal scrutiny and the time spent reconstructing under deadline pressure.

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.