Calculating and Using a Seasonality Index
© Copyright. Content on InventoryOps.com is copyright-protected and is not available for republication.
Seasonality Indexes are an important part of inventory forecasts in businesses that have repeated variable demand patterns that are based on time. The calculations for seasonality indexes are relatively simple, but you need to understand seasonality and forecasting to use them correctly.
Let's start with defining seasonality. Everyone understands a holiday peak for consumer goods that could be gifts, or a summer peak for sunscreen or beach gear. But any variability that repeats based on time should be considered as part of your seasonality index. For example, a lot of businesses have a surge at the end of each month, each quarter, or the end of the year. I call this self-induced seasonality because it is the result of internal policies—typically policies that involve bonuses or incentives that are based on months, quarters, or years.
I would prefer businesses find other ways for these types of incentives. But this is the way it is and has been for many years.
Back to seasonality indexes, the math to calculate and index is not all that complicated, but preparing the data takes some work and some thought. The main problem with seasonality indexes is that for decades people have been taught they can calculate the index against a single item, then apply it to the forecast for that same item. I have spent a lot of time working with demand history, and I can tell you that there is too much other variability in demand for this to work. To attempt to eliminate this variability means we need more demand. This means we need more items with similar seasonality patterns, AND we need to use more years of demand.
This is where you get to see how much you know about your sales. You need a group of items with similar seasonal demand patterns. If you sell snow shovels, and only snow shovels, all your items may have the same seasonal demand patterns. However, if you know that some of your models of snow shovels are also frequently used by industrial customers to clean up stuff in their facilities, those are going to be in a different group. In theory, you could figure this all out mathematically, but that is very challenging, and this is one of those times when human input is a better way to get started.
Once you have your seasonal groups, you need to look at other things that can impact your calculation. One issue is what to use as the unit of measure to consolidate your demand data. If your items are all similar, you should be able to use units sold, or dollars sold, and get similar results. But if you have significantly different items, such as sheet metal and sheet metal screws, the larger quantities likely sold of sheet metal screws sold will probably skew the results if you use units sold. In that case, you may try dollars sold, or just exclude the sheet metal screws in the calculation. Also, slow movers tend to have a lot of demand variability that is unrelated to seasonality, so I will usually only use fast-to-moderate movers to calculate the indexes.
Next, how much time (demand history) should you use? As much as you can get, provided nothing funky happened during the previous years that significantly affected demand. What are "funky" things? Let's say you purchased a competitor to get their customers, that should have dramatically affected your demand. Or, a new competitor entered the market, and that cut into your sales. Or, a pandemic hits, and you sell something that everyone thought they needed in a pandemic. Or, you ran a one-time promotion that temporarily increased demand. So these are all things that likely suddenly changed your demand, but not because of seasonality. As to the promotion, if you ran it every year at the same time, you may choose to just incorporate that demand into your seasonality index.
So we're going to start with three years of demand history and use units sold as the unit of measure. We're going to aggregate the demand for all items in each seasonal group by month and year. Then, we add all demand for January (all three years), then for February, etc.
To get our index, we divide each month's total demand by the average demand of all months. The index for each month is relative to 1 (one). So if you get an index of 0.90 for a month, it means that month's demand should be 9/10 or 90% of an average month's demand. Therefore to apply a seasonality index, you simply multiply your deseasonalized forecast for that month by the index for that month. So if you have a deseasonalized forecast of 1,000 units for a month with a seasonality index of 0.90, you will get a seasonally adjusted forecast of 900 units for that month.
The image below shows an example of a seasonality index calculated over three years. I also included a line chart to better help visualize the seasonal pattern. You want to look for any unusual peak or valley, especially one that does not align with what you thought you knew about your seasonal patterns. This one looks pretty good, with a peak in summer and another just before Christmas.
The following image shows each year independently calculated and put on a line chart. Here you would check to see if each year follows a similar pattern to the three-year calculation. June of 2016 had a little higher demand than expected, so it would be worth looking at that detail to see if it can be explained, but overall this looks consistent enough.
Another good check would be to go back a few more years and calculate an index to see if it matches. In addition, you can calculate an index against individual items to make sure they also fit the same pattern. Be aware that your individual items will probably show greater variability, which is why we are calculating against a group. If you find an item that is dramatically different over multiple years, you may need a separate index for that and any similar items.
The process of going back and checking other years and individual items is a bit tedious, but the effort is worth it. The good news with seasonality indexes is that once you get a good index, you can keep using it for many years because seasonality doesn't usually change all that much. While you should go back and review it occasionally, once it's done, it's done.
Removing Seasonality from Demand.
In the process of forecasting demand, you will generally want to first remove any seasonal effects. To do this, you just divide the demand for a month by the seasonality index for that month. Now you have deseasonalized demand, and you can proceed to apply a smoothing calculation to it to start putting together your forecast. Later, after you produce a deseasonalized forecast, you will multiply each month's forecast by the index to get a seasonalized forecast. In the image below, you can see the results of deseasonalizing the demand. You'll notice that there is not as much variability from month to month with the deseasonalized demand.
Adding Seasonality back into your Forecast.
In the image above, we deseasonalized demand and got an average demand per month of 297 units. We chose to simply add 5% to this for our monthly forecast for the next year resulting in a monthly forecast of 312 units. We then multiplied each month's forecast by the corresponding seasonality index to get the Seasonalized Forecast shown. That's all there is to it.
Calculating Seasonality Index for a Single Item.
Previously, I recommended not doing this. However, under certain conditions, you may have no choice. For example, what if you only sell one item? If you only sell one item, or only have one item that would be subject to certain seasonal characteristics, you may be able to calculate an effective index from just that one item. This assumes that item is a fast mover and you have multiple years of sales history.
Manually Adjusting your Seasonality Index.
I would prefer not to do this, but sometimes you have no choice. This is especially true if you have limited historical data to use in the calculation and/or there have been unusual demand events in the history. If you look at the first image in this article, you can see that the line chart is relatively smooth. That would be normal. However, if you get a line chart that looks more like the output from an ECG with sudden spikes that make no sense for your business, you're going to want to attempt to fix it. I've certainly done this in the past. You need to be very careful here, and you need to know a lot about the seasonal effects on your business. I suggest doing it in a spreadsheet with a connected line chart similar to what I used in the examples. You can manually adjust some of the data points to get the effect that makes sense to you. Keep in mind that the average of your individual indexes should be 1 (one), so you're going to want to make sure you manually adjusted index is mathematically correct.
Using other Time Intervals for your Index.
The previous examples all use Months as the time interval for the seasonality index. That would be the most likely interval for most businesses, but you can use other time intervals. Whatever you use, the calculation is the same. In addition, you can combine multiple indexes by multiplying them by one another. For example, if you had a November index of 1.40 but wanted to break that down into a daily forecast. I would suggest you first check to see how your inventory system is using your forecast, because it may be using the index to calculate the demand for the month and then dividing it by the days in the month to get a daily forecast to use against the lead time to calculate demand during lead time to trigger orders. However, if you find you have significantly different demand based on the day of the week. For example, e-commerce fulfillment operations typically have a significant amount of orders on Mondays. So let's say you calculate an index by workday and get an index for Monday of 1.85; this would result in a daily index for Mondays in November of 2.59 (1.40 times 1.85). This would be multiplied by your unseasonalized daily forecasted demand to get a Monday in November forecast. I do want to note that it would be very unusual to create daily forecasts, but you can see how it is possible.
More Articles by Dave Piasecki.
© Copyright. Content on InventoryOps.com is copyright-protected and is not available for republication.
Dave Piasecki, is owner/operator of Inventory Operations Consulting LLC, a consulting firm providing services related to inventory management, material handling, and warehouse operations. He has over 25 years experience in operations management and can be reached through his website (https://www.inventoryops.com), where he maintains additional relevant information.