Not a feature list — a product surface. Each module here groups the inventoryapp surfaces a working day actually touches, with the WAC codes it enforces and the operator-pain it removes. Two stores run on every one of these today.
Cash-first checkout, vertical-ID gated at the cart, manager-PIN where it counts.
Every drawer counted, every drop logged, every variance escalated on a ladder.
Receive, count, par, waste — one back-of-house, no spreadsheets.
Vendors log in and pull their own — orders, payments, performance, 1099s.
POs auto-draft against velocity, vendor reliability, and fill-rate. Override with one click.
Loyalty without cards. Phone is the key. Tiers earn through visits.
WAC codes enforced in code, not in a binder. The auditor’s first stop.
Hiring, write-ups, reviews, training — all in the same system the register runs on.
Federal + WA payroll in the same login your closer uses. No support ticket queue.
One green-board. Every cron. Every integration. Every stale-open drawer.
Vertical-ID gated at the cart, manager-PIN where it counts, customer display feeding the second screen. Soft-confirm on big carts catches double-tap mistakes before they post. Tendered in cash, recorded in code, written to audit.
See the module →Three vendors, AI-suggested quantities, reliability scores on the row, low-stock alerts at the top. The same shelf your budtender reads from.
See the module →The reorder queue and the manager write-up assistant ride the same reasoning rails — reading 30-day velocity, vendor reliability, WA labor rules, and WSLCB enforcement — and hand the operator a defensible draft. Every issuance writes to /admin/audit.
The register your budtender actually rings on, built for a cannabis floor. Vertical-ID is caught at the cart — not on a poster, not in a training deck. Manager-PIN gates voids, returns, manual price changes, and discount overrides so the floor can move without giving away the store. Cash-first by design with a customer display on the second screen, barcode scanner, QZ Tray receipt printing, SMS receipt fallback, and age-verification logged into audit. Soft-confirm thresholds catch double-tap mistakes on $200+ carts before they post.
Cannabis is cash-heavy and cash is where the shrink hides. Slang ties every till session to the budtender who rang it: open, ring, drop, payout, close, count. Variances climb a defined ladder — $0–$10 logs and moves on, $10–$50 manager review, $50+ unoffset two days pulls camera footage. Drops to safe and ATM-bank set-asides are tracked separately so your Saturday Loomis pickup reconciles cleanly. Stale opens (drawer left open across days) surface on the health board the next morning, not three weeks later in a quarterly review.
Receive trucks, count cases, set pars, dispose product — all on the same database your register reads from. Cycle counts schedule themselves so your end-of-month physical isn’t a fire drill. Waste log enforces WAC 314-55-079 triple-witness in code: three signatures or the disposal can’t close. Receiving auto-matches POs to invoices and surfaces vendor-license lapses (WAC 314-55-035) before you accept product you can’t legally sell. Par-levels and low-stock alerts tie back to velocity — when the system suggests a reorder, it’s reading the same shelf the budtender is.
Vendors stop emailing your purchaser at 7am asking ‘did the PO go through?’ The /vmi portal lets every brand log in to their own slice — open POs, payment status, fill-rate scorecard, 1099 pull, sample-cap usage (WAC 314-55-096), suggest-product form, asset library, calendar of upcoming menu plans. Compliance is gated: vendor-license lapse pauses receiving automatically (WAC 314-55-035). Your purchaser stops being the inbox; the portal is the inbox.
The reorder model reads the same shelf your budtender does and drafts a PO before your purchaser opens email. Inputs: 30/60/90-day velocity, vendor reliability score (✓ 92% / ⚠ 78% surface on the row), fill-rate against your last six POs with that brand, Friday-rush patterns, and the Menu Builder’s zone constraints. Output: a draft PO with quantity-per-SKU chips your purchaser approves, edits, or kills. The Menu Builder ranks top 365-day sellers, capacity-checks them against your case zones, and flags phase-out candidates so you stop carrying dead stock.
Phone number is the loyalty key — no cards to print, no QR codes to lose. Tiers earn through visits and basket size, not punch cards. RFM segments, lapsed customers, at-risk-LTV, and birthdays all live in the same system the register reads from, so the next-message-to-send is one click from the customer record. Outbound respects WSLCB advertising rules (WAC 314-55-155) — ‘thinking of you, come visit’ is fine; product-specific bulk SMS isn’t, and the system won’t let you send what you can’t legally send.
WSLCB compliance is a workflow, not a PDF. Vertical-ID stops the cart at the register. WAC 314-55-095 industry discount has a 90-day re-verify enforced in the cart. Waste log requires three signatures (314-55-079) or the disposal can’t close. Vendor-license lapses (314-55-035) pause receiving automatically. Trade samples cap at 30 units per employee per quarter (314-55-096) — the POS warns at 25 and blocks at 31. Every state change writes to an immutable audit log that’s the auditor’s first stop. We keep records indefinitely; WSLCB requires three years.
Your people stack lives where your registers do. Hiring pipeline runs an FCRA-compliant background-check flow with the WAC 314-55-035 cannabis overlay baked in — disclosure, authorization, provider, result, adverse action — so a manager makes the WSLCB-vs-FCRA call deliberately, not silently. AI proposes proportionate-response options for write-ups against WA labor and WSLCB rules. Performance reviews use a five-dimension rubric with acknowledgement-required workflow. Onboarding training has 9 modules across 5 role tracks (budtender, lead, inventory, purchasing, admin) so a new hire’s first week is a checklist, not a dropped baton.
Your bookkeeper logs into the same platform as your closer. Federal: Form 941 quarterly, W-2 batch and per-employee, W-3, 940 FUTA. Washington: L&I, PFML, and SUI quarterly trio. Year-end status dashboard shows what’s filed, what’s due, what’s open. Hours flow from the time-clock to the pay run with hours-override audit trail; tips ride to W-2 box 7 separately from sample units (WAC 314-55-096) so they don’t get crossed at year-end. Manager runs payroll instead of submitting a ticket.
Single-pane-of-glass for the operator. Manager+ sees what’s green, what’s yellow, what needs attention right now: stale-open till sessions, overdue write-up follow-ups, vendor-license lapses, waste-log signatures still pending, cron jobs that didn’t run last night, integrations that drifted (METRC, SMS, email, push), feature-flag flips with the actor’s name attached. The audit log links from every row, so ‘why did this go yellow?’ is one click, not a ticket. The health board is what Doug checks before he opens email, and it’s the page a new manager learns the system from.
The demo deploy seeds two stores worth of personas, transactions, and write-ups so you can walk every module with real shapes of data — not a deck.
Request a demo