This appendix describes how to configure the Forecast150 procedure that generates the forecast and estimates the promotion effects.
Previously RDF used only the Forecast procedure to generate both the forecast and to estimate the promotion effects. Now the Forecast procedure is divided into two procedures:
Forecast150 procedure — generates the forecast for all forecast methods
CausalEstimate procedure — calculates the promotion effects at both final or source level.
The Forecast150 Procedure Syntax section contains the specifications and syntax for configuring the Forecast150 procedure.
The following sections detail the Forecast150 procedure for generating the forecast for all forecast methods.
The following libraries must be registered in any domains that will use the Forecast150 solution extension:
AppFunctions
RdfFunctions
The following models require that the stated measure is to be provided.
Bayesian model — Plan measure required
Profile model — Profile measure required
Causal Model — The estimated promotion effects and causal baseline
The following notes are intended to serve as a guide for configuring the Forecast150 procedure within the RPAS Configuration Tools:
Note: The forecast output from the Forecast150 clears out the elapsed weeks results. In other words, after running this special expression, the forecast measure is only populated for the periods from forecast start to forecast end date. You must customize the RPAS rule to save the forecast value. |
Refer to the appropriate input parameters and output measures when using the Forecast150 procedure.
The resultant measure (frcstout) should be at the same intersection as your history measure (pos). This will be the base intersection of the final level.
The Forecast150 procedure is a multi-result procedure, meaning that it can return multiple results with one procedure call within a rule. In order to get multiple results, the resultant measures must be configured in the Measure Tool and the specific measure label must be used on the left-hand-side (LHS) of the procedure call. The resultant measure parameters must be comma-separated in the procedural call.
The startdatemeas that specifies the forecast start date needs to be periodically updated (every week or so) by configuring rules.
The forecast methods are specified using the mask measure. This is an int measure. Refer to Table K-3, "Forecast Method/Mode List" for the expected values of this measure for each forecast method.
The syntax for using the Forecast150 procedure is shown in Example K-1.
Example K-1 Generic Example
FORECAST: FORMEAS [, INT: INTMEAS, CUMINT:CUMINTMEAS, PEAKS:PEAKSMEAS, CHMETHOD:METHMEAS, CHLEVEL:LVLMEAS, CHTREND:TRENDMEAS, ALERTS:ALERTSMEAS] <-FORECAST(MASK:MEASKMEAS, FORCSTSTART:STARTDATE, FORECASTLENGTH:FORECASTLENGTH, HISTORY:HISTORYMEAS, PERIOD:PERIOD [ [,{PROMO_0:PROMO0,PROMOEFF_0:PROMOEFF0,PROMOEFFTYPE_0:PROMOEFFTYPE0, } … {,PROMO_N:PROMON,PROMOEFF_N:PROMOEFFN,PROMOEFFTYPE_N:PROMOEFFTYPE_N, PROMOEFFTYPE_N: PROMOEFFTYPEN, } POVLPEFF:OVERLAPEFFS,POVLPCOM:OVERLAPCOMBIN, PROMOOVERLAPMTHD:OVERLAPMETHOD,PROMOPVALUE:OVERLAPPVALUE,PEFFMETHOD:PROMOEFFMETHOD], HISTSTART: HISTSTARTMEAS,MINWINTERS:MINWINTERSMEAS, MINHOLT: MINHOLTMEAS, MINCROSTON:MINCROSTON, MAXALPHA:MAXALPHA, MAXWINTERSALPHA:MAXWINALPHA, MAXPROFILEALPHA:MAXPROFILEALPHA, BAYESALPHA:BAYESALPHA, TRENDDAMP:TRENDDAMP, {VALID_DD:VALID_DD, DDPROFILE:DDPROFILE }, PLAN:PLAN, PROFILE:PROFILE, AGGPROFILE:AGGPROF, SPREADPROFILE:SPREADPROF, BAYESIAN_HORIZ,BAYESIAN_HORIZ, CAPS:CAPSMEAS, CAPRATIOS:CAPRATIOSMEAS, USECAPPING:USECAPPING, MINCAPHIST:MINCAPHIST, PLANINT:PLANINTMEAS, PLANCUMINT:PLANCUMINTMEAS, CAPINTERVALS:CAPINTERVALS]
The Table K-1, "Input Parameters for the Forecast150 Procedure" and Table K-2, "Output Parameters for the Forecast 150 Procedure" explain the specific usage of the parameters names used in the procedure. Table K-3, "Forecast Method/Mode List" provides the expected values of the mask measure for each forecast method.
Table K-1 Input Parameters for the Forecast150 Procedure
Parameter Name | Description |
---|---|
aggprofile |
The celendar aggregation profile. Data Type: real Multiple Allowed: No Required: No |
baycapratio |
The Bayesian Cap Ratio Data Type: Real Multiple Allowed: No Required: No |
bayesalpha |
The maximum Bayesian alpha value. Data Type: Real Multiple Allowed: No Required: No |
bayesian_horiz |
The horizon to which the Bayesian adjust is applied. Data Type: Integer Multiple Allowed: No Required: No |
capintervals |
Indicator whether cap the interval Data Type: Real Multiple Allowed: No Required: No |
capratios |
Cap ratio for each time series. Data Type: Boolean Multiple Allowed: No Required: No |
caps |
Caps for each time series. Data Type: Real Multiple Allowed: No Required: No |
causalextbaseline |
Baseline for Causal Forecast Data Type: Real Multiple Allowed: No Required: No |
ddprofile |
De-seasonalized demand measure used only for profile-based forecasting. Data Type: Real Multiple Allowed: No Required: No |
extraweekmth |
Extra Week Process Method Data Type: Integer Multiple Allowed: No Required: No |
extraweeksrc |
Extra Week Data Source Data Type: Boolean Multiple Allowed: No Required: No |
fallbackmth |
Fall Back Forecast Method Data Type: Integer Multiple Allowed: No Required: No |
forecastlength |
The length of the forecast. Data Type: Integer Multiple Allowed: No Required: Yes |
frcststart |
The forecast start date. Data Type: Datetime or String Multiple Allowed: No Required: No |
history |
The input measure the forecast is based on. Data Type: Real Multiple Allowed: No Required: Yes |
histstart |
The historical start date Index. Data Type: Integer Multiple Allowed: No Required: No |
intcapratiolower |
Lower Interval Cap Ratio Data Type: Real Multiple Allowed: No Required: Yes |
intcapratioupper |
Upper Interval Cap Ratio Data Type: Real Multiple Allowed: No Required: Yes |
mask |
Array that identifies what forecast method is used for each time series. Refer to Table K-4, "Numeric Values Assigned to the Forecast Model/Model List". Data Type: Integer Multiple Allowed: No Required: Yes |
maxalpha |
The maximum alpha value. Data Type: Real Multiple Allowed: No Required: No |
maxholtgamma |
The maximum gamma value for Holt Method. Data Type: Real Multiple Allowed: No Required: No |
maxprofilealha |
The maximum Alpha value for Profile Method. Data Type: Real Multiple Allowed: No Required: No |
maxwintersalpha |
The maximum Alpha value for Winter Method. Data Type: Real Multiple Allowed: No Required: No |
maxwintersgamma |
The maximum Gamma value for Winter Method. Data Type: Real Multiple Allowed: No Required: No |
mincaphist |
The minimum number of weeks before capping can be used. Data Type: Real Multiple Allowed: No Required: No |
mincroston |
The minimum Croston history. Data Type: Integer Multiple Allowed: No Required: No |
minholt |
The minimum Holt history. Data Type: Integer Multiple Allowed: No Required: No |
minwinters |
The minimum Winters history. Data Type: Integer Multiple Allowed: No Required: No |
movingaveragewindowlength |
The moving average window of Average method. Data Type: Integer Multiple Allowed: No Required: No |
peffmethod |
The promotion effect method Data Type: Integer Multiple Allowed: No Required: No |
period |
The forecasting period for calculating seasonal coefficients. Data Type: Integer Multiple Allowed: No Required: Yes |
plan |
The Plan measure. This measure's intersection may not be higher than the intersection of a corresponding forecast source level. Data Type: Real Multiple Allowed: No Required: No |
plancumint |
The cumulative Interval of the plan associated with the plan (PARAMETER forecast); Bayesian only. Data Type: Real Multiple Allowed: No Required: No |
planint |
The interval of the plan associated with the plan (PARAMETER forecast); Bayesian only. Data Type: Real Multiple Allowed: No Required: No |
povlpcom |
The overlapping promotion combination Data Type: String Multiple Allowed: No Required: No |
povlpeff |
The overlapping promotion combined effects Data Type: Real Multiple Allowed: No Required: No |
profile |
The Seasonal Profile measure. Data Type: Real Multiple Allowed: No Required: No |
promo_ |
The Promo variable measure (one for each promotion). Data Type: Integer Multiple Allowed: Yes Required: No |
promoeff_ |
The calculated promotional effects (one per promotion). Data Type: Real Multiple Allowed: Yes Required: No |
promoefftype_ |
The calculated promotional effects type (Linear or Exponential) Data Type: Integer Multiple Allowed: Yes Required: No |
promooverlapmthd |
The overlapping promotion method Data Type: Integer Multiple Allowed: No Required: No |
promopvalue |
The overlapping adjust factor Data Type: Real Multiple Allowed: No Required: No |
seasonalindexsmooth |
Seasonal Index Smooth factor in AWinter Data Type: Real Multiple Allowed: No Required: No |
spreadprofile |
The profile to spread to final forecast level. Data Type: Real Multiple Allowed: No Required: No |
trenddamp |
The trend damping parameter. Data Type: Real Multiple Allowed: No Required: No |
usecapping |
A Boolean measure that indicates whether capping is applied. Data Type: Boolean Multiple Allowed: No Required: No |
valid_dd |
The maximum non-zero history to use de-seasonalized demand value for seasonal profile based forecasting. Data Type: Integer Multiple Allowed: No Required: No |
wintersmode |
Winter Mode Data Type: Integer Multiple Allowed: No Required: No |
Table K-2 Output Parameters for the Forecast 150 Procedure
Parameter Name | Description |
---|---|
forecast |
Forecast output. Data Type: Real Multiple Allowed: No Required: Yes |
ape |
Forecast APE output. Data Type: Real Multiple Allowed: No Required: Yes |
std |
Forecast STD output. Data Type: Real Multiple Allowed: No Required: Yes |
peaks |
Peaks, which are used for calculating baseline of the forecast. Data Type: Real Multiple Allowed: No Required: No |
chmethod |
Selected method. Refer to Table K-4, "Numeric Values Assigned to the Forecast Model/Model List". Data Type: Integer Multiple Allowed: No Required: No |
chlevel |
ES level. Data Type: Integer Multiple Allowed: No Required: No |
chtrend |
ES trend. Data Type: Real Multiple Allowed: No Required: No |
chalpha |
ES alpha. Data Type: Real Multiple Allowed: No Required: No |
chgamma |
ES Gamma. Data Type: Real Multiple Allowed: No Required: No |
alerts |
A high-level forecast alert generated by the forecast engine. Data Type: Boolean Multiple Allowed: No Required: No |
povlpflag |
The overlapping indicator in Forecast Data Type: Boolean Multiple Allowed: No Required: No |
Table K-3 Forecast Method/Mode List
Model | Numeric Value |
---|---|
AUTO ES |
1 |
SIMPLE |
2 |
HOLT |
3 |
WINTERS |
4 |
CASUAL |
5 |
AVERAGE |
6 |
NO FORECAST |
7 |
COPY |
8 |
CROSTON |
9 |
M. WINTERS |
10 |
A. WINTERS |
11 |
SIMPLE CROSTON |
12 |
BAYESIAN |
13 |
LOADPLAN |
14 |
PROFILE |
15 |
MOVING AVERAGE |
17 |
COMPONENTS |
19 |
Table K-4 provides the numeric value assigned to the forecast model/model list.
The following sections detail the CausalEstimate procedure which estimates the promotion effects at both final level and source level. The final level is usually item/store/calendar, the source level is higher than the final level. While estimate the promotion effects at source level, RDF pools all the data points at the final level, then estimate the promotion effects.
The syntax for using the CausalEstimation procedure is shown in Example K-2.
Example K-2 CausalEstimation Procedure Syntax
POVLPCOM:POVLPCOM,POVLPEFF:POVLPEFF,PEFFMETHUSED:PEFFMETHUSED,PROMOEFF_0:PROMOEFF_0,{PROMOEFF_N:PROMOEFF_N},APE:APE,STD:STD<-CausalEstsimation(HISTORY:HISTORY,HISTSTART:HISTSTART,HISTEND:HISTEND,MASK:MASK,POOLINGELIGIBLEMASK:POOLINGELIGIBLEMASK,MAXB:MAXB,MINB:MINB,KEEPCLAMPEDMAXB:KEEPCLAMPEDMAXB,AGGPROF:AGGPROF,PROMOOVERLAPMTHD:PROMOOVERLAPMTHD,ITEMGROUP:ITEMGROUP,NUMOFEXTRAPOINTS:NUMOFEXTRAPOINTS,CAUSALDATASRCTHR:CAUSALDATASRCTHR,PROMO_0:PROMO_0,PROMOTYPE_0:PROMOTYPE_0,PROMOEFFTYPE_0:PROMOEFFTYPE_0,PROMONEG_0:PROMONEG_0,PROMOOVER_0:PROMOOVER_0,{PROMO_N:PROMO_N,PROMOTYPE_N:PROMOTYPE_N,PROMOEFFTYPE_N:PROMOEFFTYPE_N,PROMONEG_N:PROMONEG_N,PROMOOVER_N:PROMOOVER_N})
The Table K-5, "Input Parameters for CausalEstimation" and Table K-6, "Output Parameters for CausalEstimation" explain the specific usage of the parameters names used in the CausalEstimation procedure.
Table K-5 Input Parameters for CausalEstimation
Parameter Name | Description |
---|---|
history |
The input measure the forecast is based on. Data Type: Real Multiple Allowed: No Required: Yes |
histstart |
The historical start date. Data Type: DateTime Multiple Allowed: No Required: Yes |
histend |
The historical enddate. Data Type: DateTime Multiple Allowed: No Required: Yes |
mask |
Run Mask Indicator Data Type: Boolean Multiple Allowed: No Required: Yes |
poolingeligiblemask |
If item/store eligible mask for pooling Data Type: Boolean Multiple Allowed: No Required: Yes |
maxb |
The maximum ratio between beta and baseline. Data Type: Real Multiple Allowed: No Required: No |
minb |
The minimum ratio between beta and baseline. Data Type: Real Multiple Allowed: No Required: No |
keepclampedmaxb |
Determines whether variables exceeding minb are clamped or values are dropped and regression is re-run. Data Type: Real Multiple Allowed: No Required: No |
aggprof |
Aggregation profile from the low calendar to higher lelvel. Data Type: Real Multiple Allowed: No Required: No |
promooverlapmthd |
The Promotion Overlapping method to deal with overlapping promotion. Data Type: Integer Multiple Allowed: No Required: No |
itemgroup |
The item/store to group mapping Data Type: boolean Multiple Allowed: No Required: No |
numofextrapoints |
The number of extra data points before/after promotion periods Data Type: Integer Multiple Allowed: No Required: No |
causaldatasrcthr |
The data dales value threshold for promotion variabble. Data Type: Real Multiple Allowed: No Required: No |
promo_ |
The Promo variable measure (one for each promotion). Data Type: Integer Multiple Allowed: Yes Required: No |
promotype_ |
The promo type measure (one for each promotion). Data Type: Integer Multiple Allowed: Yes Required: No |
promoefftype_ |
The calculated promotional effects type (Linear or Exponential) Data Type: Integer Multiple Allowed: Yes Required: No |
promoneg_ |
The indicator whether the negative promo effects allow. Data Type: Boolean Multiple Allowed: Yes Required: No |
promoover_ |
The promo effect override measure (one for each promotion). Data Type: Boolean Multiple Allowed: Yes Required: No |
Table K-6 Output Parameters for CausalEstimation
Parameter Name | Description |
---|---|
povlpcom |
The overlapping promotion combination Data Type: String Multiple Allowed: No Required: No |
povlpeff |
The overlapping promotion combined effects Data Type: Real Multiple Allowed: No Required: No |
peffmethused |
The promotion effect method Data Type: Integer Multiple Allowed: No Required: No |
promoeff_ |
The calculated promotional effects (one per promotion). Data Type: Real Multiple Allowed: Yes Required: No |
ape |
Forecast APE output. Data Type: Real Multiple Allowed: No Required: Yes |
std |
Forecast STD output. Data Type: Real Multiple Allowed: No Required: Yes |