Demand forecasting is a process in which historical sales data is used to develop an estimate of an expected forecast of customer demand, which is used to optimize supply decisions by corporate supply chain and business management. Based on demand forecasting strategic and long-range plans of a business like production planning, inventory management, budgeting, marketing plans and assessment plans can be created. Furthermore, decisions about whether to enter a new market can be made.

There are several different ways to do demand forecasting.  Choosing the right one depends on your business needs. The simplest one is to use data from the past to extrapolate into the future with minimal assumptions. More sophisticated methods of forecasting include statistical and AI models. Best practice is to generate multiple demand forecasts using different models. This will give you a more well-rounded picture of your future sales. Using more than one forecasting model can highlight differences in predictions, which can point to further research or better data inputs.

The goal of the project was creation of a web application for predicting future demand with machine learning models. The models would predict demand for the next few weeks. The challenge of building the model was the small data size. Furthermore, new data was continuously collected. Based on these both points, a meta learning method was implemented (using machine learning algorithms that learn how to best combine the predictions, from other machine learning algorithms, into one more reliable prediction).

Used tools: Python, Scikit-learn, Flask