Mirko Link

Mirko Link

Mirko is a Product Manager for SAP Analytics Cloud based in Walldorf. With his background in Analytics consulting, he is passionate about customer success and helping organizations take full advantage of their data. When not building the next-generation Analytics platform, Mirko is on a long-distance hiking trail somewhere in Europe or spending time with his friends & family.

Keep in touch

Subscribe for the latest news, updates, tips and more delivered right to your inbox.

Subscribe to updates



Connect with us

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:

  • 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 HW-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:


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:


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:

  • 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:


Discover General Tips and Tricks for Predictive Planning

If you haven’t already, check out Part 1 of this blog series to explore our top tips and tricks when getting started with Predictive Planning in SAP Analytics Cloud.


Sign up for your free 90-day SAP Analytics Cloud trial and try out these Predictive features first-hand, today.

SAP Analytics Cloud earns a top ranking from BARC

See how SAP Analytics Cloud performed in the world’s largest survey of Business Intelligence software users.