Proposals answered within 2 business days
All case studies
Demand forecastingLakehouseMLOps

Global Retail Intelligence: demand forecasting for a chain across 40 markets

Client: Norda RetailIndustry: Retail12 November 2025
Results
expired fresh products
-18%
out-of-stock events on shelves
-11%
markets on a single model
40

The challenge

Norda Retail runs a chain of grocery and convenience stores across 40 markets. Store orders were put together by local teams, mostly from spreadsheets and personal experience. In some markets this worked well. In others it ended with either expired yoghurt or an empty shelf on a Friday afternoon.

Sales data sat in a dozen or so systems, in different formats and with different delays. Nobody could compare two countries without a week of preparation. The board wanted one view of demand and one concrete number: how many units of each product to order for each store.

The approach

We started with the data, not the model. For the first few weeks we cleaned up sales history, promotion calendars, local holidays and weather data, so that every market spoke the same language. Only then did we build a hierarchical forecasting model that learns shared patterns but leaves room for local specifics.

We agreed one rule with the Norda team: the system proposes, the planner approves. Every recommendation comes with a reason (promotion, weather, trend), and the planner can adjust it. Those adjustments flow back into the model as a learning signal.

The rollout

We rolled out in stages, 4-6 markets at a time, starting with categories with a short shelf life: dairy, bread, fruit and vegetables. Data lands in a lakehouse, and forecasts run every night for about 2.4 million store-product pairs. Order recommendations show up in the planners' system before the stores open.

For the first 3 months in each market, the forecasts ran in parallel with the old process. We compared results week by week, and a market moved to the new system only once the improvement was confirmed. The whole rollout took nine months.

The results

After the full rollout, expired fresh products dropped by 18% on average compared with the same period a year earlier. Out-of-stock events on the best-selling products fell by 11%. We measured results on matched groups of stores to filter out the effect of seasonality and inflation.

The differences between markets are large: the best ones cut losses by more than 25%, while on a few small markets the improvement was marginal. The Norda team now uses the same platform for promotion planning and warehouse logistics.

Technologies

  • Databricks
  • Delta Lake
  • Apache Spark
  • Python
  • LightGBM
  • MLflow
  • Airflow
  • Power BI