Compliance playbook
Industry / heroes / medical discounts — verification cadence + audit-trail
Industry discount, heroes discount, medical discount — three programs every WA dispensary runs, all of them discretionary. No Washington rule tells you how often to re-verify or how deep the discount may go, which means the whole program is your policy and your evidence. The failure mode: a budtender stamps an industry discount ‘because she said she works at a shop in Spokane’ and nothing in the record says who she is or why she qualified. Here’s the house standard we run — verify per visit, document per transaction, audit per quarter — and why it holds up when anyone opens the log a year later.
No Washington rule sets this cadence — that is why it is a policy
Start with what the rulebook does and does not say, because a lot of industry-discount advice — including an earlier version of this page — attributes the cadence below to a WAC section. It isn’t in one. WAC 314-55-095 is ‘Cannabis servings and transaction limitations’: milligram limits and per-transaction caps, nothing about discounts. WAC 314-55-018 is the only discounts section in the chapter, and it is licensee-to-licensee — it prohibits producers and processors from advancing money or moneys’ worth to other licensees through rebates and discounts. It carries no employee-discount provision, no verification cadence and no percentage ceiling. So everything that follows is OUR standard, not the state’s:
- We verify per visit, not per customer. A budtender from a Spokane shop who walks in once a month gets re-verified each visit; the first-time check doesn’t carry forward. Most POSes store ‘verified industry-discount eligible’ as a customer-row flag, which turns a discount into a standing entitlement nobody re-reads. That is a policy hole rather than a citation, and it is the one that actually costs money.
- We accept a current pay stub OR a current employee badge from a WSLCB-licensed cannabis business. Driver’s license isn’t enough; word-of-mouth isn’t enough; ‘she’s been here before’ isn’t enough. The verification has to tie the customer to a current cannabis-licensee employer, because that is the only fact the discount is being granted on.
- We cap the industry discount at 30% off retail. That number is a house ceiling picked to protect margin and to keep the program readable as a discount rather than compensation — it is not a legal threshold, and no WAC section names one. Pick your own ceiling; the discipline that matters is that it is set in code and cannot be exceeded without a manager PIN.
Per-visit verification — the 30-second flow
- Customer requests the discount. ‘Hey, I work at [shop], do you guys do industry?’ That’s the trigger; nothing happens until they ask.
- Budtender asks for verification. ‘Got a current pay stub or a badge?’ Phrasing matters — we’re not interrogating, we’re documenting. ‘It’s our house policy on every industry discount, no exceptions’ is the right closer if the customer pushes back. Don’t reach for the state: no WSLCB rule asks for this, and a budtender who says otherwise gets caught by the first customer who knows the rulebook.
- Budtender photographs the verification. Camera at the till. Pay stub photo or badge photo lands as a CDN-stored image referenced by the audit-log row. CannAgent stores the image with a 90-day retention; some shops keep longer. Image gets PII-redacted at render-time (last-4 of any visible employer ID, no SSN tail).
- Discount applied at the till. POS stamps the activity row: customer_id, employer_name (typed by budtender), verification_type (‘paystub’ / ‘badge’), discount_pct, transaction_id, image_ref. Audit-trail complete in <30 seconds.
- Customer comes back next month. Re-verify. Don’t shortcut. The audit log shows N verifications for N visits — that’s the pattern that makes the program readable to anyone who opens it later.
What your POS needs to make this fast
- Discount-application gate at the till. Before applying any industry / heroes / medical discount, the budtender must complete a 4-field micro-form: employer name (free-text), verification type (radio: paystub / badge / medical-card), photo upload (required), discount % (locked to your shop’s ceiling). No bypass; no ‘skip for now.’
- Manager-PIN override required for non-standard discount %. Anything above your standard cap requires a manager PIN + a typed reason. Audit log captures both.
- Image storage with retention policy. Our defaults are 90 days for industry / heroes and 1 year for medical; both are house numbers, not statutory floors. Note that the transaction record itself is a different question — WAC 314-55-087 requires licensee records be kept on the licensed premises for five years, and that one IS a rule. PII-redaction at render-time so a reviewer sees what they need without exposing the customer’s full ID-tail accidentally.
- Audit-log query under 60 seconds. ‘Show me every industry discount applied in Q1 2026, grouped by budtender’ — your POS should answer in under a minute. CannAgent surfaces this as a one-click report; whichever POS you run, find the equivalent.
- Quarterly self-audit. We run a self-audit on the first of every quarter — random-sample 10 industry discounts, verify the photo matches the employer named, look for patterns (one budtender doing 80% of the discounts? Investigate). Nobody requires the self-audit; it is the cheapest way to find the leak while it is still small.
What breaks the program
None of these is a WSLCB citation — there is no industry-discount rule to violate. They are the ways a discretionary program stops being defensible to your own owner, your accountant, or anyone reading the log later:
- Discount applied with no verification record. ‘She’s industry, I know her’ leaves nothing behind. The transaction is now a margin giveaway you cannot explain six months on.
- Discount % above your own ceiling. Even once, even with proper verification — a ceiling that bends is not a ceiling, and the next override is easier than the last.
- Same person on the audit log every week with different employers named. Hopping employers is the pattern that says the verification is being waved through; it deserves a look.
- Budtender applying industry to themselves. Cleanest: budtender doesn’t ring their own transaction. Manager rings the budtender’s purchase + applies the discount. Double-control; clean audit trail.
- No quarterly self-audit. Without it you find out the program leaked when the margin report does, which is a quarter too late.
- Heroes / medical applied without separate verification flow. Each program is granted on a different fact. Stamping ‘heroes’ on someone with a paystub from a cannabis shop is wrong twice — wrong program, wrong evidence.
What this replaces
- Verbal-only verification (‘she said she works at…’) — undocumented, unreviewable, and impossible to defend to your own owner.
- Paper logbook of industry visits — gets lost, gets wet, gets thrown out by the cleaning crew. The gap shows up in the margin, not in a finding.
- Spreadsheet tracking of who’s ‘industry-eligible’ — an entitlement list nobody re-reads, which is the opposite of per-visit verification.
- ‘Just put it on her loyalty account as a manual discount’ — workaround that loses the verification + breaks loyalty-program math.
Takeaways
- NO Washington rule governs an employee or industry discount. WAC 314-55-095 is servings and transaction limits; WAC 314-55-018, the chapter’s only discounts section, is licensee-to-licensee. The cadence and the ceiling below are house policy — write them down as policy
- We verify per VISIT, not per customer — the first-time check doesn’t carry forward, because a stored ‘eligible’ flag is a standing entitlement nobody re-reads
- We accept a current pay stub OR a current employee badge from a WSLCB-licensed cannabis business; a driver’s license isn’t enough
- Our ceiling is 30% off retail, set in code with a manager PIN above it — that is a margin decision, not a legal threshold; pick your own number and hold it
- 30-second flow: ask for verification / photograph it / stamp the audit row with employer + verification-type + discount-% + image-ref / re-verify next visit
- Quarterly self-audit on a random 10-row sample is what keeps a discretionary program from quietly turning into an unpriced entitlement
Frequently asked
- How often do I have to verify someone for an industry discount — once, or every time?
- No Washington rule answers this — WAC 314-55-095 is servings and transaction limits, and WAC 314-55-018, the chapter's only discounts section, is licensee-to-licensee and sets no cadence. So the answer is your policy. Ours is every time: a budtender from a Spokane shop who comes in once a month gets re-verified each visit, because the first-time check doesn't carry forward. Storing 'verified industry-discount eligible' as a customer-row flag turns a discount into a standing entitlement nobody re-reads, which is the failure this cadence exists to prevent.
- What counts as acceptable proof for an industry discount, and how high can the discount go?
- Our standard is a current pay stub OR a current employee badge from a WSLCB-licensed cannabis business. A driver's license isn't enough, and word-of-mouth or 'she's been here before' isn't enough. On depth: no WAC section caps an industry discount at any percentage — that number is entirely the operator's. We cap at 30% off retail as a margin decision, set in code with a manager PIN required above it. Anyone quoting you a statutory ceiling is repeating something that isn't in the rulebook.
- When someone asks for our prior-quarter discount records, what should our audit log show?
- You pull every transaction with its photographed verification in seconds, each row tied to the image that justifies the discount. The POS stamps the activity row with customer_id, employer_name, verification_type (paystub or badge), discount_pct, transaction_id, and image_ref. Keep industry, heroes, and medical as separate activity-types so the three programs can be read apart — they are granted on different facts. Nobody requires the quarterly self-audit on a random 10-row sample; it is the cheapest way to find a leaking discount program while the leak is still small.
Related guides
Compliance + receiving playbook
Reading a cannabis Certificate of Analysis — what to verify before product hits the floor
6 min read
Compliance + ops playbook
Cannabis data discipline — what to lock down before someone makes you
6 min read
Compliance + legal-exposure playbook
ADA compliance for cannabis dispensaries — the federal exposure most operators forget
6 min read
Ready to talk through your migration?
30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.