Modelling Seasonality

For distributing a yearly key figure over months it can be useful to add a seasonality logic to your model.


To extend your model by a seasonality logic, you need to create a helper dimension. Here we call this helper dimension "CALMONTH".

It basically works like this: List each month existing within the model horizon and map it with the respective calendar month. For a model horizon 2019-2020 we would have.

With the mapping column we assign the matching calendar month to each month of the time dimension. The counter needs not necessarily to be added, but can be useful for more complex model logic.


To define our desired seasonality, we create an additional sheet with the seasonality value mapped to the desired month. If you want to show the same seasonality share for each year, only the first year of the model horizon is needed.


The next step is to create our helper dimension "Calendar Month" in Valsight.


Therefore we add the new dimension and assign the months as elements.


The most simple model setup to implement our seasonality logic would be the following:


The "CALMONTH" node contains the mapping column, where we matched the time dimension month with our calendar month


The "Seasonality Share" node contains the seasonality column for our defined share values for each month in 2019.


The "Seasonality Share All Years" node combines both other nodes in a way, that the defined seasonality share for 2019 is transferred to all years.


By multiplying the Seasonality Share with the CALMONTH node and dropping the year you are left with the value share per"calender month".

 = DROPLEVEL('Seasonality Share'*'CALMONTH',"Year")


This multiplied with the CALMONTH node, dropping the CALMONTH level results in the seasonality share transferred to all defined years & months.

 = DROPLEVEL(DROPLEVEL('Seasonality Share'*'CALMONTH',"Year")*'CALMONTH',"CALMONTH")














Was this helpful?

Yes | Somewhat | No