Movable Holiday

This function is meant to handle holiday that occurs at different dates/period from one year to the next like Easter, Thanksgiving, Chinese New Year... Such holidays can have a huge effect on the sales of the part and since it the holiday occur in different periods from one year to the next it can not be handled with seasonal profiles. In fact such holidays will mess up the parts seasonal pattern an make the seasonal algorithms to not work properly.

The Movable holiday function is buildt up like this, there are one Holiday template which is a collection of holidaty details, a holiday template is what you connect to the part with selecting the wanted holiday template for the part, see Detail view (movable holiday).  A holiday detail is how you define one holiday it has a name and the number of days that are affected by this holiday, and it also includes which days in the past and in the future that are affected by the holiday. This allows the parts forecast to be affected by many holidays per year. To examine the holiday calculation for a part you can examine the detail index calculations in the Holiday Detail Per Part dialog.

The Approach

The moveable holiday approach in Demand Planning is to find a normal daily sales, this sale will represent what the sales qty for a day within the holiday would be it the holiday did not occur. This normal day sales is computed by doing a exponential smoothing (EWMA) of the daily sales for each daily sales that is not part of a holiday. The alpha used is set in the Demand Plan Server, Advance Server Settings. ForecastModels\Holiday\AlphaDayQty see Advance Server Settings. Recommended values for this day alpha is between 0,02 to 0,08 default is 0.045. Note there is a pitfall with the holiday functionality. If a holiday occur close to a high selling period, but the holiday itself is not in this high selling period, the holiday indexes computed for this holiday will be to low so the holiday effect will in turn be on the low side.

During the holiday period the holiday indexes are computed for each day of the holiday. A holiday index is computed like this Holiday index = Actual Sold Qty / normal day qty. This index is used to increase the forecasted daily qty in the future holiday period. The adjusted demand in the holiday period is set to be equal to the normal day qty (computed by the AlphaDayQty EWMA algorithm described above), the Demand is as always set to the actual qty sold. The holiday indexes is also smoothed out from one holiday occurrence to the next, this is also done by a exponential smoothing (EWMA) of each daily index. The alpha smoothing constant is set in the Advance Server Setttings entry ForecastModels\Holiday\AlphaHolidayIndex, default value is 0,6 is the default setting for this constant, so the last holiday occurrence will get a high weight when computing the future holiday index.

As a summary the movable holiday function works like this, we remove the holiday effect from the adjusted demand so that it will not have an effect on computing seasonal profiles and the future forecast. Then we add the forecasted holiday effect to the future system forecast, with the computed holiday index day by day in the future forecast.

Tip

It can be clever to only connect a holiday template to parts that you know are effected by the holiday, and keep unaffected parts outside the holiday calculation, since these will effect the global holiday index for this holiday, and the global holiday index is used to compute the holiday effect on parts that do not have history, and it can also be used on parts whit history trough the holiday mix factor. It can also be smart to look at the days before and after a holiday and see if these also are affected by the holiday and maybe consider to add these to the holiday period as well.