Research · SPY · December

December on SPY: a lead over holding until 2011, a shortfall since

The month passes the usual checks against ordinary exposure only at the margin, and its record has two halves that disagree.

By SeasonalEdge20 October 2026Research 1999–2024
The short answer

From 1999 to 2011, holding SPY through December beat a same-length hold by +1.20 pp a year on average; from 2012 to 2024 it trailed by 0.74 percentage points. Across all 26 years the month passes the usual checks, but only just: 17 years beat holding, and the +0.23 pp average lead becomes +0.004 pp without 1999, its best year. The median December was +1.21 pp ahead; a few large losses pull the average down. The eight losing Decembers averaged −3.83%, against +3.16% for the 18 winners. Gross historical figures; no significance test.

+0.23 ppAverage excess per December26 trades, rule minus a matched hold
+0.004 ppWithout its best year1999 removed
17 / 26Years beating holding65.4% of years
−11.71%Worst December trade2018, gross

December, from its first open to January's

December is often listed among the stronger months for US stocks. This page tests one fixed version of that claim on the SPY ETF: the whole calendar month, every year the data allows, each compared with an ordinary SPY hold of the same length.

Instrument / directionSPY · Long
EntryOpen of December's first exchange session
ExitOpen of January's first exchange session
Sample1999–2024 · 26 annual trades

Each trade belongs to the year its December falls in, so the trade that ends in early January 2000 is the 1999 December. That is why the history runs from 1999 to 2024: the December 2025 trade ends in January 2026, after the 31 December 2025 research cutoff, so it is kept with the later results rather than counted here.

The exit is January's opening price, so each trade holds the year-end holidays and the overnight move into the new year. Christmas and New Year's Day close the exchange, and the weekday December starts on varies, so the windows come in four different lengths; the evaluator compares each with an ordinary SPY hold of exactly its own length.

This is a whole-month test. It is not the Santa Claus rally, which is a seven-session window around the turn of the year, and it is not a test of anything inside the month.

It survives removing its best year, by almost nothing

The usual first check is whether one extraordinary year carries the average. December's best year, 1999, beat holding by +5.86 pp. Without it, the average of the other 25 Decembers is +0.004 pp: still positive, but small enough to round to zero at two decimal places. The month also beat holding in 17 of 26 years, 65.4% of them: most years, though not by a wide margin.

Time is the check it fails. The first 13 Decembers (1999–2011) averaged +1.20 pp; the last 13 (2012–2024) −0.74 pp. The four Decembers to 2024 averaged −0.75 pp, and 12 of the 23 overlapping four-year windows averaged above zero, close to half.

01 / Sensitivity and period

Positive over the whole sample and the first half; negative since 2012.

Above holdingBelow holding
−3 pp−2 pp−1 pp0 pp+1 ppAll 26 years+0.23 ppWithout 1999 (best year)+0.004 ppFirst half, 1999–2011+1.20 ppSecond half, 2012–2024−0.74 ppLatest four years, 2021–2024−0.75 ppLatest year, 2024−2.70 ppAverage excess per December, percentage points−4 pp−2 pp0 ppAll 26 years+0.23 ppWithout 1999 (best year)+0.004 ppFirst half, 1999–2011+1.20 ppSecond half, 2012–2024−0.74 ppLatest four years, 2021–2024−0.75 ppLatest year, 2024−2.70 ppAverage excess per December, percentage points
Average excess per annual trade, percentage points. The latest-four-years row is computed from the evaluator's trades (derived); the halves and recent rows overlap the full sample and one another, and none is an independent test. No significance test is supplied with this evidence.

Both readings hold: over 26 years December beat an ordinary hold in most years, by a small average that does not depend on its best year. Over the last 13 it did not. Both are true of the same record, and 26 observations cannot say which describes the next December.

On QQQ the same month trailed holding; on IWM it held up better. See the three ETFs on the same years.

Most of December's return was ordinary drift

SPY rose in 18 of 26 Decembers, 69.2% of them. That counts how often the month made money, not whether it did better than any other stretch of the same length.

Each trade is set against the average ordinary SPY hold of the same number of sessions before the research cutoff, from +0.701% for the shortest windows to +0.811% for the longest. Their average is +0.78%; December's average trade was +1.00%.

02 / Return versus ordinary exposure

December's average trade was a little above an ordinary month-long hold.

December ruleMatched ordinary hold
0%+0.5%+1%December trade+1.00%Matched ordinary hold+0.78%Average gross return per annual trade, SPY0%+0.5%+1%December trade+1.00%Matched ordinary hold+0.78%Average gross return per annual trade, SPY
Arithmetic means of gross open-to-open returns, SPY, 1999–2024, 26 trades. The hold is the mean of each trade's own session-length benchmark, not a trade you could place. Source: SeasonalEdge rule evaluator (MCP snapshot).
Average excess = average return − average matched hold
1.0049% − 0.7756% = 0.2293 percentage points per December

In one year, 2014, December made money and still fell short of an ordinary hold; in every other year that trailed holding, the month lost money outright.

Small gains most years, a few large losses

This is what holds the average down. 18 of 26 Decembers made money, but the eight that lost money lost more than a typical winner made: −3.83% on average, against +3.16%. The losing years were 2000, 2002, 2005, 2007, 2015, 2018, 2022 and 2024. The worst, 2018, returned −11.71% and trailed holding by 12.42 percentage points.

03 / Winners and losers

A losing December cost more, on average, than a winning one earned.

PositiveNegative
−6−4−20+2Average winning trade (18)+3.16%Average losing trade (8)−3.83%Average year above holding (17)+2.53 ppAverage year below holding (9)−4.11 ppGross return (%) for the first two rows; excess (pp) for the last two−5−2.50+2.5Average winning trade (18)+3.16%Average losing trade (8)−3.83%Average year above holding (17)+2.53 ppAverage year below holding (9)−4.11 ppGross return (%) for the first two rows;excess (pp) for the last two
Means of the 26 annual trades. Gross returns in percent; excess over the matched hold in percentage points. Each group is defined separately for its row.
Two views of the same 26 annual trades. Positive and negative groups are defined separately for each row.
MeasurePos / negAvg positiveAvg negativePayoffSum ratio
Gross trade returns18 / 8+3.16%−3.83%0.82×1.85×
Excess versus holding17 / 9+2.53 pp−4.11 pp0.61×1.16×

Payoff = mean positive ÷ absolute mean negative. Sum ratio = sum of positives ÷ absolute sum of negatives; for gross returns that is a profit factor only under an equal starting amount in every trade, not a cash account. For excess it is a descriptive ratio against an average benchmark, not the result of a hedged trade.

Three Decembers, 2002, 2018 and 2022, trailed holding by more than any year beat it. Removing a bad year from the record is not a way to avoid the next one, and 26 observations are too few to set a position size from.

17 Decembers above holding, 9 below

December fell short of its benchmark in 2000, 2002, 2005, 2007, 2014, 2015, 2018, 2022 and 2024. Five of those nine came in the second half of the sample. The best year, 1999, returned +6.67%, +5.86 pp above holding. The latest in the history, 2024, lost 1.93% and trailed holding by 2.70 pp.

04 / The complete sample

The largest shortfalls are 2002, 2018 and 2022.

Above holdingBelow holding
−15 pp−10 pp−5 pp0 pp+5 pp1999: +5.86 pp19992000: −1.32 pp2001: +0.89 pp012002: −7.26 pp2003: +4.26 pp032004: +2.56 pp2005: −0.9 pp052006: +1.05 pp2007: −1.34 pp072008: +3.38 pp2009: +1.04 pp092010: +5.16 pp2011: +2.2 pp112012: +1.61 pp2013: +1.37 pp132014: −0.27 pp2015: −4.5 pp152016: +1.78 pp2017: +0.94 pp172018: −12.42 pp20182019: +2.57 pp192020: +2.29 pp2021: +2.73 pp212022: −6.31 pp2023: +3.28 pp232024: −2.7 ppExcess per annual trade, percentage points−15 pp−10 pp−5 pp0 pp+5 pp1999: +5.86 pp19992000: −1.32 pp2001: +0.89 pp2002: −7.26 pp022003: +4.26 pp2004: +2.56 pp2005: −0.9 pp052006: +1.05 pp2007: −1.34 pp2008: +3.38 pp082009: +1.04 pp2010: +5.16 pp2011: +2.2 pp112012: +1.61 pp2013: +1.37 pp2014: −0.27 pp142015: −4.5 pp2016: +1.78 pp2017: +0.94 pp172018: −12.42 pp20182019: +2.57 pp2020: +2.29 pp202021: +2.73 pp2022: −6.31 pp2023: +3.28 pp232024: −2.7 ppExcess per annual trade, percentage points
Each bar is one December's return minus its own matched benchmark, percentage points. All 26 years shown, each under the year its December falls in. Blue is above holding, orange below. Not a cumulative return.

The typical December was well ahead; the average barely

The median December beat holding by +1.21 pp, several times the mean of +0.23 pp. A median far above the mean says the losing side holds the large observations: most Decembers were modestly ahead, and a few large shortfalls, 2002, 2018 and 2022, pulled the average towards zero.

Neither figure is a forecast of a normal December. The median says what the middle year looked like; it does not make the bad years less likely.

The same month on QQQ and IWM

IWM's history starts a year after SPY's and QQQ's, so this table uses the 25 Decembers all three share, 2000–2024, and each ETF keeps its own matched benchmark. That changes which years are counted, not how any benchmark is computed. For SPY, dropping 1999 is the same as dropping its best year, so its shared-year average is the +0.004 pp above.

December, shared years 2000–2024. Gross returns; excess in percentage points. Summaries computed from the evaluator's trades (derived).
ETFMean returnMatched holdMean excessMedian excessYears beatingWithout best year
SPY+0.78%+0.77%+0.004 pp+1.05 pp16 / 25−0.211 pp
QQQ−0.27%+0.98%−1.252 pp+0.19 pp13 / 25−1.501 pp
IWM+1.67%+0.83%+0.833 pp+2.12 pp16 / 25+0.414 pp

The three part ways. QQQ's December trailed holding on average: −0.11 pp on its own history, where 1999 alone beat holding by +28.43 pp, and −1.25 pp on the shared years without it. Its median year was still slightly ahead, +0.19 pp: the typical December was close to an ordinary hold, and a few large shortfalls put the average below it.

IWM's December did better: +0.83 pp a year on the shared years, +0.414 pp without its best year, 2023, and ahead of holding in 16 of 25. Its worst December, 2018, trailed holding by 14.86 percentage points, the same year as SPY's worst.

Three ETFs with overlapping holdings are not three independent tests, and picking the best-looking one from this table would be one more choice made with hindsight.

Every shared year, all three ETFs
Excess per December over each ETF's own matched hold, percentage points.
YearSPYQQQIWM
2000−1.32 pp−9.52 pp+5.64 pp
2001+0.89 pp−1.04 pp+5.73 pp
2002−7.26 pp−14.00 pp−7.65 pp
2003+4.26 pp+1.67 pp+0.65 pp
2004+2.56 pp+1.99 pp+2.12 pp
2005−0.90 pp−2.81 pp−1.31 pp
2006+1.05 pp−2.04 pp+0.27 pp
2007−1.34 pp−0.58 pp−0.94 pp
2008+3.38 pp+3.58 pp+7.81 pp
2009+1.04 pp+4.72 pp+7.49 pp
2010+5.16 pp+3.13 pp+6.11 pp
2011+2.20 pp+0.27 pp+2.67 pp
2012+1.61 pp+0.19 pp+4.50 pp
2013+1.37 pp+1.34 pp+0.77 pp
2014−0.27 pp−2.52 pp+2.73 pp
2015−4.50 pp−5.14 pp−8.00 pp
2016+1.78 pp+0.90 pp+2.80 pp
2017+0.94 pp+0.81 pp−0.30 pp
2018−12.42 pp−13.41 pp−14.86 pp
2019+2.57 pp+3.77 pp+2.37 pp
2020+2.29 pp+3.55 pp+7.06 pp
2021+2.73 pp−0.70 pp−0.32 pp
2022−6.31 pp−9.28 pp−6.90 pp
2023+3.28 pp+3.99 pp+10.89 pp
2024−2.70 pp−0.18 pp−8.53 pp

After the research cutoff, and what comes next

The history above stops at 31 December 2025. Trades completed since then are kept apart from it and listed here as they close, with the rule's next dates. They are not a forecast made in advance: the cutoff marks where the research data ends, not a date when this rule was chosen and recorded.

: 2026, out of sample

Every trade that closed after 2025-12-31, through 2026-10-19. None of them reached a figure above: this is the rule on prices it was not measured on. Gross, at the open.

Trades closed

1

1 of 1 up

Return, summed

+1.31%

Excess, summed

+0.50%

over holding SPY the same length

Position now

None

EntryExitReturnExcess
2025-12-012026-01-02+1.31%+0.81%+0.50%

Next trades

  1. Enter at the open of Dec 1, 2026, exit at the open of Jan 4, 2027
  2. Enter at the open of Dec 1, 2027, exit at the open of Jan 3, 2028
  3. Enter at the open of Dec 1, 2028, exit at the open of Jan 2, 2029

Every December, open to inspection

All 26 trades, including the nine that trailed holding. The holding column changes with the window's length.

All trades · 1999–2024
Gross open-to-open returns; excess in percentage points. New York exchange sessions.
YearEntry openExit openReturnMatched holdExcess
19991999-12-012000-01-03+6.67%+0.811%+5.86 pp
20002000-12-012001-01-02−0.58%+0.738%−1.32 pp
20012001-12-032002-01-02+1.63%+0.738%+0.89 pp
20022002-12-022003-01-02−6.48%+0.774%−7.26 pp
20032003-12-012004-01-02+5.07%+0.811%+4.26 pp
20042004-12-012005-01-03+3.37%+0.811%+2.56 pp
20052005-12-012006-01-03−0.13%+0.774%−0.90 pp
20062006-12-012007-01-03+1.79%+0.738%+1.05 pp
20072007-12-032008-01-02−0.60%+0.738%−1.34 pp
20082008-12-012009-01-02+4.19%+0.811%+3.38 pp
20092009-12-012010-01-04+1.85%+0.811%+1.04 pp
20102010-12-012011-01-03+5.97%+0.811%+5.16 pp
20112011-12-012012-01-03+2.98%+0.774%+2.20 pp
20122012-12-032013-01-02+2.34%+0.738%+1.61 pp
20132013-12-022014-01-02+2.14%+0.774%+1.37 pp
20142014-12-012015-01-02+0.54%+0.811%−0.27 pp
20152015-12-012016-01-04−3.69%+0.811%−4.50 pp
20162016-12-012017-01-03+2.55%+0.774%+1.78 pp
20172017-12-012018-01-02+1.68%+0.738%+0.94 pp
20182018-12-032019-01-02−11.71%+0.701%−12.42 pp
20192019-12-022020-01-02+3.35%+0.774%+2.57 pp
20202020-12-012021-01-04+3.10%+0.811%+2.29 pp
20212021-12-012022-01-03+3.54%+0.811%+2.73 pp
20222022-12-012023-01-03−5.53%+0.774%−6.31 pp
20232023-12-012024-01-02+4.02%+0.738%+3.28 pp
20242024-12-022025-01-02−1.93%+0.774%−2.70 pp

What this result cannot tell you

26 annual trades is a short record, and its two halves disagree. The excess is measured against an average of historical holds, so it is not a risk-adjusted return and not the result of a hedged position. No significance test or multiple-testing adjustment is supplied with this evidence, and December was not chosen at random: it is one of the most discussed months, which is why it is tested here.

All figures are gross, before trading costs and taxes. With an average excess this small, costs on the rule's side alone would take much of it; a fair comparison with holding would charge both sides.

Path risk is not measured. These are open-to-open returns over about a month. The evidence does not show how far a December fell before it ended; a trade that finished at −11.71% may have been lower along the way. The result is for the SPY ETF; it does not describe futures, leveraged funds or options.

The cause is not identified. Calendar studies describe when returns happened, not why: tax-year selling, holiday trading and year-end fund flows are explanations people offer, and nothing here tests them.

Test it yourself

Open the December rule in Check

Check runs this exact month on SPY with every trade, and lets you try another month, another symbol or the short side.

Open the December rule in Check

Needs a SeasonalEdge account; signing in returns you to this rule.

November on SPY, the month before, passed the same checks with more room. Get new research by email

Sources and research notes

  • Evidence: SeasonalEdge MCP check_rule, retrieved 2026-10-20 (query: SPY, QQQ, IWM; MOY; December; long), saved unchanged.
  • Rule IDs: SPY 0a65701db99b83e1; QQQ dc415e80319e86da; IWM 3592a67a2d2790af. Evaluator run scan_20261004T193904Z; research cutoff 31 December 2025; prices through 16 October 2026.
  • Derived figures: the latest-four-years average, the payoff table and the shared-year summaries are computed from the evaluator's trades; every other figure is an evaluator field.
  • Definitions: How SeasonalEdge research is computed and the glossary. All research.

December is tested as a fixed, widely discussed calendar question, not picked as the best month from a scan.

Join our newsletter

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