Identifying Seasonal Products — A Numerical Approach

Ayush Garg
The Startup
Published in
4 min readJan 6, 2021

Introduction

Most businesses have seasonal trends in sales. Often there are certain months that show a spike as compared to the rest of the year. But where this spike occurs varies a lot by industry and even products within the industry. Let’s talk about the Indian fashion industry. Most shops witness multiple spikes throughout the year, especially during the festive seasons. But for a particular shop, the type of outfits that see a spike during Diwali will be different from the ones that see a spike during Eid. Although the total sales might look very similar, the products that contribute to these sales spikes will be very different.
Now, these might not be very obvious, as a major portion of the sales might continue to constitute the regular outfits that sell all year long. The variable component of sales, that captures these subtle seasonal variations, is usually relatively small. This article is concerned with demonstrating a numerical approach to identify such seasonal products from monthly sales data.

Concept demonstration

Suppose we have the following data for the monthly sales (in thousand rupees) of 10 different clothing items, like T-shirts, formal suits, kurtas, saris, and so on, at a particular shop. To avoid diverting the reader’s focus, let’s name them as Item 1 to 10.

Table 1 — Item wise and total monthly sales, in thousand rupees

Now, let’s convert them to percentages so that each value represents the portion of sales coming from each month for a particular item. This will help us analyze products with different ranges together. For example, the actual sales of casual and formal wear cannot be analyzed together easily as they have very different scales of market size. But their proportions across months can be.

Table 2 — Item wise and total sales distribution across months, in percentages

Let’s also plot the above data. The following graph shows a plot of monthly sales proportions for the individual items as scatter plots and for the entire shop as a line graph. As one can notice, many spikes occur together across items. This is because there are certain months (like November and March in this example) when the industry is expected to do well in general. However, some products do disproportionately better than others. These over-indexed products are basically the seasonal ones for the month.

We can calculate this over-indexing by taking the difference of the values for individual items in Table 2 with the values for total sales in Table 2. Here is how it looks. A few values don’t seem to match the differences at first look. However, that’s only because of rounding it off for visual convenience. In the back end, the precise values are retained.

Table 3 — Over-indexing by item by month

Now, we can pick up the topmost over-indexed products to get our final priority order for each month. For example, in November, items 6 and 7 are the top two.

On top of this, there are a few optional conditions one can apply on the list of products shortlisted for each month, to arrive at a list that can be confidently claimed as seasonal products.
1. The product should have at least (1/12) of its yearly sales in that month. Since there are 12 months in the year, this is the baseline threshold a product should be expected to satisfy to qualify as seasonal. For example, in June, Item 3 has the highest over-indexing (Table 3). However, the month contributes only 7.7% of its yearly sales (Table 2), which is lesser than 1/12.
2. The product should have a positive jump compared to the preceding month. For example, in April, Item 9 has the highest over-indexing (Table 3). However, its own sales are lower than the previous month (Table 2). Graphically, it doesn’t really look like a spike, as shown below. Hence, its seasonal nature is questionable.

Finally, if we pick the top two over-indexed SKUs for each month and then apply the two conditions, the highlighted cells (or 1s) in the following table will be the final list of seasonal SKUs by month. Here, for January, we have taken December as the previous month, assuming a similar month-wise distribution in the previous year.

Table 4 — list of seasonal SKUs by month

Conclusion

This article demonstrated how we can identify very subtle variations to capture products that are over-indexed in certain months. A more accurate phrase to describe them would be “relatively more trending for those months rather than seasonal since they themselves might have their sales peaks elsewhere. But the over-indexing can definitely be used to prioritize the products. To further filter this priority list, one can apply additional conditions to arrive at products worth classifying as seasonal.

--

--

Ayush Garg
The Startup

I am a data scientist by chance, not by choice. But I have simply fallen in love with this field.