Execute Phase
In the execution phase, outliers are identified by creating confidence intervals.
The confidence intervals are extracted from the model trained in the training phase (with exogenous features if present). They are obtained through a linear time function applied to the standard deviation of the errors that the model encountered during the train phase.
The point to be tested (ACTUAL) is compared with this confidence range, if it falls within its bands, it is an inlier, otherwise it is an outlier. This lets us identify as inliers the points in line with the expected prediction. The user is free to set the confidence level he wants.
The probability of being an outlier is calculated by re-proportioning the percentile of the test point with respect to a standard normal distribution with a mean equal to the exacted predicted value and a standard deviation equal to the historical standard deviation of the errors. The re-proportioning is carried out in a non-linear way: the probability values approach 0 more quickly the closer the point is to the center of the distribution.
The contribution values of each external feature to the prediction are calculated considering as base value the value of the prediction without external features. In this way, the contribution consists of the amount of probability that a certain variable brings to the prediction compared to the case without external features.
Appendix 1: Input and Output Data Sets¶
Data Set for the Train Phase:
- one input data set
Data Sets for the Execute Phase: - one input data set - two output data sets
An array can define some fields, meaning more data set columns can be associated with the field.
An array is defined as a set of fields that form my dimensional or temporal key.
The keys must be the same (with the fields in the same order) for all the data sets.
Appendix 1.1: Input Train Data Set¶
This data set contains historical data for each combination of dimensions, including three (3) fixed fields and two (2) arrays. You need to identify the time ID and time series dimensional key:
- ACC_TO_PREDICT: the target variable to be analyzed in terms of outlierness.
This field contains an “X” for all the historical series you have to predict (text)
- REF_DATE_1: the first field that identifies the time of the row data (text/number)
- REF_DATE_2: the second field that identifies the time of the row data (text/number)
- AMOUNT: the amount for the selected dimensions (number)
- DIMENSION_1: the first field that identifies a dimension (text/number)
- DIMENSION_2: the second field that identifies a dimension (text/number)
- MEASURE: this is the account of the historical series (it includes the target variable and the external and optional variables)(text)
REF_DATE and DIMENSION columns can be a variable number according to the context.
For example:
| ACC_TO_PREDICT | REF_DATE_1 | REF_DATE_2 | AMOUNT | DIM_1 | DIM_2 | MEASURE |
|---|---|---|---|---|---|---|
| X | 2025_ACTUAL | 1 | 8510 | EN_00 | C1 | VOLUME |
| X | 2025_ACTUAL | 1 | 9892 | EN_00 | C2 | VOLUME |
| X | 2025_ACTUAL | 2 | 9979 | EN_00 | C3 | VOLUME |
| 2025_ACTUAL | 1 | 0.098 | EN_00 | C1 | DISCOUNT | |
| 2025_ACTUAL | 1 | 0.082 | EN_00 | C2 | DISCOUNT | |
| 2025_ACTUAL | 2 | 0.100 | EN_00 | C3 | DISCOUNT |
In the example above:
- REF_DATE_1 represents the scenario dimension
- REF_DATE_2 represents the period dimension
- DIM_1 represents the entity dimension
- DIM_2 represents the channel dimension
Appendix 1.2: Input Execute Data Set¶
This data set contains the data to be predicted that includes three (3) fixed fields and two (2) arrays. You need to identify the time ID and the time series dimensional key:
- ACC_TO_PREDICT: the target variable to be analyzed in terms of outlierness. This field contains an “X” for all the historical series you have to predict (text)
- REF_DATE_1: the first field that identifies the time of the row data (text/number)
- REF_DATE_2: the second field that identifies the time of the row data (text/number)
- AMOUNT: the amount for the selected dimensions (number)
- DIMENSION_1: the first field that identifies a dimension (text/number)
- DIMENSION_2: the second field that identifies a dimension (text/number)
- DIMENSION_3: the third field that identifies a dimension (text/number)
- MEASURE: this is the account of the historical series (text)
For example:
| ACC_TO_PREDICT | REF_DATE_1 | REF_DATE_2 | AMOUNT | DIM_1 | DIM_2 | MEASURE |
|---|---|---|---|---|---|---|
| X | 2025_ACTUAL | 12 | 8510 | EN_00 | C1 | VOLUME |
| X | 2025_ACTUAL | 12 | 9892 | EN_00 | C2 | VOLUME |
| X | 2025_ACTUAL | 12 | 9979 | EN_00 | C3 | VOLUME |
| 2025_ACTUAL | 12 | 0.098 | EN_00 | C1 | DISCOUNT | |
| 2025_ACTUAL | 12 | 0.082 | EN_00 | C2 | DISCOUNT | |
| 2025_ACTUAL | 12 | 0.100 | EN_00 | C3 | DISCOUNT |
Appendix 1.3: Output Execute Data Set for Outlier Detection¶
This data set contains the predicted value and the confidence interval for each target variable, including seven (7) fixed fields and additional fields for the two (2) arrays. You need to identify the time ID and the time series dimensional key:
- DIMENSION_1: the first field that identifies the time series (text/number)
- DIMENSION_2: the second field that identifies the time series (text/number)
- DIMENSION_3: the second field that identifies the time series (text/number)
- REF_DATE_1: the first field that identifies the time ID of the historical series (text/number)
- REF_DATE_2: the second field that identifies the time ID of the historical series (text/number)
- TARGET: this is the account of the target historical series (text)
- LOW: this is the lowest bound of the confidence interval (number)
- HIGH: this is the higher bound of the confidence interval (number)
- LOW2: this is the lowest bound of the confidence interval considering the external variables (number)
- HIGH2: this is the higher bound of the confidence interval considering the external variables (number)
- IS_OUTLIER_PRED: the prediction of being an outlier (1) or not (0) (binary)
- IS_OUTLIER_PRED_PROBA: the probability of being an outlier (number)
For example:
| HIGH | HIGH_2 | IS_OUTLIER_PRED | IS_OUTLIER_ PRED_PROBA | TARGET | LOW | LOW_2 |
|---|---|---|---|---|---|---|
| 11,596.158 | 11,038.75 | 0 | 0.381 | VOLUME | 6,567.920 | 9,384.999 |
| 10,211.06 | 11,645.83 | 0 | 0.383 | VOLUME | 6,830.001 | 7,223.23 |
| 9,994.04 | 12,102.696 | 1 | 0.902 | VOLUME | 7,001.222 | 7,933.23 |
| 11,596.158 | 11,038.75 | 0 | 0.381 | VOLUME | 6,567.920 | 9,384.999 |
Appendix 1.4: Output Execute Data Set for Contribution¶
This data set contains the contribution of the data classified as outlier and includes two (2) fixed field and three (3) arrays. You need to identify the time ID and the time series dimensional key:
- CONTRIBUTE: the contribution (number)
- REF_DATE_1: the first field that identifies the time of the row data (text/number)
- REF_DATE_2: the second field that identifies the time of the row data (text/number)
- DIMENSION_1: the first field that identifies the dimension (text/number)
- DIMENSION_2: the second field that identifies the dimension (text/number)
- TARGET: target variable (text) to which the contribution refers
- VAR: external feature to which the contribution refers (text)
For example, with “Step between periods” = 2:
| CONTRIBUTE | TARGET | DIM_1 | REF_DATE_1 | REF_DATE_2 | DIM_2 | VAR |
|---|---|---|---|---|---|---|
| 0.320466298 | VOLUME | EN_00 | 2025_ACTUAL | 1 | C1 | SALES_ST |
| 0.597585804 | VOLUME | EN_00 | 2025_ACTUAL | 2 | C1 | SALES_ST |
| 0.152630153 | VOLUME | EN_00 | 2025_ACTUAL | 3 | C1 | SALES_ST |
| 0.162333094 | VOLUME | EN_00 | 2025_ACTUAL | 4 | C1 | DISCOUNT |
| 0.078367095 | VOLUME | EN_00 | 2025_ACTUAL | 5 | C1 | DISCOUNT |
| 0.464040635 | VOLUME | EN_00 | 2025_ACTUAL | 6 | C1 | DISCOUNT |
Appendix 2: Dimensions and Reference Date¶
DIMENSIONS LIST: if you need multiple dimensions to identify the time series key (e.g., ENTITY, CHANNEL, PRODUCT), you can directly map the fields in the configuration window.
REF_DATE: if you need multiple dimensions to identify the time ID of the historical series (e.g., SCENARIO, PERIOD), you can directly map the fields in the configuration window.
For example:

Appendix 3: Parameters¶
The parameters to set for the Train phase include the following:
-
LOG LEVEl:
-
DEBUG (all information logged)
- INFO (all warnings, errors, critical errors, and general information logged without debug information)
- WARNING (all warnings, errors, and critical errors logged)
- ERROR (all errors and critical errors logged)
-
CRITICAL (only critical errors logged)
Logging messages that are less severe than the level specified for the parameters are ignored; logging messages with a severity level or higher are emitted. - TARGET_VARIABLE_SEASONALITY:
By default, it is set to AUTO: the ML model automatically detects the number of shifts needed to identify seasonality.
Alternatively, a positive integer can be entered to specify how many shifts should be applied and, consequently, how many lags to consider.
For example: If the value is set to 2, it means that 2 lags will be created — that is, the time series will be shifted first by one time point, and then by two.
-
METRIC: metric to be optimized by the forecasting model in the training phase.
-
R2 (r2)
- MAPE (mean_absolute_percentage_error)
- MAE (mean_absolute_error)
- INCLUDE FIT WITHOUT EXTERNAL VARIABLES: Y(Yes), N(No) to consider or not the external variables
- CHUNK_SIZE_MB_THRESHOLD
- AVAILABLE_MEMORY_PERCENTAGE_THRESHOLD
For example: 
The parameters to set for the Execute phase include:
-
Log level:
-
DEBUG (all information logged)
- INFO (all warnings, errors, critical errors, and general information logged without debug information)
- WARNING (all warnings, errors, and critical errors logged)
- ERROR (all errors and critical errors logged)
-
CRITICAL (only critical errors logged)
Logging messages that are less severe than the level specified for the parameters are ignored; logging messages with a severity level or higher are emitted. - PERCENTAGE_DIVERGENCE_TO_BE_OUTLIER: percentage value (with values between 0 and 1) of the confidence level to be considered when generating the confidence intervals in the execute phase. A lower number finds more outliers. - GET_CONTRIBUTIONS: Y(Yes), N(No) to consider or not the external variables.
NB: If in the training phase you set the INCLUDE FIT WITHOUT EXTERNAL VARIABLES parameter to Y, you can choose between Y or N in the execution phase. However, if in the training phase you chose the N option, you also have to select N in the execution phase.
For example
