- The Quantitative Supply Chain Manifesto
- The Lokad test of supply chain performance
- Overview of quantitative supply chain
- Generalized probabilistic forecasting
- Decision-driven optimization
- Economic drivers
- Data preparation
- The Supply Chain Scientist
- Timeline of a typical project
- Assessing success
- Antipatterns in supply chain

- Inventory forecasting
- Prioritized ordering report
- Old forecasting input file format
- Old forecasting output file format
- Choosing the service levels
- Managing your inventory settings
- The old Excel forecast report
- Using tags to improve accuracy
- Oddities in classic forecasts
- Oddities in quantile forecasts
- Stock-out's bias on quantile forecasts
- Daily, weekly and monthly aggregations

Home » Resources » Here

The forecasting engine refers to the specific component within Lokad that is responsible for core predictive analysis. This engine is an advanced piece of software which can be aptly categorized as machine learning. Moreover, this engine is very different from the classic forecasting toolkits typically geared towards time-series forecasting. In this article, we explain what this engine does, how it differs from classic toolkits, and why these differences matter it comes to delivering sound results from a supply chain perspective.

Periodic forecasts don’t match the underlying reality of supply chain management: if the lead time to be considered is 10 days, should we sum the daily forecasts up to 10 days ahead? Should we sum 1 weekly forecast plus 3 daily forecasts? As a rule of thumb, summing forecasts is a big statistical no-no:

As a result, Lokad’s forecasting engine does not produce daily, weekly or monthly forecasts. Instead, it directly computes demand forecasts that match the expected lead time. Moreover, the lead time is expected to be a probabilistic forecast of its own. At first, this behavior might appear a bit disconcerting, but unfortunately, the idea that arbitrary forecasts can be accurately recomposed through sums of periodic forecasts is wishful thinking in nearly all supply chain situations.

In contrast, Lokad’s forecasting engine delivers probabilistic forecasts, whereby the probabilities associated with every possible future (1) are estimated. These probabilities provide much more granular insights into the future compared to single-valued predictions such as mean or median forecasts. Through probabilistic forecasts it becomes possible to fine-tune supply chain risks and opportunities. More precisely, for each possible supply chain decision - such as buying 1 extra unit of stock for a given SKU - it is possible, for a given future demand level, to compute a back-of-the-envelope financial outcome (2); and thus, ultimately prioritize all possible future decisions (3) based only on a “weighted” financial outcome by combining financial estimations with probabilities.

(1) However, in practice, to keep the calculations feasible, probabilities are that deemed too low are rounded to zero. Therefore, only a finite set of configurations are actually investigated.

(2) For example, let’s imagine that we buy 1 unit now, and the future demand is 5 (meaning that we will sell 5 units), and have a stock of 2 at the end of the period. If we assume that the gross margin is 10 and the carrying cost per period for each unit unsold is 15, then the net profit is 5 x 10 – 2 x 15 = 20.

(3) Prioritizing all future decisions might sound like a dreadfully complex task, but Lokad’s technology happens to be dedicated to this very problem. This technology is distinct from the forecasting engine itself.

One major specification of our forecasting engine is to deliver accurate forecasts while requiring zero manual statistical fine-tuning. In order to achieve this, Lokad has pre-tuned the forecasting engine using hundreds of real-life well-qualified datasets. Synthetic data patterns, such as a perfectly linear trend, or a perfectly cyclical time-series, are very unlike the patterns we found in real-life datasets. Consequently, such synthetic data patterns, albeit being seemingly straightforward, are not even considered. In fact, what is the point of delivering “good” results on “fake” data, if it comes at the expense of delivering “good” results on “real” data? Our experience indicates that a good forecasting engine is very conservative in its choice of forecasting models. Introducing a “perfect fit” linear regression model just for the sake of succeeding on toy datasets is downright harmful at scale because this model may be used where it should not have been.

Furthermore, in order to entirely skip all the manual fine-tuning, our forecasting engine relies heavily on machine learning algorithms. As a result, the engine needs a sizeable dataset to work. In fact, the forecasting engine establishes its own settings by performing many statistical tests over the datasets. However, if the overall dataset is too small, the forecasting engine won’t even be able to properly initialize itself. As a rule of thumb, at least 1000 historical data points spread over 100 SKUs are needed to start getting meaningful results. In practice, even small e-commerce businesses, making less than 1 million € in turnover per year, tend to accumulate over 10,000 data points, typically spread over more than 200 SKUs. Therefore, the forecasting engine’s data requirements are actually very low, but no so low that the forecasting engine can be expected to work on “toy” datasets.

- items: min 100, better 500, best 2000+
- item attributes: min 1, better 3, best 5+
- past sales orders: min 1000, better 10000, best 50,000+
- past purchase orders: min 50, better 500, best 2000+
- history depth in months: min 3, better 18, best 36+

The “items” refer to the SKUs, products, part numbers, barcodes, or whatever element needs to be forecast depending on the specific business situation at hand.

Purchase orders are required for forecasting the lead times. While they may be omitted at the initial stage, incorrect lead time estimations may wreak havoc in your supply chain, and hence, we strongly recommend providing this data whenever possible.

Input data can be further enriched by providing a history of stock-outs and promotions. In reality, the forecasting engine supports even more advanced data scenarios. The present section only focuses on the “must-have” data.

Macro-forecasts, which involve forecasting highly aggregated time-series, typically very smooth - once cyclicities are taken care of - and very long, are not Lokad’s forte. Such scenarios are witnessed in energy consumption forecasts, highway traffic forecasts, cash flow forecasts, incoming call traffic forecasts, and so on. Our forecasting engine is geared towards many-items forecasts, where correlations between items can be leveraged extensively.

High-frequency forecasts, which involve time-series with intra-day granularities, are also not handled by Lokad. These situations include most financial forecasts, including commodity and stock exchange forecasts. Here, the challenge lies in the fact that statistical patterns are already exploited - by other people - and have an impact on the future itself. This case is very different from supply chain, where demand forecasts have only a moderate impact (4) on the observed future demand.

(4) It would be incorrect to say that demand forecasts have no impact on the demand at all. For example, forecasting more demand for a product in a given store is likely to increase the facing of this product, and hence boost the demand. However, such patterns tend to be marginal in supply chain.