Seasonality is a characteristic of a time series whereby the data experiences regular and predictable changes that recur every calendar year.
TrendSpider’s Seasonality Chart Widget makes it easy to visualize seasonal trends for any security. You can use these data points to guide your directional bias in placing trades or when settings limits for option strategies, among other things.
Seasonality Chart Widgets Showing Various Settings
You can select four different kinds of seasonality:
- Hour of the Day
- Day of the Week
- Week of the Year
- Month of the Year
You can customize the Since date by clicking on it and using the date picker tool. This enables you to measure seasonality from a specific starting point, such as the beginning of the year when looking at "hour of the day" seasonality or since the rise of algorithmic trading that may have changed seasonality trends.
You can also filter charts to exclude outliers, such as the 2008 financial crisis or the 2020 COVID-19 outbreak, by clicking on the filter icon. By excluding these periods, you may be able to create a more accurate picture of how security behaves during normal times. You can exclude an entire year (i.e., “2008”) or specific months (i.e. ,“May 2008”). You can also have more than one exclusion by separating values by commas. For example, if you wanted to exclude the 2008 crisis and the first months of the COVID panic, you could use "2008, 2009, 2010, Mar 2020, Apr 2020, May 2020".
The chart shows five different characteristics:
- Winning Months (green columns): The percentage of a time series that a given month has a positive return. E.g. A reading of 75% means that the month has a positive return three-quarters of the time.
- Median Change % (violet line): The median percentage change of a time series for a given month. E.g. A reading of 0.75% means that the month has a median 0.75% change. The median is the “middle” value in an ordered list of values.
- Mean Change % (blue line): The mean (average) percentage change of a time series for a given month. E.g. A reading of 0.5% means that the month has a mean 0.5% change. The mean is equal to the sum of all values divided by the number of values.
- P25% / P75% (pale blue cloud): The 25% percentile to 75% percentile range is shaded on the chart widget to show where “most” of the percent changes took place.
- Min/Max: The minimum and maximum mean percentage change is shaded on the chart to show the absolute highs and lows over the time series.
IMPORTANT: Seasonality data might be delayed by up to 3 hours. The whole point of Seasonality does not imply real-time updates, since they are not going to change the overall picture.
Note 1: "Now" line: Every Seasonality chart has a vertical dashed line called "Now", which does exactly that: it illustrates what's the corresponding period on your Seasonality chart for the "Now" moment. It's not very useful for Monthly charts, but helps a lot for Week of Year, for example.
Seasonality data types
Classic Seasonality focuses on price changes over time (meaning, it operates with Change%). However, the idea of Seasonality can be generalized beyond that to understand other market tendencies which often are also seasonal. Naturally, that means that anything that produces values that are comparable across periods can be measured against and over time. Thus, any indicator which outputs percentages can be measured in this way. In TrendSpider, we support Seasonality across various data types supported:
- Change%, the classic one.
- Relative Volume
- SMA(20) Distance%
- SMA(50) Distance%
- SMA(100) Distance%
I.e., with Relative Volume seasonality you can discover things like "in March, Relative volume for this ticker was greater than 2 in 75% of cases for last 30 years". You can easily validate Seasonality data using the respective indicators on your charts. Here are the time frames we build our Seasonality data from:
- Hour of the Day: 60min candles
- Day of the Week: Daily candles
- Week of the Year: Weekly candles
- Month of the Year: Monthly candles
Case Study: Boeing Corp. (BA) Seasonality Data
Boeing tends to do poorly during August when the price moved lower 60% of the time over the past 20 years. The mean (average) decline in August was -0.41% while any increases appear to have been modest compared to other months.
Case Study: S&P 500 ETF (SPY) Seasonality Data
The old adage “sell in May and go away” appears to have some merit when it comes to the performance of the S&P 500 index.
June has historically been the worst month for the benchmark index with a move lower 57% of the time and a -0.22% median change.
Case Study: Apple Inc. (AAPL) Seasonality Data
Apple Inc. (AAPL) tends to outperform during October, which coincides with its new release cycle and the holidays.
The stock moves higher 80% of the time in October with an average gain of 6.17% over the past 20 years.
Case Study: K12 Inc. (LRN) Seasonality Data
K12 Inc. (LRN) tends to outperform following earnings during the school year, then drops off in the summers.
The stock moves higher 85% of the time during April with an average gain of 7.9%, and throughout the summer and until the first earnings of the school year it typicalls falls. For example, in October it falls 66% of the time with and average loss of 6.47%.
Case Study: 1-800-Flowers.Com Inc (FLWS) Seasonality Data
1-800-Flowers.Com Inc (FLWS) tends to rise during February.
The stock moves higher 77% of the time in February and with an average gain of 6.17% over the past 20 years. Similar moves are replicated in April, and December, also holiday seasons that can be associated with sending flowers traditionally.