Case study · 2023 · Retail · Supply Chain

Demand Forecasting for a Grocery Co-operative

An 18-store grocery co-op was ordering perishables the way it had for decades: last week's sheet, adjusted by feel. We built store-level demand forecasting with weather, promotion, and seasonality signals — and, just as importantly, a review workflow that keeps planners in charge, shows them why the model suggests what it does, and learns from every override.

The challenge

Perishables punished every ordering mistake twice: over-order and it became shrink, under-order and shelves sat empty through the weekend rush. Both were happening weekly, store by store, with no systematic feedback loop.

The co-op had solid POS history but no pipeline turning it into decisions — and a healthy skepticism, earned from a previous vendor tool that planners had quietly stopped using.

What we built

01

Feature-rich demand models

Gradient-boosted models per store and category over cleaned POS history, with calendar structure, local weather, promotions, and holiday proximity as features — retrained weekly through an automated ETL pipeline.

02

Explanations, not black boxes

Every suggestion ships with its drivers — "heat wave + long weekend + promo" — because the previous tool died from unexplained numbers. Planners see why before they approve.

03

Override-and-learn loop

Planner overrides are first-class data: tracked, compared against realized demand, and fed back into weekly model review, so the system and the planners converge instead of compete.

04

Shadow mode first

Eight weeks of forecasts running silently against actual orders built the accuracy evidence — store managers saw the model beat the sheet before anyone asked them to trust it.

The results

−52%
Stockout hours

tracked perishable SKUs, 3 months after go-live

−14%
Fresh-produce shrink

co-op-wide vs. prior-year same period

78%
Suggestions accepted unchanged

planner review queue, steady state

Forecast error on perishable SKUsMonthly MAPE, lower is better

MAPE measured against realized demand; manual baseline from the shadow-mode comparison period.

View the data as a table
Forecast error on perishable SKUs
 Model forecastPrior manual ordering
Jun24.2%26.5%
Jul19.8%26.5%
Aug17.5%26.5%
Sep15.9%26.5%
Oct14.2%26.5%
Nov13.1%26.5%
  • Stockout hours on tracked perishable SKUs fell 52% within three months of go-live.
  • Fresh-produce shrink dropped 14% co-op-wide, with the heaviest-waste stores improving the most.
  • 78% of model-suggested orders are now accepted unchanged — the review queue became a five-minute task instead of a morning of guesswork.

Client identities stay confidential; figures are rounded from end-of-engagement delivery reporting.

Stack & expertise

  • Python
  • LightGBM
  • PostgreSQL
  • SQL transforms
  • AWS Batch
  • React

Ready when you are

Build the software solution your roadmap needs.

Schedule a Call