Machine Learning Engine
Definitions
Forecast run: A forecast run is the process of creating forecast with a specific forecast setting.
Forecast method: A forecast method is an algorithm for creating forecast. It might have one parameter, several parameters, or no parameters.
Forecast setting: a forecast setting consists of a forecast method (e.g. exponential smoothing) its specific parameter values (e.g. alpha = 0.3 for a setting with exponential smoothing), and the number of past periods considered.
Heuristic Classification and Parameter Setting
A heuristic classification is implemented for historical sales data which had not been used for forecasting. It investigates if the time series is intermittent. If not, then the time series has trend or seasonality. Based on the results, the parameters are set to values which give good results based on the forecasting literature.
Machine Learning
When the user starts forecast calculation, several learning runs are processed too. Learning runs are forecast calculations with experimental settings. If a method and/or some parameters are found which gives better results than the actual settings, then those settings will be used. This is a so-called and colony optimization which tries to find the best way how we can proceed, as ants try to detect the best way to get food.

The first forecast run setting is based on the method estimation, which is step 0. Here the engine detects if a record can be forecasted based on its historical sales. If yes, the estimation algorithm proceed to detect the suitable method.
A record cannot be forecast if:
The average demand in the investigation period is below 0.5.
Its mean variance (CV) is above 2.5.
There's only a few data points in the investigation interval (3 or less in the last 12 period)
If the record can not be forecasted the application will calculate the forecast using moving average, and will overview its property every planning cycle.
