← All guides

Operations + analytics deep-dive

Cannabis demand forecasting — the patterns that beat guessing

Most cannabis dispensary demand forecasting is ‘look at last week, order the same.’ That works in steady-state — but cannabis demand is anything but steady-state. Demand follows 4 distinct patterns: weekly cycle (Friday peak ~2.2x average, Tuesday valley ~0.6x), monthly cycle (paycheck-bound, 1st-of-month + 15th-of-month spikes), seasonal cycle (summer-trending Sativa + outdoor-friendly products, winter Indica + edibles), and event-driven (rush days per /guides/cannabis-holiday-rush-operations + weather + local events). Forecasting against ALL of these instead of just the trailing-week average cuts stockouts by ~60% + reduces aging-inventory by ~40% at typical operator scale. The pattern math we run at Green Life + SCC, what to ignore, and how to update the model when reality drifts.

By CannAgent7 min read

The 4 demand patterns ranked by predictive power

  1. **Weekly cycle (highest predictive power, narrowest window).** Friday is the peak — typically 2.0-2.4x daily average for the WA market. Saturday is second peak ~1.6-1.9x. Sunday is ‘Sunday-pickup-hangover’ ~1.1-1.3x. Tuesday is the valley ~0.5-0.7x. The weekly multiplier is the SINGLE biggest forecasting signal an operator has — and most ignore it because they rationalize the variance as ‘every week is different.’
  2. **Monthly cycle (high predictive power, paycheck-driven).** First-of-month + 15th-of-month see a 1.3-1.6x spike compared to mid-month days. Direct deposits + government-benefit payments time to those dates; cannabis-customer disposable income spikes accordingly. Some operators see a smaller end-of-month dip as customers wait for the 1st.
  3. **Seasonal cycle (moderate predictive power, slow-moving).** Summer (May-Sept) tilts toward Sativa-leaning + outdoor-friendly product (pre-rolls, beverages, lighter edibles). Winter (Nov-March) tilts Indica-heavy + edibles + concentrates. Holiday weeks (Thanksgiving / Christmas / NYE) shift further toward edibles + gift-able product. The shift isn’t huge but compounds on aging-inventory if ordered against the wrong season.
  4. **Event-driven (high predictive power, narrow window, hard to plan).** 4/20 + Greenwednesday + 7/10 + holiday weekends per /guides/cannabis-holiday-rush-operations. Plus weather events (cold snaps drive 1.2-1.4x indoor consumption + edibles), local events (concerts / sports / festivals nearby), and one-off WSLCB or competitor closures (a competitor outage routes their customers to you for 2-7 days).

The weekly multiplier table

These are the WA-market weekly multipliers we run against the trailing-30-day-mean as the baseline. Multipliers are dispensary-specific within ~10% — pull your own from your transaction data within the first 90 days of operation per /guides/cannabis-dispensary-opening-day-first-30-days.

DayMultiplier (×)Why
Friday2.0-2.4Pre-weekend purchase, payday-bound
Saturday1.6-1.9Weekend leisure
Sunday1.1-1.3Pickup hangover + day-off
Thursday1.0-1.2Pre-weekend prep
Monday0.7-0.9Recovery from weekend
Wednesday0.7-0.9Mid-week valley shoulder
Tuesday0.5-0.7Lowest day

Sum across the week: ~7.0 day-multiplier units. Match that to projected weekly revenue when ordering. Example: $100K projected week → Friday alone is ~$28-34K. Inventory has to cover Friday peak independently of Tuesday valley availability — Friday stockouts cost 4x more than Tuesday stockouts at the unit level.

Combining the patterns

Demand forecast = baseline × weekly-multiplier × monthly-multiplier × seasonal-multiplier × event-multiplier. The multiplicative-not-additive structure matters. A Friday + 1st-of-month + summer + 4/20 = 2.2 × 1.5 × 1.1 × 4.0 = ~14.5x daily baseline. That’s the day every operator under-orders for and stocks out by 2pm.

  1. **Baseline = trailing-30-day daily mean** (excludes the spikes — a clean baseline against which multipliers apply). Compute weekly so it adapts to slow drift.
  2. **Weekly multiplier from the table above** — apply per day-of-week.
  3. **Monthly multiplier 1.3-1.6 on 1st + 15th**, ~1.0 mid-month, ~0.85-0.9 last 3 days of month (paycheck-bound dip).
  4. **Seasonal multiplier per category** — summer +5-15% Sativa, +5-10% pre-rolls + beverages; winter +5-15% Indica + edibles + concentrates. Apply to category-level reorder math, not aggregate.
  5. **Event multiplier from /guides/cannabis-holiday-rush-operations** — 4/20 = 4.0-5.0x, Greenwednesday = 2.5-3.5x, 7/10 = 1.5-2.0x, NYE = 1.5-2.0x, weather events 1.2-1.4x.
  6. **Round UP, not down.** Stockouts cost more than aging-inventory at the margin most operators run. Per /guides/vendor-reliability-and-the-math-of-reorder, the aggressive-reorder-on-velocity-spikes math fits here.

Where the model needs constant updating

  • **New competitor opens within 5 miles.** Demand-forecast baseline shifts down 8-15% for 60-90 days as customers try the new shop, then partially recovers. Adjust baseline + monitor weekly.
  • **Existing competitor closes (temporarily or permanently).** Their customers route to you. 5-15% baseline lift for 2-7 days (temporary outage) or permanent (closure). Monitor inventory tightness DURING the spike — don’t ride it down to stockouts.
  • **Local event nearby.** Concert, festival, conference, sports playoff in your neighborhood = 1.2-1.5x daily for the event days + the day after. Calendar-feed integration helps; manual log otherwise.
  • **Weather extremes.** Snow days drop foot traffic 30-50% (winter); heatwaves push customers to evening hours + cold-product purchases. Adjust both forecast + product mix.
  • **Marketing-campaign send.** Per /guides/cannabis-customer-sms-deliverability-discipline, an opt-in SMS blast lifts the next-3-days demand by 5-15% for the campaign-targeted segment. Smaller than the patterns above but real.
  • **WSLCB regulatory changes.** New age-verification requirement, packaging change, advertising-rule update — typically 2-4 week adjustment period as customers + staff adapt. Monitor the variance during these windows.

What CannAgent does to make this stick

  • **Demand-forecast surface at /admin/operations/forecast** — renders next-14-days projected daily demand by category, with the multiplier breakdown shown so the operator can see what’s driving each prediction. Manager edits any multiplier with a 1-line explanation that logs to audit.
  • **Auto-applied multipliers in /admin/reorder** — baseline reorder math (trailing-30-day mean) auto-multiplied by the upcoming day-of-week + monthly + seasonal + known-event multipliers. Operator sees the unscaled + scaled numbers side-by-side.
  • **Weather feed integration** — weather forecasts pulled from a free API; auto-applies 1.2-1.4x cold-snap or 0.7-0.8x snow-day multiplier. Operator can override.
  • **Local-event calendar** — manager-maintained calendar entries (concert / festival / conference) drive a 1.2-1.5x event-multiplier on those dates. Renders on /admin/operations/forecast for transparency.
  • **Quarterly recalibration report** — every 90 days, a report at /admin/operations/forecast-recalibration computes actual vs. predicted multipliers for the prior quarter + flags any pattern drift > 10%. Manager reviews + signs off; updated multipliers feed back into the forecast model.
  • **Stockout post-mortem ↔ forecast model** — every stockout per /guides/cannabis-vendor-diligence-fire-or-keep gets a category: vendor-failed / forecast-undercalled / customer-spike. The forecast-undercalled ones flow back into multiplier calibration.

Takeaways

Ready to talk through your migration?

30-minute demo. We end by quoting the cutover from your current setup — fixed scope, no hourly games.