Overview of generating group level forecasts

You can generate forecasts for base-level items and locations where the scenario values are stored. The CallForecastEngine macro command also allows you to generate forecasts at a higher level of the item or location hierarchy. The forecast results are then spread to the level that stores the scenario values. This is based on the aggregation of scenario (history) values and the spreading of the forecast results, to the level at which the values must be stored.

You can fit a model (select the optimal forecast model, based on the default data source Cycle.Forecast engine settings) for the base-level items and locations. The macro command also allows you to fit a model at a higher level in the item or location hierarchy. The forecast results are spread to the level that must store the scenario values.

The process to generate group forecast is only applicable when you execute the CallForecastEngine command by specifying:

  • An item level that does not match the Cycle.Item level.
  • A location level that does not match the lowest level of the location hierarchy for the Cycle.Module.

Aggregating scenario values

SCP aggregates historical scenario values and spreads the forecast results, when:

  • The [item level] passed to the CallForecastEngine command differs from the Cycle.Item Level, to store the scenario values.
  • The [item level] passed to the CallForecastEngine command is Null ("") and the Forecast Engine.Item Level differs from the Cycle.Item Level.
  • The [location level] passed to the CallForecastEngine command differs from the base-level of the location hierarchy for the associated Cycle Period Module.
  • The [location level] passed to the CallForecastEngine command is Null ("") and Forecast Engine Settings.Location Level, for the associated Cycle Period Module, differs from the base-level of the location hierarchy.
  • The [period level] passed to the CallForecastEngine command differs from the Cycle.Calendar Level to store scenario values.

  • The [period level] passed to the CallForecastEngine is Null ("") and Forecast Engine.Calendar Level differs from the Cycle.Calendar Level.

    If aggregation is required for the item or location dimension, the system aggregates the values for the specified measure in the Forecast Engine.Measure Mapping.History parameter.

You must aggregate the values for the specified measure in the Forecast Engine.Measure Mapping.History parameter, if aggregation is required for the item or location dimension (the format in which a measure or data row is stored). This is applicable for all base-level elements of each selection defined in the CallForecastEngine command.

For example, the Cycle.Item level to store the scenario values is "Products" and the CallForecastEngine("BATS","","","Product Groups","Car","","","Months") macro is used. The history measure for the base-level items, of the 'Car' node to the Product Group level of the Cycle.Item hierarchy, are aggregated to generate a single value for the selected item (Car). The child items for the 'Car' node consists of five elements (1000, 1001, 1002, 1003, and 1004). The values for these five products are aggregated to generate a single value for "Car", for the selected locations (at location level) and period horizon.

To allow aggregation at the dimension level:

  • The base-level values for the Forecast Engine Mask must be null, when generating a forecast for an aggregated item or location group.
  • The Forecast Engine Weighting measure is not item or location specific, therefore the values are not aggregated.
Where aggregation is required for the item or location dimension, you must aggregate the values for the measure specified in Forecast Engine.Measure Mapping.History. This is applicable for all base-level elements under each selection defined in the CallForecastEngine command.
Note: The Forecast Engine inputs for Growth Damping (growthDampingStartPeriod, growthDampingEndPeriod, growthDampingFactor and gdfZeroAfterDamping) do not use the base-level values, when generating forecasts for an aggregated item or location group. The values are passed as 0 (no growth damping) for all periods.

Spreading the forecast results

The spreading method is based on the Spreading Measure for period constant results forecast engine parameter, if the Spreading Measure for time-phased results parameter is not defined.

For the item selection, the values are prorated (spread) to the item level using proportions based on the values defined for Spreading Measure for period constant results parameter.

For the location selection, the values are prorated to the base-level of the location hierarchy using proportions based on the values defined for Spreading Measure for period constant results parameter. The forecast engine uses the spreading values from the base-level children, irrespective of the number of levels that exist between the selected location level and the base-level of the location hierarchy for the current cycle period module.

For example, the TUPLE_EXISTS parameter specifies the item and location spreading factors, and also the valid item and location combination.

The spreading factor is based on the value of the PCONST for each base-level child of the selected item and location divided by the PCONST value for the item and location combination with a forecast value to be prorated.

For example, call the forecast engine to generate the forecasts for the aggregated item node, Car, with five base-level elements containing a value (1000, 1001, 1002, 1003 and 1004) for the specified spreading measure. The spreading factor for the item, 1000 and location, CONTINENTAL = (value of TUPLE_EXISTS for (1000, "CONTINENTAL", "PCONST")) / (value of TUPLE_EXISTS for "Car", "CONTINENTAL", "PCONST")).
Note: 
  • The measure value for the aggregate node must be derived from the measure values of the base-level items.
  • Proration of aggregate item or location is completed prior to period spreading. The spreading of results to base period is done using the Cycle period spread measure.