• 19 April 2022
  • 4 replies

Userlevel 3



Forecasts time series with seasonality with an additive model. The ETS function stands for Triple Exponential Smoothing and is a statistical algorithm for time series forecasting based on the Holt-Winters model. The ETS is a way to model three aspects of the time series: its average, its trend, and its seasonality.

There are two versions of the model, one being additive and used on most time series, and the other one being multiplicative, more adapted to exponential trends. Pigment chose to use the additive model.


FORECAST_ETS(input_block, seasonality [, ranking_dimension, [alpha, beta, gamma]])
  • input_block is the data source on which the ETS forecast is computed, and must be metric with data points as an expression of Integer or number type. The metric must be defined at least on the ranking_dimension Dimension
  • seasonality is the seasonality of the input_block, expected as an integer
  • ranking_dimension is a dimension applied to the time series taken in the input_block. It is optional if it is a datetime dimension from the calendar, but mandatory if it is not or if the metric is defined on several time dimensions.
  • alpha data smoothing factor, with a value between 0 and 1. The default value is 0.25. It is optional but mandatory in case beta and gamma are precised
  • beta trend smoothing factor, with a value between 0 and 1. The default value is 0.1. It is optional but mandatory in case alpha and gamma are precised
  • gamma seasonal change smoothing factor, with a value between 0 and 1. The default value is 0.25. It is optional but mandatory in case alpha and beta are precised

All last 4 parameters are optional. If one of the last 3 parameters is filled, all the other optional parameters must be filled too.

Note: The input_block number of data points must be at least twice the seasonality for the ETS function to have the desired behavior. This means that for a time series with a 1-year seasonality, at least 2 years of data.

Your dataset can contain a number of data points not equal to a round multiple of the seasonality, meaning for a yearly seasonality, you don’t need to have exactly 2 or 2 years of data points, it can also be 2.5 years (as long as it is higher than 2 years).


Return type

All the time series cells will be filled by an integer or decimal value starting from the first empty cell until the last value of the datetime dimension (ranked chronologically).

Note: the current implementation of the ETS function does not optimize missing data points in the time series: it is recommended to input plausible values in the empty cells.


Metric Sales defined on 1 Dimension, with a 3-month seasonality

Month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Sales 4 8 6 4 8 6 5 9 7      

Forecasted Sales default parameters =FORECAST_ETS('Sales',3,'Month')

Forecasted Sales parameters at 0.5 =FORECAST_ETS('Sales',3,'Month',0.5,0.5,0.5)

Note: The input_block can have empty values at the beginning of the series: this won’t impact the result of the ETS forecasting, as long as at least 2 times the seasonality in terms of datapoint is non empty.



4 replies

Userlevel 3

Hi Carole, Can you explain a little bit more about ranking_dimension function and how it works?

Userlevel 3

Hi Carolina,

Actually, the ranking_dimension we are referring to in this function is a parameter referring to one of the dimensions on which your input_block is defined.

As an example, if you are trying to forecast your Sales over time and that you have a metric Sales defined on Month, your input_block would be Sales and your ranking_dimension would be Month.

Also, when the ranking_dimension is a calendar dimension and is the only calendar dimension applied to the metric, it is not mandatory to fill it. I hope that answers your question!

Userlevel 3

Sorry, I made the wrong question. In this formula: FORECAST_ETS('Sales',3,'Month'), what does the number 3 means?

Userlevel 3

Hi Carolina,

The number 3 in the above example represents the estimated seasonality in terms of Month (my ranking_dimension) of the metric I used in input_block (Sales). You can see on the graph that my Sales seem to have a pattern repeated every 3 months, hence the number 3 for the estimated seasonality of my time series.

This function is handy only with time series with seasonality. If you have a time series that seem to have a steady increase or decrease, we recommend to rather use the linear regression function.