Demand Forecaster
Industrial Eng.Forecasts daily demand for 500 store-item series, flags which products run out before the next delivery, and says how much to order.
- Problem
- A store must reorder before it runs out. Which of 500 products will stock out before the next delivery, and how much should be ordered?
- Data
- Kaggle Store Item Demand Forecasting Challenge: 10 stores by 50 items, daily sales from 2013 to 2017.
- Method
- A SARIMA baseline on one series, then one global XGBoost model with lag, rolling and calendar features across all 500. One global model learns the shared weekly pattern and scales; 500 separate SARIMA fits do not.
- Result
- SARIMA on one series scored MAPE 33.4% and MASE 1.01, no better than repeating last week. XGBoost across all 500 scored MAPE 13.6% and MASE 0.74. 178 of 500 products run out within a 14-day delivery window; each gets a safety stock and reorder point at the chosen service level.
- Series modelled
- 500
- At risk in 14 days
- 178
- XGBoost MAPE
- 13.6%
- MASE vs naive
- 0.74
- Python
- XGBoost
- SARIMA
- Streamlit
store 9 · item 1
Runs out on day 13, before delivery
- On hand (simulated)
- 330
- Forecast demand until delivery
- 378
- Safety stock
- 29
- Reorder point
- 406
Order now77 units
Real backtest: grey is what sold, blue is the XGBoost forecast. Safety stock = z × σ × √days, with σ the daily forecast error.

