Documentation menu

SPY, QQQ, and IWM Seasonality

Learn how Eden calculates and displays monthly seasonality for SPY, QQQ, and IWM.

Last updated

Eden’s Seasonality panel shows how SPY, QQQ, or IWM performed during each calendar month in recent years.

It answers questions such as:

  • How often was September positive?
  • What was the average December return?
  • What were the best and worst results for March?

Seasonality describes the past. It does not predict the next month or tell you to buy or sell.

Open the Seasonality panel

  1. Open Eden and select SPY, QQQ, or IWM.
  2. Add or open the Seasonality panel in the workspace.
  3. Read the table one month at a time.
  4. Use the separate MTD card to see the unfinished current month.

Seasonality is currently available only for SPY, QQQ, and IWM. It requires an Eden account.

How Eden calculates a monthly return

Eden uses dividend-and-split-adjusted daily closing prices.

For each calendar month, Eden compares that month’s last adjusted close with the preceding month’s last adjusted close:

Monthly return = (current month-end adjusted close ÷ previous month-end adjusted close − 1) × 100

This is a month-end to previous month-end return. It is not the change from that month’s opening price to that month’s closing price.

For example, suppose SPY ended August at an adjusted close of $500 and ended September at $525:

($525 ÷ $500 − 1) × 100 = 5%

That September observation would be positive 5%.

What counts as positive, negative, or flat

Each completed historical month is one observation.

  • Positive: The return is greater than 0%.
  • Negative: The return is less than 0%.
  • Flat: The return is exactly 0%.

Eden groups observations by the named month. All completed Septembers are compared with other Septembers, for example.

The percentages are simple counts:

  • Positive % = positive observations ÷ all observations × 100
  • Negative % = negative observations ÷ all observations × 100
  • Flat % = flat observations ÷ all observations × 100

If 7 of 10 completed Septembers were positive and 3 were negative, the result would be 70% positive, 30% negative, and 0% flat.

Why some months have more observations

The data covers the previous 10 completed calendar years plus completed months in the current year.

Because of that, earlier months in the current year can have 11 observations while later months still have 10. The unfinished current month is kept out of the historical table.

Eden also needs two neighboring month-end values to calculate a return. If either month-end is missing, Eden skips that observation. It does not jump across the missing month.

How to read the panel

The visible table uses these labels:

Panel label Meaning
Month The calendar month being studied.
Years The number of completed observations for that month. This is the API’s observations value.
Positive The percentage of observations above 0%.
Negative The percentage of observations below 0%.
Average The arithmetic mean of all returns for that month. Add the returns and divide by the number of observations.
Median The middle return after the observations are sorted. With an even count, Eden averages the two middle values.
Best The highest historical return for that named month.
Worst The lowest historical return for that named month.

The panel’s headline names the month with the highest Average return. “Strongest” means highest historical average in this dataset. It does not mean that month will be positive next time.

The footer says Adjusted month-end close returns and shows the last completed month included in the historical data.

Month to date

The MTD card shows the unfinished current month’s change separately. It includes:

  • The current month name.
  • The current return percentage.
  • A Through date showing the latest adjusted close used.

The MTD return uses the preceding month’s last adjusted close and the latest available adjusted close in the current month. It is not added to the completed historical statistics until the month is over.

Other values in the seasonality data

The seasonality API includes several supporting values. They may not all appear as columns in the current panel.

Flat percent is the share of observations that returned exactly 0%.

Standard deviation percent measures how spread out that month’s returns were. Eden uses sample standard deviation. A larger number means the historical results varied more.

Sharpe ratio is the month’s average return divided by its sample standard deviation. In this panel it is only a seasonal consistency ratio. It is not an annualized investment Sharpe ratio.

Absolute average percent is the average size of the monthly moves after ignoring whether each move was up or down.

Absolute maximum percent is the largest move size after ignoring direction.

Absolute minimum percent is the smallest move size after ignoring direction.

For example, returns of +4% and −2% have absolute sizes of 4% and 2%. Their absolute average is 3%.

Data freshness

Eden prepares the seasonality history before you open the panel, so it does not recalculate every year of data during each page view.

When Eden refreshes the data, it uses dividend-and-split-adjusted daily closes to rebuild the monthly results. Check Data through in the panel to see the latest completed month included in the historical statistics.

Use seasonality with care

A high positive percentage does not prove the same month will rise this year. A strong average can also be shaped by one unusually large move.

Before making a trading decision, also check:

  • Current price structure and trend.
  • Nearby Key Levels.
  • Current Price Targets.
  • Volatility, liquidity, news, and scheduled events.
  • Your entry, exit, and risk plan.

Historical frequency, average return, and past extremes are descriptive statistics. They are not forecasts, profit promises, or buy and sell signals.

Apply this in Eden

Open a ticker to review the current levels and targets in your workspace.

Open Eden