Demand Sensing Algorithms
The demand sensing with gradient boosting algorithm is now available to run demand sensing in SAP IBP, add-in for Microsoft Excel.
This advanced algorithm became available in 2021 and has a few advantages. Key differences between demand sensing 2.0 and demand sensing 1.0 are summarized in the following figure:




To set up demand sensing, you need to be aware of the following prerequisites:
- In the Configuration app, a planning level has been defined for the planning area that contains only the following master data types:
- Product (where the root attribute is PRDID)
- Location (where the root attribute is LOCID)
- Customer (where the root attribute is CUSTID)
- Time
You can add a demand sensing algorithm to your forecast model if the following apply:
On the main screen of the Manage Forecast Models app, you have selected a planning area where the time profile contains weeks, but not months.
Restrictions
The following restrictions apply to forecast models that contain a demand sensing algorithm:
- They cannot contain any pre-processing step except for promotion sales lift elimination.
- They can contain only one forecasting step.
- They cannot calculate error measures.
- They do not calculate ex-post forecasts.
- They can be created only at the lowest level of time granularity (days).
- They can take input demand signals only from the two lowest levels of time granularity (days, weeks).
- They can be used for background forecast calculations in SAP IBP, add-in for Microsoft Excel only if the Customer, Location, and Product planning levels are selected there in the planning view.
- They can only run on the baseline version of the selected planning area.
A few things to keep in mind:
- It is recommended to run demand sensing on total demand, not promotion-eliminated demand
- If you want to consider a promotion in demand sensing, add "Uplift" as an extra signal
- Extra signals are added to the model by importance level, not by the order you add them
- Best to look at forecast accuracy in total, not at individual demand streams
- User-defined outlier periods are in place from 2202 release
- Demand sensing with gradient boosting does not perform well on intermittent demand
For the demand sensing algorithm, the periodicity needs to be set to "Daily".
The default value for the minimum number of historical data points is 30 weeks If a product-location-customer combination (that is, a demand stream) has fewer usable weeks of historical data points than this parameter, it will get default outputs from demand sensing.
How to Setup Gradient Boosting
Section Overall Parameters should have the following settings.
| Setting | Description |
|---|---|
Main Input for Forecasting Steps | The key figure that is to be used as the input for all forecasting calculations in the current model. In other words, this is what future forecasts and sensed demand will be based on. For demand sensing, two inputs are possible here: and usually the one used for demand planning should also be used for demand sensing.
|
| Target KF for Forecast | The key figures in which you want to save the final forecast. For demand sensing, this should be set to Sensed Demand Qty |
| Target KF for Ex-Post Forecast | The key figure in which you want to save the ex-post forecast for demand planning algorithms.Caution: This should be left empty for all demand sensing algorithms For other demand planning algorithms, the ex-post forecast is calculated for past periods for which actual demand history is also available. The system calculates the forecast accuracy measurements by comparing the differences between the actual values and the ex-post values. As stated above, this is not relevant for demand sensing algorithms. |
The Algorithms section should have the following settings:

| Setting | Descriptions |
|---|---|
Maximum Number of Trees | Sets the maximum number of trees to make in the ensemble model. The more trees that a model has, the more computations it requires, which will increase run-time.!!! Default 10 has to be an integer between 1 and 50 inclusive !!! |
| Learning Rate | The weight is applied when the outputs of the decision trees are added up.You can specify a learning rate to decrease the contribution of each individual tree when the tree is added to the model.If you decrease the learning rate, you should increase the maximum number of trees to prevent overfitting and thus achieve more reliable predictions. However, many trees require more computations and thus run-time.Caution: Default 0.75 Has to be a number between 0 and 1 inclusive. |
| Maximum Tree Depth | The maximum number of levels in a tree.Each additional level increases the number of leaves (terminal nodes in the tree) with a factor of 2. This means that the number of leaves in a tree is equal to 2L where L represents the number of levels. Since the algorithm builds many trees, the individual trees don’t need to be deep.The parameter can be used to control overfitting as a higher tree depth allows the model to learn relations that are specific to a time series.Caution: Default 1 has to be an integer between 1 and 5 inclusive. |

Note the prerequisites for missing value substitution as given in the figure.
Interpret and maintain any further entries for parameter settings as indicated.

Demand sensing forecasts future bias based on an optimization of historical bias factors for every lag and bias horizon.

In this example, the key figure values are capped if the calculated final sensed demand numbers are higher than 150 pieces.
The daily average calculation horizon is a rolling window over which demand sensing averages daily shipments.