Unified Demand Forecast
Unified Demand Forecast (UDF) is a module in SAP Customer Activity Repository. UDF provides demand modeling and demand forecasting services for SAP for Retail applications driven by demand prediction. UDF also provides insight into shopper behavior, enabling retailers to perform predictive analytics on customer demand.
For input, UDF uses near-real-time information about multichannel customer transactions collected in SAP Customer Activity Repository. UDF can use historical demand data from different time series (such as consumption data, point-of-sale data, or sales orders). Taking advantage of SAP HANA capabilities, UDF provides a unified prediction of future daily demands.
For output, UDF generates a daily demand value plus an accompanying decomposition of demand by demand influencing factors (such as baseline demand and promotional lifts). The demand forecasts can serve as the basis for various cross-industry planning use cases.
UDF is not specific to any consuming application. Instead, it provides its services through the consuming application installed on top of SAP Customer Activity Repository. For more information, see SAP Note 2001688
.
UDF requires the Demand Data Foundation (DDF) module in SAP Customer Activity Repository. For more information, see Demand Data Foundation.
The statistical algorithms of UDF are implemented as an application function library (UDF AFL, software component UDFAFL_INST
) that you install and run in the SAP HANA Platform. The UDF AFL follows the release cycle of the SAP HANA Platform. For more information, see SAP Note 2050229
.
For installation and implementation information, see SAP Note 2088924
as well as the documentation on SAP Help Portal at .
UDF operates in two main steps:
Demand Modeling
Taking the historical demand data provided as input, UDF tries to explain the historical sales and the impact that each demand influencing factor had on consumer demand in the past. Examples include price changes, promotions, tactics, seasonality, public holidays, or trend.
Technically, UDF models the historical demand by estimating the best values for the parameters of its defined statistical model. The parameters typically describe DIF effects. For details, see the Algorithm
section below.
Preprocessing: Before modeling the historical demand, UDF cleans up potential issues in the provided sales data that might ultimately falsify the forecasts. For example, outliers, out-of-stock situations, and days when the location was closed are excluded from modeling. Gaps in the sales data are filled (“zero sales inferencing”).
Traceability: If you want to trace the changes during preprocessing, you can set this up in Customizing under . Here you set the system to create the model time series (table /DMF/UMD_TS
), which includes the traced changes. For more information, see the Customizing activity documentation (transaction SPRO).
Price elasticity: Based on the price information provided in the historical demand data, UDF can determine the price elasticity of a specific product in a specific location.
Time weighting: During modeling, UDF can weight recent sales observations more heavily than older sales observations to better align with the latest consumer demand. You can find the time weighting value also in the generated model time series (field TIME_WGT
in table /DMF/UMD_TS
).
Modeling Results
Modeling can generate different time series (see Model).
Note
Demand modeling is a prerequisite for demand forecasting. Before objects (such as products and locations) can be considered for a forecast, they must first have been modeled so that modeling results are available.
Demand Forecasting
Using the results from demand modeling and given inputs such as planned promotions and prices, UDF can predict the effects of similar DIF occurrences in the future and derive from those the future demand. UDF can forecast this demand for a specific combination of product / location / sales organization / distribution channel / order channel / day for the time period requested. The impact of each factor that adds up to the total forecast can be detailed out (see the Demand Decomposition
section below).
Forecasting Results
Forecasting can generate different time series (see Forecast).
Note
You can also provide the forecast results to an external system (for example, to SAP Forecasting and Replenishment for Retail). The /DMF/UFC_RETRIEVE_RESULTS
function module is available for this purpose. It allows the external system to retrieve the forecast results on demand using a Remote Function Call (RFC). For more information, see the function module documentation (transaction SE37).
UDF supports different time series (such as point-of-sale data, consumption data, or sales orders) as input for modeling. For more information, see the Time Series section in this Help and the Introduction to Demand Data Foundation (DDF)
section of the Administrator's Guide, Demand Data Foundation (DDF) with Unified Demand Forecast (UDF) on SAP HANA
, available at .
Recommendation
You should provide 2 years of demand history to ensure the proper interpretation of seasonality, trend, and other yearly DIFs.
Your historical data must be at daily granularity. Weekly data is currently not supported. For more information, see Customizing (transaction SPRO) under .
You can run UDF in different execution modes, depending on your forecast scenario:
Production mode: This is the default mode, and you can schedule the forecast run. The forecast results are persisted in the database and can be read directly from SAP HANA views or SAP HANA tables.
Diagnostic mode: This mode is for diagnostic evaluations and forecast analyses, such as holdout forecasts. You need to specify a diagnostic ID for each diagnostic forecast that you want to run. You can schedule the forecast run.
What-if forecast: You can trigger the forecast run on demand. The forecast results are provided to the consuming application as requested (such as SAP Promotion Management for Retail). What-if forecasts are frequently used during planning because they allow you to gauge the impact of a particular course of action that may or may not be executed in the future (such as a planned offer).
UDF forecasts demand on the finest granularity (daily). For brick-and-mortar scenarios, this is a single product in a single location. For multichannel scenarios, UDF can additionally forecast by order channel, distribution channel, and sales organization.
You can set UDF to break down the modeled historical demand as well as the forecasted future demand by demand influencing factor (DIF). This demand decomposition allows you to see how much of the total value can be attributed to baseline business and how much is due to specific DIFs. A DIF can have a positive or a negative influence on the demand. Examples include offers, prices, tactics, public holidays, or seasonality.
Decomposition Results
Modeling and forecasting can each generate a dedicated decomposition time series. For more information, see Outbound Time Series.
Caution
The demand decomposition can create a large data set based on your business scope, and the original hardware sizing needs to be taken into account. For more information, see the sizing guidelines for SAP Customer Activity Repository at .
The statistical algorithm behind UDF is a Bayesian regression model that allows configuring both additive and multiplicative DIF effects. UDF can handle missing information through general best guesses (“priors”). When modeling the demand and estimating the best values for the parameters of the demand model, UDF balances priors and historical data:
Little historical data → Parameter estimates closer to priors
Lots of historical data → Parameter estimates closer to data
The parameter estimates are written to the /DMF/UMD_PAR
table.
Hierarchical priors allow you to enhance the modeling of products that have little or no historical sales data or promotional data. Examples are new products, lifecycle products (such as fashion or consumer electronics), and products with DIFs not observed before (such as offers, day-of-week effects, seasonality).
Those products can “inherit” existing modeling results from suitable other products along the hierarchies (product hierarchies, location hierarchies, relationships between generic products and their variants). You can use the Calculate Hierarchical Priors
service in the Schedule Model and Forecast
function for this purpose. For more information about this function, see Schedule Model and Forecast.
Note
You must have completed the initial modeling of your business to be able to use the values of existing products. This means that modeling results must be available for those products.
The calculated hierarchical priors (/DMF/UMD_PRI
table) are used as input for modeling, where they enhance the understanding of demand at a more granular level than the default values (global priors). This in turn improves the basis for forecasting.
To determine from which existing products a new product should best “inherit” the values, UDF considers three types of hierarchical information in the below order. You can customize how each type should be weighted against the other types, allowing you adapt the hierarchical prior generation to your specific hierarchies:
Relationships between generic products and their variants: A product in a specific location inherits values from other products (in the same location) with a relationship to the same generic product. This allows you to better understand DIF effects across the variants of a generic product in a particular location.
Product hierarchy (such as the article hierarchy or merchandise category hierarchy): A product in a specific location inherits values from other products in the same location. This allows you to better understand DIF effects across all products of a hierarchy node for a particular location.
Location hierarchy: A product in a specific location inherits values from the same product in other locations. This allows you to better understand DIF effects across all locations of a hierarchy node for a particular product
Based on the configured weights, the results of the first two steps are combined into one intermediate result. This is then combined with the result of the third step to generate the final hierarchical prior result.
Note
You can configure the generation of hierarchical priors in Customizing under . For more information, see the Customizing activity documentation (transaction SPRO).
For configuration examples, see the long texts of the following data elements:
/DMF/HPR_MAX_PROD_LEVELS
/DMF/HPR_MAX_LOC_LEVELS
/DMF/HPR_WGT_GEN_VAR
You can assign reference products to improve the demand modeling and forecasting of products for which there is little or no historical demand data available (such as new products). To model and forecast on such a new product at a particular location, UDF uses the historical information and prior values from the assigned reference product at the reference location.
You can set up reference product locations either in your SAP ERP system and receive the master data from there. Or you can set them up directly in DDF. For more information, see Maintain Product Locations.
You can create placeholders for products that are still being planned and for which you do not yet have all the information to create them in your SAP ERP system. For example, this is useful during promotion planning or assortment planning.
You create the placeholder product as a temporary product in DDF and assign a reference product to it. You can then model and forecast the demand for the placeholder product with UDF. UDF treats placeholder products the same way as products that you import from or integrate with your SAP ERP system.
To forecast on a specific placeholder product, UDF uses the historical information from the assigned reference product.
Note
If the reference product was previously modeled, the forecast is scaled by the reference factor. You can define this factor in the placeholder master data. For more information, see Placeholder Product.
If the reference product has not been previously modeled or is invalid, the forecast is generated based on the prior values.
More information about placeholder products:
Setup and maintenance: Maintain Placeholder Products
Customizing:
Note
You can use this feature when you create offers in SAP Promotion Management for Retail, one of the consuming applications supported by UDF. For more information, see SAP Help Portal for SAP Promotion Management for Retail at .
You can evaluate forecasts based on a forecast confidence index. The FCI is an indicator of statistical confidence in a particular unit forecast. The FCI is always calculated for a specific product at a specific location, and it is based on the amount of historical information provided to forecast the demand for this product.
Benefits:
FCI ranges for quickly evaluating forecasts:
You can configure what constitutes a high, medium, or low FCI for your business. Based on your settings, the system not only generates the FCI value for a particular forecast but also qualifies this value as high, medium, or low. For more information, see Customizing (transaction SPRO) under .
FCI reasons for analyzing low FCIs:
The system can also estimate which of the DIFs considered for a particular forecast is most determinant in causing a low FCI value. For example, there might be no sales history available for a specific offer combination. This allows you to take corrective measures, for example, by changing the terms of a planned offer. For an overview of the available FCI reasons, see the Low FCI
messages in the /DMF/FC_INFO
message class (transaction SE91).
Customizing for UDF (transaction SPRO): All activities under . For example, you can define settings for modeling and forecasting, configure hierarchical priors, and define FCI categories.
Load balancing for demand modeling and forecasting: Configure Load Balancing
Using UDF: Schedule Model and Forecast
Visualizing and validating forecasts: Validate Forecasts with UDF Launchpad