FMCG Demand Forecasting Case Study: Machine Learning vs. Statistical Methods
Machine learning and deep learning are increasingly presented as superior alternatives to traditional forecasting. However, advanced models require more data, computing power, and implementation effort.
For a mid-sized German FMCG producer, I investigated a practical question:
Can machine-learning and deep-learning models improve one-year demand forecasts, or would established statistical methods remain the better choice?
The analysis compared 13 model configurations across 261 products.
The results were nuanced: machine learning delivered the best overall forecast accuracy across the portfolio, deep learning did not add value under the available data conditions, and simple statistical methods remained highly competitive. However, the analysis also showed that there is no universally best forecasting method for every product. Individual SKUs exhibited different demand patterns, meaning that the most accurate model depended on the characteristics of each product.
Data and Experimental Design
The dataset contained five years of daily product demand. Products were included if they had:
At least 600 historical observations (drop discontinued SKUs)
At least one demand event during the preceding 90 days
After filtering, 261 products remained. Daily observations were aggregated into weekly demand to align the forecasts with operational planning.
The data was divided chronologically:
80% for training (four years)
20% for testing (one year)
The models therefore had to forecast an unseen period of approximately 52 weeks. A chronological split prevented future information from entering the training data.
Performance was measured using:
Mean Absolute Error (MAE) for typical forecast deviations
Root Mean Squared Error (RMSE) to give greater weight to large errors
Methods Compared
The study covered three model families.
- Established statistical methods included naïve forecasts, moving averages, exponential smoothing, and Holt–Winters.
- The machine-learning methods were multiple linear regression and LightGBM. LightGBM was trained both across the complete portfolio and separately for each product.
- Deep learning was represented by the Temporal Fusion Transformer, also tested as a shared model and through separate product-level models.
Including simple methods was important. An advanced model only provides business value if it can outperform transparent and inexpensive baselines under the same test conditions.
Calendar and Seasonal Features
The machine-learning and deep-learning models received a comprehensive set of calendar features:
Week, month, quarter, and year
Beginning and end of months, quarters, and years
Number of working days, weekend days, public holidays, and bridge days
Christmas, Advent, Easter, New Year, and other German seasonal periods
Distance in weeks before and after Christmas and Easter
Cyclical sine and cosine transformations for weeks and months
These features enabled the models to detect nonlinear calendar effects. Demand around Christmas, for example, may depend on the product, the number of working days, and the exact distance from the holiday.
Results
The aggregate results across all products were:
| Method | Model family | MAE | RMSE |
|---|---|---|---|
| LightGBM | Machine learning | 1,138 | 1,456 |
| Simple exponential smoothing | Statistical | 1,164 | 1,513 |
| LightGBM per product | Machine learning | 1,193 | 1,532 |
| Moving average (four weeks) | Statistical | 1,199 | 1,546 |
| Weighted moving average (four weeks) | Statistical | 1,204 | 1,555 |
| Naïve (last demand) | Statistical | 1,352 | 1,726 |
| Seasonal naïve (52 weeks) | Statistical | 1,462 | 1,920 |
| Mean forecast | Statistical | 1,481 | 1,846 |
| Temporal Fusion Transformer per product | Deep learning | 1,579 | 1,893 |
| Temporal Fusion Transformer | Deep learning | 1,756 | 2,072 |
| Multiple linear regression per product | Machine learning | 1,797 | 2,195 |
| Double exponential smoothing | Statistical | 1,960 | 2,412 |
| Holt–Winters, 52-week seasonality | Statistical | 2,196 | 2,654 |
| Best method per product | Combined | 1,006 | 1,329 |
The shared LightGBM model achieved the lowest MAE and RMSE. Compared with simple exponential smoothing, LightGBM reduced MAE by approximately 2.2% and RMSE by 3.8%. The larger RMSE improvement suggests that its main advantage was avoiding some of the more substantial forecast errors.
Best-performing method per product further reduces MAE by approximately 11.6% and RMSE by 8.7%. Across all products, all tested forecasting methods were present as best method per product (LightGBM 40%, Exponential smoothing 16.5%, Mean forecast 11.8%).
Why LightGBM Performed Best
LightGBM can model nonlinear relationships and interactions between calendar variables without requiring them to be defined manually.
Training one shared model also allowed it to learn recurring patterns from all products. This was more effective than fitting separate LightGBM models to individual products: the shared model reduced MAE by approximately 4.6% and RMSE by 5% compared with the per-product configuration.
Each product provided only around four years of weekly training data. This is a relatively small sample for an independent nonlinear model. Pooling the products increased the effective training set and enabled LightGBM to learn common demand patterns.
Why Deep Learning Did Not Add Value
Neither Temporal Fusion Transformer configuration outperformed LightGBM or the strongest statistical methods.
Five years of history provide only around 260 weekly observations per product, with approximately 208 available for training. This is a modest dataset for a complex neural-network architecture.
Deep learning might become more attractive with many more products, longer histories, or richer explanatory variables such as promotions, prices, product attributes, and customer information. Under the available data conditions, however, its additional complexity did not produce better forecasts.
Statistical Methods Remained Competitive
Although LightGBM was the overall winner, simple exponential smoothing achieved an MAE only 2.3% higher. Moving-average methods also performed well.
At product level, no method consistently dominated every series. LightGBM produced the highest number of individual product wins, while simple exponential smoothing achieved the strongest average ranking across the portfolio.
This distinction matters. Aggregate error metrics give greater influence to high-volume products and large deviations, whereas product-level rankings treat every SKU equally.
LightGBM is therefore the strongest choice when reducing total forecast error is the primary objective. Simple exponential smoothing remains attractive when consistency, transparency, and ease of maintenance are more important.
Practical Recommendation
A production forecasting system should combine the strengths of multiple approaches. Rather than forcing every product through the same model, a model-selection strategy can evaluate several candidates for each SKU:
- Use the shared LightGBM model as the default portfolio forecast because it achieved the strongest overall accuracy.
- Retain simple exponential smoothing, moving averages, and other statistical models as benchmarks and alternatives.
- Evaluate models individually per product using historical backtesting.
- Select the forecasting method that consistently performs best for each SKU, while avoiding unnecessary model complexity.
This approach creates a hybrid forecasting system: advanced machine-learning models contribute where they provide measurable improvements, while simpler methods remain the preferred choice for products where they perform equally well or better.
Limitations and Next Steps
The analysis focused on historical demand and calendar-derived information. Future versions could include:
Prices and promotions
Stockouts and lost sales
Product lifecycle information
Customer orders
Distribution changes
Weather or economic indicators
Rolling-origin backtesting across several one-year periods would also provide stronger evidence about model stability. Prediction intervals could complement the point forecasts by quantifying uncertainty for inventory and production decisions.
Conclusion
The study produced three main findings:
Machine learning improved overall accuracy: the shared LightGBM model achieved the lowest MAE and RMSE.
Deep learning did not improve the forecasts: both Temporal Fusion Transformer configurations were outperformed by simpler alternatives.
Statistical methods remained highly competitive: simple exponential smoothing came close to LightGBM while offering greater simplicity and transparency.
The result is not a general victory of machine learning over statistical forecasting. One specific machine-learning method added measurable value because it matched the structure and size of the dataset.
The practical lesson is straightforward: advanced models should earn their place through out-of-sample performance. Complexity alone is not a forecasting advantage. Furthermore, forecasting accuracy is product-dependent: the best-performing system is often not a single model, but a portfolio of models that assigns the most suitable forecasting method to each product based on observed performance.