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.
UDF requires the Demand Data Foundation (DDF) module in SAP Customer Activity Repository. For installation and implementation information, see SAP Note 2088924 as well as the documentation under .
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.
Customizing for UDF (transaction SPRO): All activities under
. For example, you can define settings for modeling and forecasting, configure hierarchical priors, or define FCI categories.UDF operates in two main steps, namely demand modeling and demand forecasting.
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, public holidays, seasonality, 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”).
Tracing: If you want to trace the changes during preprocessing, you can set this up in Customizing under /DMF/UMD_TS
), which includes the traced changes. For more information, see the Customizing activity documentation.
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 generates different time series (see Model) as well as parameter estimates (table /DMF/UMD_PAR
; for technical details, see the Algorithm
section below).
Note
Modeling is a prerequisite for 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.
Using the results from 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 influencing factor that adds up to the total forecast can be detailed out (see the Demand Decomposition
section below).
Forecast tracing: You can trace the factors that have influenced the generated forecasts. This gives you a better understanding of the forecast values and allows you to do forecast analyses at the level of individual product locations.
Use cases:
Evaluate the impact of planned future prices and offers.
See the prices based on which the forecasts have been generated.
See why a particular forecast was set to zero (for example, because the location is closed on that day or the product is not listed).
Visualize detailed forecast information in the Analyze Forecast
SAP Fiori app (see Analyze Forecast).
Forecast tracing is available for all supported time series sources (see Time Series).
You can activate forecast tracing in Customizing under
. For more information, see the Customizing activity documentation (transaction SPRO).You can find the tracing results in table /DMF/UFC_TRC
.
Forecast results: Forecasting can generate different time series (see Forecast).
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).
Recommendation
You can check the status of your modeling and forecasting jobs using the /DMF/MOD_STATUS_REP
report (transaction SE38). For more information, see the report documentation.
Depending on your forecast scenario, you can run UDF in different execution modes:
Note
To run UDF, you use the Schedule Model and Forecast
function. To access this function on the SAP Easy Access screen (transaction nwbc), choose . For more information, see Schedule Model and Forecast.
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 supports different time series sources (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 SAP Customer Activity Repository
section of the Common Master Guide
under .
Length of the demand history:
In general, we recommend that you provide two years of demand history for modeling. This ensures the proper interpretation of seasonality, trend, and other yearly demand influencing factors.
Optionally, and depending on how much historical data you have available, you can also limit the length of the history taken into modeling. For one, this allows you to improve run times by limiting the amount of input data. Additionally, you can ensure that modeling (or the understanding of history) runs only on data that is still relevant for your forecast scenario. You can specify the number of history days in Customizing under
.Granularity: Your historical data must be at daily granularity. Weekly data is currently not supported. For more information, see Customizing under
.By default, UDF forecasts consumer 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.
Depending on your business scenario, you can additionally generate intraday demand forecasts for your products. To do this, you use the functionality of UDF together with that of On-Shelf Availability (OSA). For more information, see Generate Intraday Forecasts.
You can set UDF to break down the modeled historical demand and 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.
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
.Modeling and forecasting can each generate a decomposition time series. For more information, see Outbound Time Series.
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”). During modeling, UDF estimates the best values for the parameters of the demand model by balancing 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 and serve as the basis for forecasting.
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, life cycle 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.
Note
As a prerequisite, you must have completed the initial modeling of your business to be able to use the modeling results of existing products.
The calculated hierarchical priors (table /DMF/UMD_PRI
) 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.
You can configure the generation of hierarchical priors in Customizing under
. For more information, see the Customizing activity documentation.UDF considers different types of hierarchical information to determine from which existing products a new product should best “inherit” the values. You can customize how each type should be weighted against the other types, which allows you to adapt the generation of hierarchical priors to your own hierarchies. The following types are considered:
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
Results: 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 result.
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 creating offers in SAP Promotion Management for Retail, one of the consuming applications supported by SAP Customer Activity Repository. For more information, see
.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).
Visualizing forecasts:
Analyze Forecast (SAP Fiori app)
Validate Forecasts with UDF Launchpad (optional tool, no product support, user interface only available in English)
Load balancing for modeling and forecasting: Configure Load Balancing