Traditional demand forecasting
For a long time, traditional demand planning solutions have relied on univariate forecasting without the use of external drivers. These solutions rely on the assumption that future demand is related to past demand in terms of trend and seasonality. For example, sales of jackets will usually spike right before winter, remain high during the winter, and eventually reduce to a low level during the summer months. This same pattern can be expected year after year. Forecasting sales of jackets using past data is a good example of the application of univariate forecasting without external drivers.
The influence of demand drivers
However, life is never so simple. External factors such as price and weather can greatly influence the sales of jackets during the winter months. Let’s take pricing, discounts, and promotions as an example. Budget-conscious customers may be inclined towards purchasing a jacket that is on discount vs. one that is not (especially in periods of high inflation). Moreover, pricing and discounts provided in past years during winter may not be the same as those planned in the current year which can again impact how much an SKU sells this year vs. past years. Similarly, sales of jackets will generally be higher during winters when the average temperature is lower than usual vs. winters with average or above average temperatures. In such cases, relying solely on past demand without incorporating these external factors can lead to forecasts with high errors.
Improving demand forecasts with promotions
Let’s look at how incorporating the impact of these external factors can improve demand forecasting. We will take the example of an SKU which has data from Oct 2019 to July 2022. The sales of this item are heavily influenced by promotions. In Figure 1 below, the blue line chart shows the actual sales of this SKU. The green bars on the bottom chart show the periods when promotions were active. As we can see, the sales show appreciable spikes when the promotions are active.
Figure 1: Univariate modeling without external drivers such as promos (Baseline)
Training and testing the demand forecast without promotions
As a starting point, we develop a univariate model for this SKU without taking into account promotions. The training data will be till April 2022 and the period after that will be used as a test set. The red line in Figure 1 shows the in-sample (train) and out-of-sample (test) predictions from this univariate model. The test period shows the breakdown of the predictions by trend and seasonal components for reference. Since this model does not take into account promotions, the promo component is zero in this case. The trend and seasonal components do a good job of capturing the volume when the SKU is not promoted, but when the SKU is promoted, seasonal and trend components are insufficient.
Refining the demand forecast with promotions
Next, let’s incorporate a flag into the model that indicates the promo period (results in Figure 2). This is a simple extension of the previous univariate model. This model definitely does a better job of capturing some of the lifts during the promo period. The forecast in the test period also shows the contribution of promos now. However, this is still a very simplistic model and it still can not capture some of the nuances during the promo period. For example, we can see that the impact of the promos is not identical in all periods. Some promos are more effective than others and result in a greater lift. The timing of the promo also matters. For example, promos in December generally lead to a greater lift compared to promos in May.
Figure 2: Modeling with basic external drivers such as when the promo is active
Enriching the demand forecast with promotion details
We can try to capture these effects in the model by incorporating richer data about the promotion such as the type of the promo, the extent of the discount, as well as other promo-related engineered features. The results of this model can be seen in Figure 3. This model is able to capture not only the lift due to promotions but the nuances in the promo periods such as the spike in various promotion periods and their timings.
Figure 3: Modeling with advanced external drivers such as when the promo is active, type of promo, discounts, and other promo-related engineering features.
Improve accuracy with driver-based forecasting
So that is it for now. As can be seen, sophisticated feature engineering related to drivers can greatly improve the accuracy of forecasting solutions which can improve downstream planning systems. Not only that, armed with the knowledge of how drivers such as promos impact sales, planners can now plan better in order to meet certain objectives such as maximizing sales or profits.
To learn more about our AI/ML Forecasting product, make sure to read our whitepaper: "AI-Powered Demand Forecasting - Future-ready Thinking with o9's Digital Brain" here.
Building a superior forecasting model with AI/ML
AI/ML-based forecasting models have become essential. Learn how to build the right planning solutions now.
About the author
Nikhil GuptaLead Data Scientist
Nikhil Gupta is a Lead Data Scientist working on developing demand planning solutions at o9 Solutions. Prior to joining o9, Nikhil worked in the semiconductor industry where he applied machine learning and forecasting techniques to various domains such as circuit design and supply chain management. Nikhil holds Master’s degree in Electrical Engineering and in Data Science. Outside of work, he is an avid contributor to the open-source community and is the lead developer of the time series module in “pycaret”.