Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member751461
Participant
Welcome to Part 2 of our Best Practices for Predictive Planning blog series. In Part 1 of the series, we explore our general tips and tricks for getting started with Predictive Planning in SAP Analytics Cloud. In this blog, we’ll cover advanced techniques that will help you make the most out of your Predictive Planning experience in SAP Analytics Cloud.  Let’s dive right in!

Table of Contents



Prepare: Using Entities


Dimensions and their attributes can be used for the entity definition of a predictive forecast. When these forecasts are saved, they are stored on the leaf level of the planning model. This means:

  • For dimensions that are part of the entity definition, the forecast is written to the respective dimension member.

  • For dimensions that are NOT part of the entity definition, the forecast is written to the unassigned (#) member of that dimension. This means there are no other members to which the forecast value could be assigned, thus Unassigned (#) is the right option. Planners can also use the planning panel or allocation processes to spread the forecast to other "real" members of the dimension, as explained in the video below:


https://www.youtube.com/watch?v=AKc9Nl1ORvA&t=1s

  • If a dimension attribute is used as part of the entity definition, then the time-series will be aggregated along that dimension. When forecasts are saved, their storage occurs on the leaf (=member) level of the respective dimension. This implies that the forecast value on the attribute level needs to be spread to the members according to the rules outlined in this document. When forecasts are being written to a blank private version, forecasts will be spread equally to all members sharing the same attribute value. In parallel, you can actively influence the disaggregation result by preparing the private version with relevant disaggregation weights.


To learn more, please watch the following tutorials that will break down best practices for using entities in your predictive scenarios.

  • Watch this video to better understand unused dimensions (i.e. saving to the unassigned member of a dimension).

  • Watch this video to understand the default disaggregation of forecasts when using dimension attributes as part of the entity definition and assuming your target planning version is empty.

  • Watch this video to learn how to influence the default disaggregation behavior when using dimension attributes by preparing the private versions with appropriate weights.


Note: A maximum of five dimensions and attributes can be used as part of the entity definition.

Predict: Comparing Forecast Quality of Different Entity Choices


Another aspect of using entities in your predictive model is that there are different ways you can generate the forecast. You’ll want to pick the best method by comparing the forecast quality for each. Here are the different methods that you can choose from:

  • The simplest way is to just look at the average HW-MAPE of the different entity definitions.





  • Alternatively, you might want to inspect the distribution of W-MAPEs of the entities and see which entity definition led to the lowest number of entities with bad individual HW-MAPE. In the case below, defining the entity on the "BRAND" level rather than on the "COUNTRY" level leads to a better mean MAPE (8.8% vs. 12.48%). Additionally, the individual HW-MAPEs of the entities are always <12% for the entity based on the "BRAND" whereas there are 3 entities with >12% HW-MAPE when the entity is based on "COUNTRY."





  • Finally, you can go beyond HW-MAPE and apply custom metrics like mean absolute error or mean percentage error by looking at model performance when comparing past actuals and past forecasts.


To learn more about this topic, watch the video below:

https://www.youtube.com/watch?v=0kPNYQWSsZQ

Review: Comparing Actuals and Predictions


When customers evaluate Predictive Planning for the first time, a natural approach is to jump back in time and compare known actuals and past predictions. To efficiently execute this comparison, follow one of the solutions below:

  • Virtual columns can be added to a planning grid for ad-hoc calculations, for example, in-cell charts.

  • Combine cross-calculations of type restricted measure and calculated measures. This same calculation can be added to the model on a story level.

  • The restricted measure "actual value" looks up the actual account value by restricting the Actuals version of the model

  • The restricted measure "predicted value" looks up the predicted value by restricting the private version into which the predictions were saved

  • The calculated measure "absolute difference" would just compute actual value - predicted value

  • The calculated measure "relative difference" would compute (actual value - predicted value)/actual value. Note: If you have several private versions for several parameter settings of the predictive model, you can use an input-control in b) for that restriction and dynamically switch the calculation between those private versions.

  • Finally, you can add additional accounts to the planning model, which performs a similar lookup and calculation through formulas on a model-level.


Refer to the video below to see these different approaches in action:

https://www.youtube.com/watch?v=Hx9md9YXkxk&t=1s

Apply: Allocating Predictive Forecasts


As discussed above, for dimensions that aren’t part of the entity definition, the forecast is written to the unassigned (#) member of that dimension. We can use standard planning functionality to spread the forecasts to the other "real" members of that same dimension.
To achieve this, follow the steps below:

  • Have a dimension that serves as "driver", meaning that its distribution of values determines how the value in question shall be spread. Follow the tutorial below:


https://www.youtube.com/watch?v=AKc9Nl1ORvA&t=1s

  • Define an allocation process in SAP Analytics Cloud to specify the relationship between the source, driver, and target and the level at which the distribution is calculated.

  • Call the allocation process either by embedding the process into a data action (that is then triggered manually by a story's user) or to invoke the allocation process directly from within a story.


Apply: Influencing Disaggregation of Forecasts


In the section Prepare: Using Entities, we discussed how entities can be defined by dimensions and dimension attributes. In the latter case, the forecast values are automatically disaggregated and written to the leaves that share the same attribute value. To learn more about the logic of disaggregation click here.

In the case where forecasts are written to a blank private version, forecasts are spread equally to all members sharing the same attribute value. However, you can actively influence the disaggregation result by preparing the private version with relevant disaggregation weights.

For an in-depth tutorial on how to disaggregate forecasts when your entity is defined by a dimension attribute, watch the video below:

https://www.youtube.com/watch?v=MHRLY7K-XWM

Apply: How to use influencers


To find predictive forecasts, SAP Predictive Planning analyzes from the planning model the evolution over time of the measure to be predicted. Other variables can be recorded over time with this measure. This constitutes a context which can improve the accuracy of the predictive forecasts. Today, SAP Predictive Planning does not allow to take into account such context. The objective of this blog is to explain how to use a context to try to influence the quality of the predictive forecasts and save them into a planning story.
2 Comments