Demand forecasting for hierarchical data

Introduction

Demand forecasting is an essential component of supply chain management. Accurate demand forecast leads to more effective production planning, better inventory management, or more accurate capacity planning. We collaborated with UXC Eclipse, a global Dynamics partner, to build a customer-tailored application for demand forecasting using Cortana Intelligence Suite components. The solution not only improved the existing accuracy of forecasts, but also replaced a heavily manual demand forecasting process requiring several days of work with a fully automated solution requiring only half an hour. UXC Eclipse further built a business intelligence (BI) application on top of our solution, that streamlines forecasted data and supports more informed decision making.

Hierarchical demand forecasting

Time series demand data can often be disaggregated by attributes of interest to form groups of time series or a hierarchy. For example, one might be interested in forecasting demand of all products in total, by location, by product category, by customer, etc. (see picture below). Forecasting hierarchical time series data is challenging because the generated forecasts need to satisfy the aggregate requirement, that is, lower-level forecasts need to sum up to the higher-level forecasts. For example, in the picture below, forecasts for all customers should sum up to the total forecast. There are many approaches that solve this problem, differing in the way they aggregate individual time series forecasts across the groups or the hierarchy: bottom-up, top-down, or middle-out.

hts_example

Another challenge when working with grouped time series data is that if we attempt to forecast at the most disaggregated level, the individual time series may be too sparse and noisy to be accurately forecasted. In this solution, we applied a middle-out approach to forecasting hierarchical demand data. In this approach, we selected a middle level in the hierarchy which captures most of the signal in the time series data while remaining as specific as possible. This level is selected using a combination of customer preferences and successful preliminary evaluation of forecasting performance at that level. Forecasts at the levels above are obtained by aggregation, and levels below by disaggregation using historical proportions. This approach solves the issue of bottom level time series being too sparse and difficult to forecast, since historical proportions used for disaggregation are more informative than what could be obtained directly forecasting at that level.

Solution architecture

The demand forecasting solution runs in the Azure cloud and leverages Cortana Intelligence Suite components. Historical demand data is uploaded from Dynamics AX into Azure SQL database on a monthly basis. An Azure Data Factory then routes the data to an Azure Machine Learning (AML) web-service where a demand forecasting model is trained, and invoked to forecast the upcoming forecasting period. The results of the forecast are written back into the Azure SQL database and consumed by a BI solution developed by UXC Eclipse.

kotahi_adf_architecture_2

The demand forecasting solution we’ve shown here demonstrates how to extend the capabilities of Dynamics AX with the Cortana Intelligence Suite by building on an existing AX implementation. For more information about our partner UXC Eclipse and their work on the project, please read the customer case study here. For additional examples of Cortana Intelligence based solutions, see the Cortana Intelligence Gallery. Feel free to contact us for help, if you have any questions or if your organization is considering a tailored demand forecasting solution.

 

Author: Vanja Paunić, Data Scientist, Microsoft