There are many factors that drive seasonal demand. The most intuitive one is climate. For example, there are four seasons in a year, which will bring seasonal changes in demand for clothing, food, electricity consumption, etc. Winter is cold, there are more flu cases, there are more patients, and the demand for medicine is high; summer is a season of lush growth, there are more insect pests, and the demand for pesticides is high. These are all seasonal demands.
However, seasonality does not necessarily have to last a year: a day, a week, a month, or even an hour or a minute can all show “seasonality”. For example, if you run a restaurant, business is low at noon and high at night, which is seasonality for a day. In the United States, restaurants are generally busiest on Friday and Saturday nights, while Tuesday nights are generally the quietest (this is why many restaurants have Happy Hour discounts on Tuesdays), which is seasonality within a week.
Some e-commerce companies also have similar “seasonality”, but it is the opposite of the cyclicality of restaurants. When I was analyzing cross-border e-commerce company business in North America, I found that on weekends, people are more likely to go out shopping and eating, and not many people shop online; on Tuesdays, more people stay at home and do not go out, and you will find that the amount of online shopping will be higher, and the demand within a week is seasonal.
In addition to natural causes, there are also many artificially created seasonal factors. For example, the start of school in specific season every year will bring seasonal demand for stationery, school uniforms, school bags, etc.; the Spring Festival, Christmas, and Thanksgiving every year will bring seasonal demand for industries such as transportation and retail.
When forecasting seasonal demand, the first thing to consider is how to divide the seasons. A common mistake made by beginners is to divide the seasons too finely.
For example, I once met a practitioner who divided the annual demand into 52 weeks, or 52 “seasons”. Just imagine, aligning the 52 weeks of last year with the 52 weeks of the year before, the year before, or even longer, and calculating the “seasonal index” for each week; some years have 52 weeks, some years have 53 weeks, and the last week is not full, this is quite complex.
The finer the segmentation, the more “noise” there is, and the more likely it is that extreme values will appear, which will significantly affect the optimization and prediction accuracy of the model. When the segmentation is too fine, the existing seasonality may not be visible.
So what granularity should be used? This is related to the problem that demand forecasting needs to solve.
If you are in the new retail industry and need to replenish stores every day, or if you are a catering company and need to make a plan for the next day’s store orders, we have to divide it into days. Indeed, in many industries, the demand varies from day to day within a week, often showing seasonality.
If you are in the industrial products field, you need to make mid- to long-term capacity planning and decide whether to build a new factory, etc., and it is probably enough to divide it by quarter. But if you are in the fast-moving consumer goods and highly seasonal industries, you need to plan short-term capacity, and it is more likely to be divided by month. For companies that rush to increase sales at the end of the month or the end of the quarter, there will be a certain “seasonality” every month and every quarter, so we may have to divide it by week to deal with the rush at the end of the month, and by month to deal with the rush at the end of the quarter.
There are many details, such as whether the week starts on Monday or Sunday; whether to count only working days or weekends each week, all of which must be unified. When divided by month, the number of days and working days in each month may be different – sales in a 31-day month are generally higher than those in a 29-day month, and restaurants may have higher revenue in a month with five Fridays. Some holidays fall in the 46th week this year and the 45th week last year, which may significantly affect demand. In these cases, demand may need to be normalized.
In addition, the calendar used also significantly affects forecast of seasonal demand.
In seasonal models, we generally use the Gregorian calendar. However, many activities are related to the lunar calendar. For example, traditional festivals such as the Spring Festival, Dragon Boat Festival, and Mid-Autumn Festival may be distributed in different months of the Gregorian calendar every year. If the seasonality of demand is driven by these lunar festivals, our calendar should be built around the lunar calendar.
Take commercial vehicles for example, their sales are greatly affected by the Spring Festival. After the Spring Festival, people are generally full of confidence and buy new cars to go all out. This seasonality should be divided around the Spring Festival, and the specific date of the Spring Festival is different every year, falling in different solar months. One company assumed that the Spring Festival was in February, and March was the first month after the Spring Festival, and the busiest month for the production line. This is obviously a wrong assumption.
This is especially true for agricultural-related businesses. For example, if you are a pesticide manufacturer, your main products are herbicides and insecticides, and pests and weeds follow the climate. It is obviously more reliable to divide the calendar around unar calendar and calculate the corresponding seasonal index than to divide it around the solar calendar.
For cross-border e-commerce, if the products are targeted at believers of Islam, Judaism, Hinduism, etc., then the impact of festivals such as Eid al-Fitr, Diwali, and Jewish New Year must be considered. These festivals are similar to the Spring Festival, and the dates and months of each year on the Gregorian calendar may be different, which may significantly affect demand forecasts.