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.
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.
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.
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.
Positive over the whole sample and the first half; negative since 2012.
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%.
December's average trade was a little above an ordinary month-long 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.
A losing December cost more, on average, than a winning one earned.
| Measure | Pos / neg | Avg positive | Avg negative | Payoff | Sum ratio |
|---|---|---|---|---|---|
| Gross trade returns | 18 / 8 | +3.16% | −3.83% | 0.82× | 1.85× |
| Excess versus holding | 17 / 9 | +2.53 pp | −4.11 pp | 0.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.
The largest shortfalls are 2002, 2018 and 2022.
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.
| ETF | Mean return | Matched hold | Mean excess | Median excess | Years beating | Without best year |
|---|---|---|---|---|---|---|
| SPY | +0.78% | +0.77% | +0.004 pp | +1.05 pp | 16 / 25 | −0.211 pp |
| QQQ | −0.27% | +0.98% | −1.252 pp | +0.19 pp | 13 / 25 | −1.501 pp |
| IWM | +1.67% | +0.83% | +0.833 pp | +2.12 pp | 16 / 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
| Year | SPY | QQQ | IWM |
|---|---|---|---|
| 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
| Entry | Exit | Return | Excess | |
|---|---|---|---|---|
| 2025-12-01 | 2026-01-02 | +1.31% | +0.81% | +0.50% |
Next trades
- Enter at the open of Dec 1, 2026, exit at the open of Jan 4, 2027
- Enter at the open of Dec 1, 2027, exit at the open of Jan 3, 2028
- 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
| Year | Entry open | Exit open | Return | Matched hold | Excess |
|---|---|---|---|---|---|
| 1999 | 1999-12-01 | 2000-01-03 | +6.67% | +0.811% | +5.86 pp |
| 2000 | 2000-12-01 | 2001-01-02 | −0.58% | +0.738% | −1.32 pp |
| 2001 | 2001-12-03 | 2002-01-02 | +1.63% | +0.738% | +0.89 pp |
| 2002 | 2002-12-02 | 2003-01-02 | −6.48% | +0.774% | −7.26 pp |
| 2003 | 2003-12-01 | 2004-01-02 | +5.07% | +0.811% | +4.26 pp |
| 2004 | 2004-12-01 | 2005-01-03 | +3.37% | +0.811% | +2.56 pp |
| 2005 | 2005-12-01 | 2006-01-03 | −0.13% | +0.774% | −0.90 pp |
| 2006 | 2006-12-01 | 2007-01-03 | +1.79% | +0.738% | +1.05 pp |
| 2007 | 2007-12-03 | 2008-01-02 | −0.60% | +0.738% | −1.34 pp |
| 2008 | 2008-12-01 | 2009-01-02 | +4.19% | +0.811% | +3.38 pp |
| 2009 | 2009-12-01 | 2010-01-04 | +1.85% | +0.811% | +1.04 pp |
| 2010 | 2010-12-01 | 2011-01-03 | +5.97% | +0.811% | +5.16 pp |
| 2011 | 2011-12-01 | 2012-01-03 | +2.98% | +0.774% | +2.20 pp |
| 2012 | 2012-12-03 | 2013-01-02 | +2.34% | +0.738% | +1.61 pp |
| 2013 | 2013-12-02 | 2014-01-02 | +2.14% | +0.774% | +1.37 pp |
| 2014 | 2014-12-01 | 2015-01-02 | +0.54% | +0.811% | −0.27 pp |
| 2015 | 2015-12-01 | 2016-01-04 | −3.69% | +0.811% | −4.50 pp |
| 2016 | 2016-12-01 | 2017-01-03 | +2.55% | +0.774% | +1.78 pp |
| 2017 | 2017-12-01 | 2018-01-02 | +1.68% | +0.738% | +0.94 pp |
| 2018 | 2018-12-03 | 2019-01-02 | −11.71% | +0.701% | −12.42 pp |
| 2019 | 2019-12-02 | 2020-01-02 | +3.35% | +0.774% | +2.57 pp |
| 2020 | 2020-12-01 | 2021-01-04 | +3.10% | +0.811% | +2.29 pp |
| 2021 | 2021-12-01 | 2022-01-03 | +3.54% | +0.811% | +2.73 pp |
| 2022 | 2022-12-01 | 2023-01-03 | −5.53% | +0.774% | −6.31 pp |
| 2023 | 2023-12-01 | 2024-01-02 | +4.02% | +0.738% | +3.28 pp |
| 2024 | 2024-12-02 | 2025-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.
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 CheckNeeds 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; QQQdc415e80319e86da; IWM3592a67a2d2790af. Evaluator runscan_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.