E-commerce

Demand Forecasting Engine

A predictive model reducing stockouts by 27% across 140 retail locations.

Client

Cascade Retail Group

Completed

September 2, 2025

Status

Completed

Services

Data Analytics, AI Consulting

Business Challenge

Cascade Retail Group's 140 locations relied on a shared reorder spreadsheet, updated weekly, that couldn't account for local seasonality or store-level trends — leading to chronic stockouts on fast movers and overstock on slow ones.

Objectives

  • Reduce stockouts on top-selling SKUs without inflating overall inventory spend
  • Give regional managers store-level forecasts, not just company-wide averages
  • Automate the weekly reorder recommendation instead of a manual spreadsheet

Approach

We started with an honest audit of their existing data: three years of POS history, but inconsistent SKU tagging across regions. The first two weeks of the engagement were data cleanup, not modeling — a step we flagged clearly in scoping so there were no surprises on timeline.

Deliverables

A per-store demand forecasting model, an automated weekly reorder recommendation feed into their existing procurement system, and a Looker dashboard for regional managers.

Solution

Planning

We prioritized the top 20% of SKUs by revenue first — the ones stockouts hurt most — rather than trying to model the entire catalog on day one.

Design

Forecasts needed to be explainable, not just accurate: each recommendation shows the top three factors driving it (recent trend, seasonality, local events) so regional managers could sanity-check before approving large reorders.

Development

Built a Python forecasting pipeline orchestrated with Airflow, writing nightly to PostgreSQL, with Looker as the reporting layer regional managers already knew how to use.

Testing

Ran the model in shadow mode for six weeks against real reorder decisions before it was allowed to generate live recommendations, comparing forecast accuracy against what actually sold.

Deployment

Rolled out region by region, starting with the two regions with the worst historical stockout rates, so the model proved itself where the pain was sharpest first.

Optimization

Post-launch tuning focused on event-driven demand spikes (local promotions, weather events) that the initial model underweighted — accuracy on those SKUs improved roughly 15 percentage points after the second tuning pass.

We were upfront that a small number of highly seasonal SKUs (holiday decor, in particular) would need a specialized model in a future phase — the initial engine intentionally excluded them rather than forcing a poor fit.

Results

27%

Fewer stockouts

140

Locations covered

1 quarter

Payback period

Technology Stack

PythonPostgreSQLAirflowLooker

Gallery

The forecasting engine paid for itself in a single quarter through reduced stockouts. Their team was honest about what wouldn't work, which we appreciated more than the sales pitch.

Daniel Cho

VP of Operations, Cascade Retail Group

Want a system like this for your business?

Tell us about your workflow — we'll scope it honestly.