Research · Methodology · Mean and median

Mean versus median seasonal returns: what the gap reveals

Two real SPY calendar windows, one where a single bad year opens a wide gap between the two averages and one where they agree.

By SeasonalEdge19 October 2026Worked examples: six rule and ETF pairsResearch through 31 December 2025
The short answer

On SPY's 15 sessions from October 31, the middle year beat holding by +1.38 pp; the average year by +0.12 pp. One year, 2008, at −19.09 pp, accounts for much of the gap. On the November window the two summaries nearly agree: +1.83 pp and +1.73 pp. The median describes the typical year; the mean carries the size of every year, including the worst. Read together, the gap between them says how much a few extreme years shape the result. Neither is a forecast.

+1.38 ppOctober 31: median yearExcess over holding, 2000–2025
+0.12 ppOctober 31: mean26 annual trades
+1.83 ppNovember: median yearExcess over holding, 1999–2025
+1.73 ppNovember: mean27 annual trades

Two averages, two questions

The mean adds every result and divides by the count. It answers: if each year had contributed equally, how much did the rule add on average? A single extreme year moves it in proportion to its size.

The median lines the results up and takes the middle one. It answers: what did a typical year look like? It ignores how far the extreme years went, only which side of the middle they fell on.

Both are honest. They disagree when the results are lopsided, and the direction of the disagreement is informative: a median above the mean points to a few large losses; a median below it points to a few large gains doing much of the work.

October 31: a median well above the mean

Sorted from best to worst, the 26 October 31 trades show why. Most years cluster a few points either side of zero. Then 2008 falls to −19.09 pp, more than twice as far below as the best year, 2023, is above (+8.34 pp).

01 / October 31, every year in rank order

One year sits far below the rest; the median barely notices it.

Above holdingBelow holding
−20 pp−10 pp0 pp202320232020202020012009200520042002202420162014202120192022200620132017201020152003201820122000202520112007200720082008mean +0.12 ppmedian +1.38 ppAnnual excess over a 15-session hold, sorted, percentage points
Each column is one year's excess over the ordinary 15-session hold, SPY 2000–2025, sorted from largest to smallest. Dashed line: mean. Solid line: median. Blue above holding, orange below. Source: SeasonalEdge rule evaluator.

Removing one year at a time shows which summary is sensitive to what:

Excess over a 15-session hold, percentage points. Removing a year is a sensitivity check, not a correction of the record.
SampleMeanMedian
All years+0.12 pp+1.38 pp
Without 2008 (worst)+0.89 pp+1.57 pp
Without 2023 (best)−0.21 pp+1.20 pp

Dropping 2008 lifts the mean to +0.89 pp; dropping 2023 turns it negative. The median moves far less in either case. That is the practical meaning of the gap: the mean of this rule rests on a handful of years, and which handful you keep changes its sign. The median says the typical year was positive; it says nothing about how bad the bad years were. The full evidence is on the October 31 research page.

November: mean and median close together

The November window has its own bad year, 2008 at −10.28 pp, and its own best, 2020 at +9.97 pp. But the body of the distribution sits clearly above zero, so neither extreme drags the mean far from the middle.

02 / November, every year in rank order

Mean and median nearly coincide.

Above holdingBelow holding
−15 pp−10 pp−5 pp0 pp+5 pp2020202020232023200220012009202420222005200420162019201820132017201120141999200620032010201220152021202520072000200020082008mean +1.73 ppmedian +1.83 ppAnnual excess over a same-length hold, sorted, percentage points
Each column is one year's excess over an ordinary hold of the same number of sessions, SPY 1999–2025, sorted. Dashed line: mean. Solid line: median. Source: SeasonalEdge rule evaluator.

Without 2008 the mean rises to +2.19 pp; without 2020 it falls to +1.41 pp. Both stay positive, and the median stays between +1.68 pp and +1.99 pp. When the two summaries agree and survive these checks, the average is less dependent on any single year. That is a statement about this sample, not about next November.

Per trade or per year changes the answer

For a once-a-year rule, a trade and a year are the same observation. The turn of the month trades about twelve times a year, and its two medians point in opposite directions. By year, the median (+0.054 pp) is below the mean (+0.088 pp). By trade, across all 311 trades, the median (+0.188 pp) is above the per-trade mean (+0.090 pp).

Both are correct. Most single trades beat holding by a little and a minority lost a lot; averaging each year's trades first folds those losses into their years and leaves a few strong years standing out. Any mean or median quoted for a rule that trades more than once a year should say which unit it uses.

The FOMC announcement-day rule, about eight trades a year, shows no such flip: its median is above its mean both by year (+0.091 pp against +0.024 pp) and by trade (+0.037 pp against +0.028 pp). The unit does not always change the answer, which is why it has to be stated.

What neither number tells you

A median is not the return of a normal year to come, and a mean is not an expected return. Both describe a fixed set of past observations. With 26 or 27 annual observations, removing one year visibly moves either figure, as the tables show.

  • Report both, and say whether they count trades or years.
  • Show every observation, sorted or in date order, so the extremes are visible.
  • Show what removing the best and worst year does to each.
  • Keep the comparison with ordinary holding; a raw return's mean and median mostly reflect the market's drift.

Scope: all figures are gross, before costs and tax, on history through 31 December 2025.

See every year

Read a study with all its years shown

Each research page lists every year against holding, so the mean, the median and the extremes can be checked.

Browse SeasonalEdge research

Get new research by email

Sources and research notes

  • October 31 (SPY, QQQ, IWM) and November (SPY, QQQ, IWM): SeasonalEdge MCP check_rule, retrieved 2026-10-19; rule ids dd9df50ad4b1eb0f, d95c4ebdeb2ecc21, ec39492da11d70ec, d7bff62caad48bf0, 1319f86ec77a49b4, b5968a8c353e6dd4.
  • Turn of the month and FOMC (SPY): SeasonalEdge public research API, retrieved 2026-10-19T20:51:46Z.
  • Research cutoff 31 December 2025; prices through 16 October 2026. Means and medians with a year removed, yearly medians and the count of best years are computed from the returned observations; other figures are evaluator fields.
  • How SeasonalEdge research is computed · Glossary

Join our newsletter

We share our research, product news and upcoming seasonalities. Free, and you can unsubscribe at any time.