Compliance playbook
Industry / heroes / medical discounts — verification cadence + audit-trail
Industry discount, heroes discount, medical discount — three programs every WA dispensary runs, all sitting under the same WSLCB scrutiny. The rule: verify per visit, document per transaction, audit per quarter. The failure mode: a budtender stamps an industry discount ‘because she said she works at a shop in Spokane’ and you find out when the inspector pulls the audit log and asks for the verification record. Here’s the cadence that holds up.
What WAC 314-55-095 actually requires
WAC 314-55-095 governs cannabis-business-employee discounts in Washington. The rule has three teeth that operators routinely overlook:
- Verification per visit, not per customer. A budtender from a Spokane shop who walks in once a month has to be re-verified each visit. The first-time verification doesn’t carry forward. Most POSes get this wrong by storing ‘verified industry-discount eligible’ as a customer-row flag — that’s a 314-55-095 cite waiting to happen.
- Acceptable verification = current pay stub OR 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.
- Discount cap = 50% off retail. Above 50% the WSLCB starts asking whether the ‘discount’ is actually a kickback or a structured-employment perk. Most shops cap at 30-40% to stay clear of the 50% line; we cap at 30%.
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. ‘Yes, the WSLCB asks for this’ is the right closer if the customer pushes back.
- 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 WSLCB expects.
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. 90 days minimum for industry / heroes; 1 year for medical (per medical-endorsement compliance). PII-redaction at render-time so the inspector sees what they need without exposing the customer’s full SSN-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. Doug runs 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). The self-audit log is itself a document the WSLCB likes to see at inspection.
What gets you cited
- Discount applied with no verification record. ‘She’s industry, I know her’ doesn’t hold up. Cite-able.
- Discount % above the 50% cap. Even once. Even with proper verification.
- Same person on the audit log every week with different employers named. Hopping employers is suspicious; it triggers a deeper review.
- 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. Failure to maintain audit discipline is itself a finding even when the underlying transactions are clean.
- Heroes / medical applied without separate verification flow. Each program has its own evidence requirement. Stamping ‘heroes’ on someone with a paystub from a cannabis shop is wrong twice — wrong program, wrong verification.
What this replaces
- Verbal-only verification (‘she said she works at…’) — undocumented, cite-able.
- Paper logbook of industry visits — gets lost, gets wet, gets thrown out by the cleaning crew. The inspector finds the gap; the gap is the citation.
- Spreadsheet tracking of who’s ‘industry-eligible’ — violates the per-visit-verification rule.
- ‘Just put it on her loyalty account as a manual discount’ — workaround that loses the verification + breaks loyalty-program math.
Takeaways
- WAC 314-55-095 requires per-VISIT verification, not per-customer — the first-time check doesn’t carry forward
- Acceptable verification = current pay stub OR current employee badge from a WSLCB-licensed cannabis business; driver’s license isn’t enough
- Discount cap is 50% per the rule; we cap at 30% to stay clear of the 50% line — above 50% triggers kickback / structured-employment-perk scrutiny
- 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 the move that turns a routine inspection into a one-pass clean report
Frequently asked
- How often do I have to verify someone for an industry discount — once, or every time?
- WAC 314-55-095 requires verification per visit, not per customer. A budtender from a Spokane shop who comes in once a month has to be re-verified each visit, because the first-time check doesn't carry forward. Storing 'verified industry-discount eligible' as a customer-row flag is a common mistake that sets up a 314-55-095 cite.
- What counts as acceptable proof for an industry discount, and how high can the discount go?
- Acceptable verification 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. The rule caps the discount at 50% off retail; above that the WSLCB starts asking whether it's a kickback or a structured-employment perk, which is why many shops cap at 30-40% and this operation caps at 30%.
- When an inspector asks for our prior-quarter discount records, what does our audit log need to 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 in the log so the WSLCB can run separate checks. A quarterly self-audit on a random 10-row sample is itself a document the WSLCB likes to see.
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.