Cannabis retail · Remote-first
Find the inventory your customers can't buy.
You send the POS export you already pull. We send back a ranked action list your team can work in one shift: what to pull, activate, refill, and mark down.
Stock in the building is not the same as stock a customer can buy.
Cannabis retail tracks tagged packages, rooms, and activation — not a single pooled count. A store can be correct on total on-hand and still have empty facings and inactive product twenty feet from the floor.
Four-week audits from $1,500 · Remote retainer after (3-month minimum)
The work
Six findings, each one a row on your list.
We're consultants, not a software or data company. We read your files, rank what we find, and walk you through it. Managers and buyers make every call.
01
Stalled, or just stocked too deep
We measure how fast each product actually sells from your POS sales report, not by estimating from inventory counts. That lets us split slow stock two ways. Stalled product sits past 3x its normal clear time (never less than 14 days) and won't sell through in 30 days at its current pace. It gets a suggested markdown or bundle. Stocked-too-deep product is selling fine; there's just too much of it. It gets "hold reorders," not a discount, so you keep the margin. If the floor is short while more sits in back, the row says "refill first."
02
Discounts that aren't working, or aren't needed
We compare each product's real average discount with what its category typically runs in your store. Two things show up. The first is products already discounted far past their category that still aren't selling. More discount won't fix those, so the row suggests a different move. The second is best sellers getting deep discounts they don't need to sell. We show the numbers; your buyer or manager sets the price.
03
Empty facings nobody is told about
When a facing runs empty and there's backstock available, the floor manager gets a move row. When there's no backstock, the buyer gets a reorder row. The list splits them so each person only sees what they can act on.
04
The activation gap
Product that arrived but never made it to the floor. It shows up as backstock with no floor counterpart. The row goes to whoever handles floor setup.
05
Facings that keep running empty
Some facings run low every cycle. We flag them so you can adjust your floor par or reorder trigger before the next stockout.
06
Reorders sized from real sales
For product that's out or running low, we suggest a reorder quantity based on what it actually sold, rounded to your store's own shelf fills. Anything a customer can't buy right now is split two ways. It's either recoverable today, because the next batch is already in back, or it's waiting on purchasing. The floor manager gets the activation list and the buyer gets the quantities.
What you send
Two files from your POS. No customer data.
Inventory export
Monday and Friday mornings, pulled before you open and before any preorders are scanned (Monday only on the Essentials Audit).
Product sales report
One covering the last 60 days at kickoff, then one covering the prior week every Monday.
That's all we need. The sales report is product-level totals only: units sold, sales, discounts and cost for each product. We never ask for customer data. No names, phone numbers, loyalty information or individual receipts.
No POS logins. No Metrc credentials. Dutchie and Flowhub supported.
Services
Start with a call. Audit when you're ready.
Every engagement starts with a free 20-minute call.
Free 20-minute call
No cost · remote
We look at your situation together and tell you honestly whether our process is a fit. No pitch deck, no obligation.
Diagnostic
$250 · remote · credited toward the Full Audit
Two files. Real numbers. Send us one inventory export, pulled before opening, and one 60-day product sales report. From those two files we'll show you: - Stock that has genuinely stalled, at cost - Good sellers stocked too deep, where holding reorders beats discounting - Products discounted far past their category that still aren't selling - Best sellers getting deeper discounts than they need Then we walk you through it on a call. The numbers come from your own sales, not estimates. There's no customer data and no logins. If your files don't show much, we'll tell you that too.
Essentials Audit
$1,500 · four weeks · one audit a week · remote
The same two files and the same method, sized for smaller stores. Each Monday you send your inventory export and weekly sales report, and we send back a findings summary and a prioritised action list.
You get:
- —Four weekly action lists, one each Monday
- —Each week's list graded against the last
- —Kickoff call and a week-4 review call
- —Short written notes in weeks 2 and 3
Larger or multi-store operators: see the Full Audit.
Full Audit
$4,500 · four weeks · two audits a week · remote
Eight Monday/Friday audits over four weeks. Each includes a findings summary, a prioritised action list, and a walkthrough call. Every new export grades the previous list, so you can see what got done.
Remote retainer
$3,500/month · two audits a week · 3-month minimum
Keep the Monday/Friday audits going after your Full Audit. The retainer adds markdown tracking, which compares what each markdown was expected to do with what it actually did, measured from your weekly sales report. It also includes a price drift review.
How it works
You export. We send the list. The floor runs it.
1
You pull two files from your POS. Pull your inventory export Monday and Friday before opening, and your sales report on Monday. Dutchie and Flowhub supported.
2
We send back a print-ready audit pack and walk your managers through it on a call.
3
Your team works the list. The next export shows what moved and what didn't.
Action list — Monday cycle · [Dispensary name redacted]
| Package tag | Product | Location | Action | Priority |
|---|---|---|---|---|
| 1A406…0123 | Blue Dream 3.5g — Brand A | Backstock B-3 | Move to floor — facing empty | High |
| 1A406…0456 | Gelato Cart 1g — Brand B | Display case 2 | Staff recommend — 18 days no movement | High |
| 1A406…0789 | Indica Gummies 100mg — Brand C | Backstock A-1 | Move to floor — facing low | Medium |
| 1A406…0321 | Sativa Pre-roll 5pk — Brand D | Display case 1 | Review pricing — 24 days no movement | Medium |
Invented data for illustration only. Package tags, products, and brands are fictional.
Your POS stays the system of record.
What two files showed at one store
One Nevada dispensary doing between $500K and $700K a month sent us one inventory export and a 60-day POS sales report. The first audit found:
- About $8.9K at cost in stock that had genuinely stalled
- About $10K at cost in good sellers stocked too deep. Our recommendation: hold reorders, don't discount.
- 5 products already discounted 10+ points past their category and still not selling through. More discount won't fix those.
- Best sellers averaging close to 50% off in a category that typically runs 25–32%
We used to estimate how fast products sold from changes between inventory exports. On this same store, that older method would have pointed about $7K of product that was selling well toward a discount. That's why we now work from your sales report.
These are one store's findings. They were identified, not recovered. Your files will show something different, and we don't quote a number before we've seen them.
Store name and identifying details removed. Revenue shown as a range.
What we do not do
- —We do not access your POS system, Metrc, or any state traceability system.
- —We do not work with customer data of any kind.
- —We do not guarantee savings, recovered revenue, or ROI.
- —We do not take compensation from brands, vendors, or distributors.
- —We do not provide compliance, legal, or regulatory advice.
Who we are
Two operators, not a software company.
Two cannabis operators with almost 25 years of combined retail and cultivation experience. We built ShadowSKU around the problems we dealt with on the floor every day.
Jakob R.
Co-Founder · Product & Analysis
Jakob has spent about nine years in licensed cannabis retail, including years in store management. He kept seeing product in the building that customers couldn't buy, so he built the system that finds it: a pipeline that turns a store's regular POS exports into a ranked, package-level action list, used daily on a live sales floor. At ShadowSKU he owns the analysis and the rules behind every number.
9 years in licensed cannabis · Retail management
Chris C.
Co-Founder · Client Relationships
Chris brings 15 years of multi-state cannabis retail and cultivation experience, from the sales floor to the grow. He knows how different markets, teams and POS setups actually run day to day, and he works directly with owners and managers to turn each audit's action list into changes their team can make in a shift.
15 years in cannabis · Multi-state retail & cultivation · Based in Florida
Get started
Book the free 20-minute call
No pitch deck. Dutchie and Flowhub supported. No customer data needed. If a Monday/Friday schedule won't work for your store, we'll tell you on the call.
Remote · two cannabis retail operators · your POS stays the system of record
Every figure says what it's based on. Estimates are labeled. Nothing is summed across different bases.