Back-office deep-dive
Cannabis payroll inside the POS — Form 941 next to till data
Most cannabis dispensaries run payroll across three systems that don't talk to each other. Hours come out of the POS. Payroll runs in Gusto / ADP / Comploy. Filings — Form 941, W-2 batch, state-specific stuff — get done by hand at the end of the quarter. The seams are where margin disappears, where IRS letters originate, and where the bookkeeper burns Friday afternoons.
Why three systems become four become five
Cannabis dispensaries pick up payroll vendors the same way other small retailers do — Gusto's friendly, ADP's enterprise-shaped, Comploy was a referral. The POS export to payroll provider is usually a CSV; the payroll provider's filings are usually online; the WA-specific stuff (L&I, PFML, SUI) is sometimes handled, sometimes not. Each gap is a system that has to be reconciled against the others.
- POS hours don't auto-sync — bookkeeper exports CSV, edits in Excel, imports to payroll. Errors compound across pay periods.
- Tip allocation lives in the POS but doesn't always make it cleanly to the payroll W-2 box 7 column. Mismatches surface in March of the following year.
- WA L&I rate updates quarterly. Bookkeeper has to know to check; the payroll provider doesn't always.
- PFML (Paid Family Medical Leave) and SUI (State Unemployment Insurance) reporting is on the operator if the payroll provider doesn't handle WA-specific filings.
- When the operator changes payroll provider (it happens), the historical hours + tax filings have to migrate by hand.
What 'inside the POS' means concretely
Payroll consolidation doesn't mean writing a tax-filing engine from scratch. It means the source data — hours, wages, tip allocation, deductions — lives in the same database as the till, and the filings flow from that source without re-keying.
| Surface | Old way (3+ systems) | Consolidated approach |
|---|---|---|
| Hours capture | POS clock-in → CSV export → payroll system import | POS clock-in → same DB |
| Tip allocation | POS → bookkeeper Excel → payroll W-2 box | POS → tip-allocation table → W-2 generator reads it |
| Form 941 (federal quarterly) | Payroll system → bookkeeper review → IRS submit | Generated from same DB; bookkeeper reviews + submits |
| WA L&I quarterly | Bookkeeper computes from CSV → online portal | Generated from same DB with current rates |
| WA PFML quarterly | Often skipped → letter from ESD | Generated from same DB; reminder cron |
| WA SUI quarterly | Same as PFML — easy to miss | Same — generated, not optional |
| W-2 batch (annual) | Payroll system → bookkeeper distribution | Same DB → generated → batch send via Resend |
The Form 941 reconciliation pattern
Form 941 is the federal quarterly payroll-tax return. Every IRS letter we've heard about in operator forums traces to a Form-941 vs Forms-W-2 mismatch — meaning the quarterly numbers don't reconcile against the annual W-2 totals. The mismatch is usually 1-3% and not malicious. It's usually data drift between systems.
- **Pull source data from one place.** If your hours live in 5 places, your Form 941 reconciles against 5 different views and at least one disagrees.
- **Tip allocation is the biggest reconciliation gotcha.** Cannabis tipping is irregular but real. If the POS captures tips and the payroll system captures hours, the W-2 has to merge them — and usually the merge is bookkeeper-by-hand.
- **Deductions before/after withholding matter.** Pre-tax deductions (health insurance, 401k if the dispensary offers it) are computed from the same DB or they aren't. Mismatch shows up in 941 line 5a vs the W-2 totals.
- **Quarterly close + annual close should both pull from the same source.** If quarterly is computed by payroll system and annual is computed by bookkeeper from the same payroll system, drift shouldn't happen. If the bookkeeper does annual from a CSV export, drift will happen.
Cannabis-specific payroll wrinkles
Cannabis payroll has structural quirks federal regulations don't fully accommodate. The big ones:
- **280E doesn't directly hit payroll, BUT** — the federal disallowance of business-expense deductions for cannabis operators interacts with payroll tax accounting in subtle ways. Talk to a cannabis-experienced CPA. The platform-side concern: keep the gross/net + deduction columns clean so the CPA's job is easy, not impossible.
- **Tip allocation is real and matters.** A budtender who clears $2K-$5K/yr in tips needs that captured for W-2 box 7 + Social Security purposes. The POS knows; the question is whether the W-2 generator knows what the POS knows.
- **Workers' Comp class codes** vary by store risk — Wenatchee retail-class can differ from Seattle multi-floor + retail-class. The payroll system has to know per-store rates, not a single org rate. WA L&I is per-store.
- **Federal banking limits** mean cannabis dispensaries often pay tipped employees in cash. Tip allocation still has to capture them; the IRS treats cash tips identically to credit-card tips for W-2 purposes.
When NOT to consolidate
Some dispensaries shouldn't consolidate payroll into the POS. Specifically:
- **You have a CFO/controller who's already running clean payroll in a dedicated system.** If the bookkeeper is competent, the payroll provider is reliable, and Form 941s reconcile cleanly — don't break what's working.
- **Multi-state operations beyond your POS's coverage.** If your POS does WA-only payroll filings and you have a CO + CA store, the inconsistency is worse than two systems. Solve that first.
- **Mid-year transition.** Consolidating mid-year creates a partial-year split that confuses the W-2 generator. Plan consolidation cutovers for January 1 of a new calendar year, not mid-quarter.
- **Active IRS audit.** Consolidating during an audit changes the audit trail mid-process. Wait until the audit closes.
What CannAgent ships here
Our Payroll Stack module ships Form 941 quarterly + W-2 batch annually + W-3 transmittal + 940 FUTA + WA L&I + WA PFML + WA SUI all from the same database the till writes to. No CSV export to a separate provider. The bookkeeper still reviews + submits — but the bookkeeper is reviewing one source, not reconciling four.
Takeaways
- Three-system payroll = $15K-$30K/yr in bookkeeper reconciliation labor + Form-941 surprise risk. Not optional cost — it's the price of fragmentation.
- Consolidation means the source data lives in the same DB as the till. Filings generate from that source. Bookkeeper reviews + submits, doesn't re-key.
- Form 941 mismatches almost always trace to data drift between systems. Single source = no drift.
- Cannabis-specific quirks (280E, tip allocation, per-store WA L&I rates, cash tips) aren't optional — the platform has to know them.
- Don't consolidate if you have a working CFO/controller setup, multi-state coverage your POS can't handle, or an active IRS audit. Don't consolidate mid-year — January 1 only.
Ready to talk through your migration?
30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.