Machine learning demand forecasting: the right model for each item, chosen by its error
No single demand forecasting method works for the whole catalog. So we run a tournament of statistical and machine learning models per item, measure each one's error on data it did not see and keep the winner. Every cycle, automatically.
- Statistical and ML models competing per item
- Winner by measured error, not opinion
- Intermittent demand handled separately
- One run per cycle, comparable month to month
Demand forecasting methods: which one works where
Demand forecasting methods fall into three families, and a real catalog needs all three:
| Family | Examples | Where it works | Where it fails |
|---|---|---|---|
| Classic time series | Moving average, exponential smoothing (Holt, Holt-Winters), ARIMA | Regular demand with clear trend and seasonality | Many zeros, sudden changes, launches |
| Intermittent demand | Croston, SBA, TSB | Spare parts, slow movers, items with zero months | Continuous demand (they over-smooth) |
| Machine learning | Gradient boosting, random forests, global models | Large catalogs with external drivers (price, promotion, weather), patterns shared across items | Short series, few items, no careful validation |
That is why the approach is not "pick the best method" but let them compete per item and measure. In a typical distribution catalog, classic models win on most smooth series, intermittent ones need Croston or SBA, and machine learning adds value on series with external drivers or shared patterns.
How we do it
Data and cleaning
Sales history by item and customer, corrected for stock-outs (unmet demand is not zero demand), with anomalous months flagged and substitutions spliced.
Classification
Each series is classified by pattern (smooth, erratic, intermittent, lumpy) and maturity (launch, mature, declining). The class decides which models compete.
Aggregation level
We test at which level forecasting works best (item, family, customer, region) and how to break it down. Often the best item forecast comes from forecasting the family and allocating.
Model tournament
Up to 23 models per series, validated on months the model did not see. Error metrics for every model and series are stored, and the one with the lowest error for that particular series wins.
Delivery and cycle
The calculated forecast is delivered apart from the adjusted one, with traceability. Every cycle is frozen to compare against actuals and measure accuracy and bias.
Three ways to get it
Inside Excel
With ForecastSolve: the engine runs on the planner's computer, no cloud. For one planner and catalogs of hundreds to a couple of thousand items.
For the team
With DemandSolve: the same engine in a multi-user solution for the team, with business rules, approvals and optional ERP integration.
As a service
You send us the extract every cycle and we return the forecast per item with its metrics, in the format your ERP or Excel consumes. Useful to start without installing anything.
How you will know it works
Before trusting the forecast, we test it on your own past: we simulate what we would have forecast six or twelve months ago and compare it with what you sold. You see the real error, by item and family, and compare it with your current method and with a naive one (the average of recent months).
If we do not beat your current method on your catalog, we tell you.
Frequently asked questions
Does machine learning always forecast better?
No. On short series or with little information, classic models usually win and are more stable. Machine learning adds value when there are external drivers (price, promotions, weather) or many items with shared patterns. That is why they compete per item and measured error decides, not fashion.
How much history do I need?
Ideally 24 months or more to capture seasonality; it works with less, using simpler models. New items are forecast with profiles of similar items until they have a history of their own.
What about items that barely sell?
They are classified as intermittent and use methods designed for them (Croston, SBA, TSB), which forecast the demand rate rather than next month's sale.
Can I adjust the forecast by hand?
Yes, and you should when you know something the data does not. The calculated and adjusted forecasts are stored separately, so at cycle close you can measure whether the adjustment improved or worsened the result.
Does it integrate with my ERP?
As a service or with DemandSolve, yes: we read the extract and return the forecast in the format your ERP consumes. With ForecastSolve, data comes in by CSV or from the sheet.
Want to see how much error it would have on your catalog?
Send us a sales extract and we return a test on your past months, with the error by family compared with your current method.
Try it with my data →