Update May 2016:
the forecasting engine of Lokad has now a native support for stock-outs
. Thus, our probabilistic forecasts are not merely resilient to the bias introduced by stock-outs, but can natively handle the corrections assuming that past stock-outs are correctly pinpointed.
Stock-outs not only hurt the business because of the loss of loyalty they create among clients who cannot be serviced, but stock-outs also introduces a bias in the observations of the historical demand. Because of stock-outs, zero sales does necessarily equal zero demand. Salescast is not immune to this problem; however, when properly used, it can be made extremely resilient
Impact of stock-outs on the classic forecasts
A forecast in the classical (median) sense represents an anticipation of the future that has 50% chance to be above or below the future demand. When stock-outs are observed, a downward bias
is introduced within the historical records because unfulfilled demand is typically not accounted for.
As a consequence, the forecasts built upon the historical data come with a downward bias as well, hence generating further stock-outs.
In the most extreme case, if there is no minimal stock level defined, the replenishment process can converge to a frozen inventory status
where no sales are further recorded – because there is no stock – and where no inventory is further reordered. Worse, in this situation, forecasts are 100% accurate: forecast is at zero and sales are at zero as well.
Pitfalls of stock-out data integration
In order to correct the bias introduced by stock-outs, stock-outs should be accounted for. This can be done by collecting detailed historical records about all the past (and current) stock-outs. While this idea is appealing, we observe that this approach requires considerable efforts in practice.
- Most companies do not accurately track stock-outs. It’s not sufficient to have some stock-out data, the data about stock-out should be extensive and accurate to have any hope for improving the demand forecasts.
- Stock-outs are (hopefully) relatively rare, usually occurring less than 10% of the time in most businesses. As a consequence, it takes a significant business volume to collect enough data to support a robust statistical analysis of the stock-outs.
- The impact of stock-outs is complex. Stock-outs cause cannibalizations (on the unavailable items) when substitutes are present. They also cause some clients to postpone their demand, leading sometime to a “surge” of demand when items become available again.
Quantiles as bias-resilient forecasts
Instead, quantile forecasts represent a much more efficient and leaner
alternative to mitigate the bulk of bias introduced by stock-outs. In short, quantiles are used to compute reorder points
biased forecasts. For example, a reorder point computed with a 95% service level is an estimation built to be 95% of the time just above the demand (facing a stock-out only 5% of the time).
Quantile forecasts, when associated to high
service levels - i.e. above 90% in practice - behave very differently than classic forecasts. Intuitively, in order to compute a 95% quantile forecast, the analysis focuses on the Top 5% most extreme fluctuations of the demand. While it is possible that the stock-outs have been so predominant in the historical that even the top 5% sales ever observed are only a fraction of the “usual” demand, in practice, this is usually not the case. Even in presence of significant stock-outs, the highest point of demand in the history is typically higher than the average demand.
As a result, quantile forecasts almost never get into the vicious circle where stock-outs introduce so much bias that, in turn, biased forecasts exacerbate further the stock-out problem. We observe that, for vast majority of our clients, quantile forecasts lead to a virtuous circle where quantiles, being more resilient to bias, immediately reduce the frequency of stock-outs, bringing service levels back in control
. Then, after a while, the frequency of stock-outs converges toward the defined target service levels.