Santa Claus rally: do stocks really rise between Christmas and New Year?

US500 rose in 23 of the last 31 Santa Claus windows, by 0.78% on average, almost three times an ordinary seven sessions. Almost all of that edge came before 2010, and the last three windows all fell.

On this page
  1. What is the Santa Claus rally?
  2. Santa Claus rally dates for 2026
  3. Does the Santa Claus rally really happen?
  4. The Santa Claus rally has faded since 2010
  5. Where the gains come from, day by day
  6. If Santa fails to call: what came next
  7. Is there a Santa Claus rally outside the US?
  8. Track the Santa Claus rally with Python
  9. Using the Santa Claus rally in data work
  10. Questions

Key takeaways

  • The Santa Claus rally window is the last five US trading days of the year plus the first two of January. In 2026 it runs from Thursday 24 December to Tuesday 5 January 2027.
  • From 1995 to 2025, US500 rose in 23 of 31 windows, by 0.78% on average, against 0.28% for any seven sessions.
  • The edge belongs to the early years: +1.29% on average from 1995 to 2009, +0.30% from 2010 to 2025, a shade below an ordinary seven sessions’ +0.35%.
  • The last three windows, in 2023, 2024 and 2025, all fell; the years that followed the first two were up 23.3% and 16.4%.
  • The window also rose more often than not outside the US: DE40 rose in 26 of 36 years and HK50 in 25 of 36. Bitcoin, which trades through the holidays, rose in 5 of 9.

The Santa Claus rally is the tendency of stocks to rise over the last five trading days of the year and the first two of the next. It is real in the long record: from 1995 to 2025, US500, the large-cap US index, rose in 23 of those 31 seven-session windows, by 0.78% on average, close to three times what an ordinary seven sessions returned. But the edge has faded. Since 2010 the window has done no better than any other seven sessions, and it fell in each of the last three years.

The 2026 window opens on Thursday 24 December and closes on Tuesday 5 January 2027, measured from the close of Wednesday 23 December. US500 goes into it after a volatile autumn: at the 11 November close it was up 11.30% for the year and 2.55% below its 6 October record, after the early-November sell-off described in what is a stock market correction.

What is the Santa Claus rally?

The name and the definition come from Yale Hirsch, who spotted the pattern in 1972 and published it in his trading almanac. He picked a precise window rather than "December": the last five trading days of the year plus the first two trading days of January, seven sessions in all. The change is measured from the close before the first of them to the close of the second January session. He also gave it a warning that is quoted every December:

If Santa Claus should fail to call, bears may come to Broad and Wall.

Yale Hirsch, who named the Santa Claus rally in 1972

Broad and Wall is the corner of New York’s financial district where the city’s main stock exchange stands. Hirsch’s point was that a market which cannot rise in its seasonally easiest stretch may be in trouble. That claim is testable, and the data further down puts it to the test.

  • Tax selling endsInvestors sell losing positions before 31 December to book the loss for tax. Once that selling is done, prices have less in their way.
  • Thin holiday tradingMany institutional traders are away. With less volume, modest buying moves prices further, and there are fewer short sellers at their desks.
  • New money in JanuaryBonuses, pension contributions and fresh allocations arrive at the turn of the year, and funds put them to work in the first sessions of January.

None of these explanations has been proven, and they are not exclusive. What can be measured is whether the window beats any other seven sessions, and by how much.

Santa Claus rally dates for 2026

SessionDateNote
BaseWed 23 DecThe close the window is measured from
1Thu 24 DecEarly close, 1 p.m. New York
Fri 25 DecClosed, Christmas Day
2Mon 28 Dec
3Tue 29 Dec
4Wed 30 Dec
5Thu 31 DecLast session of 2026
Fri 1 JanClosed, New Year’s Day
6Mon 4 JanFirst session of 2027
7Tue 5 JanThe window closes
December 2026 and January 2027, from the US stock market calendar in GET /markets/holidays: Christmas Eve is an early close and Christmas Day and New Year’s Day are closed. Weekends are left out.

Holidays move the window from year to year. When Christmas falls on a Saturday the market closes on Friday 24 December; when New Year’s Day falls on a Saturday the market stays open on 31 December. The calendar below applies those rules for any year:

Santa Claus rally dates

Measured from the close of
Wednesday 23 December 2026
First day of the window
Thursday 24 December 2026
Last day of the window
Tuesday 5 January 2027
The seven sessions
Thu 24 Dec, Mon 28 Dec, Tue 29 Dec, Wed 30 Dec, Thu 31 Dec, Mon 4 Jan, Tue 5 Jan
Christmas Eve
In the window, with a 1 p.m. New York early close
Next window from today
…

The window is the last five US trading days of the year and the first two of the next, measured from the close before it. Christmas and New Year closures are applied as observed; unscheduled closures are not included.

Pick a December: the seven sessions, the close the window is measured from, and the next window from today. Unscheduled closures, such as a national day of mourning, are not included.

Does the Santa Claus rally really happen?

Every window from December 1995 to the one that ended on 5 January 2026, measured on US500 daily closes:

US500 over the Santa Claus window, by December

  • 1995+1.77%
  • 1996+0.15%
  • 1997+4.04%
  • 1998+1.32%
  • 1999-4.04%
  • 2000+5.70%
  • 2001+1.78%
  • 2002+1.25%
  • 2003+2.39%
  • 2004-1.82%
  • 2005+0.42%
  • 2006+0.00%
  • 2007-2.51%
  • 2008+7.45%
  • 2009+1.42%
  • 2010+1.07%
  • 2011+1.86%
  • 2012+2.04%
  • 2013+0.18%
  • 2014-2.96%
  • 2015-2.30%
  • 2016+0.43%
  • 2017+1.06%
  • 2018+1.29%
  • 2019+0.34%
  • 2020+1.00%
  • 2021+1.43%
  • 2022+0.80%
  • 2023-0.88%
  • 2024-0.53%
  • 2025-0.11%
From the close before the last five sessions of each December to the close of the second session of January. 2006 rose by 0.04 points, from 1,418.30 to 1,418.34.TickerLayer GET /indices/agg/US500/1/day, daily closes; santa_rally.py below reproduces every row.
  • 23 of 31Windows in which US500 rose, 1995 to 2025
  • +0.78%Average change over the seven sessions (median +1.00%)
  • +0.28%Average of any seven sessions over the same years, up 59.2% of the time
  • 3 in a rowWindows that fell, 2023 to 2025, the first such run since 1995

So the window was positive three times in four, against a little under three in five for any seven sessions, and its average was almost three times as large. The biggest gain came in the middle of a crisis: +7.45% from 23 December 2008 to 5 January 2009, about two months before the bottom of the 2007 to 2009 bear market. The almanac that named the rally reports the same shape over a longer record, an average of about 1.3% since 1950.

The Santa Claus rally has faded since 2010

Split the 31 years in two and the picture changes. From 1995 to 2009 the window beat an ordinary seven sessions by more than a full percentage point. From 2010 to 2025 it did slightly worse than one:

Average change, Santa Claus window against any seven sessions

  • Window, 1995 to 2009+1.29%
  • Any 7 sessions, 1995 to 2009+0.20%
  • Window, 2010 to 2025+0.30%
  • Any 7 sessions, 2010 to 2025+0.35%
US500. The window rose in 12 of 15 years from 1995 to 2009 and in 11 of 16 from 2010 to 2025; any seven sessions rose 56.4% and 62.1% of the time.Computed from TickerLayer daily bars, March 1995 to January 2026.

That is what happens to a well-known calendar pattern: once enough traders buy ahead of it, the gain moves earlier or disappears. The median since 2010 is still positive (+0.62%), so the window still rises more often than not, but by about as much as any other seven sessions in a market that mostly went up. Then came three misses in a row: -0.88% in 2023, -0.53% in 2024 and -0.11% in 2025, the first run of three in the data.

Where the gains come from, day by day

Averaging each session around the turn of the year shows that the window is not one steady climb. The gains sit in the days after Christmas and the first January session, while the last trading day of the year has been the weakest of the window:

Average US500 change by session, December 1995 to January 2026

  • Dec, 7th-last session+0.05%
  • Dec, 6th-last session+0.21%
  • Dec, 5th-last session+0.15%
  • Dec, 4th-last session+0.32%
  • Dec, 3rd-last session+0.04%
  • Dec, 2nd-last session+0.08%
  • Last session of the year-0.20%
  • Jan, 1st session+0.26%
  • Jan, 2nd session+0.13%
  • Jan, 3rd session+0.04%
Each session’s close-to-close change, averaged over 31 years; the seven Santa Claus sessions are in colour. The average US500 session over the whole period gained 0.04% and rose 53.9% of the time; the last session of the year rose in only 10 of 31.TickerLayer daily bars, US500.

The weak last day fits the tax-selling and rebalancing explanations: some funds and investors sell on the final session to close their books, then buy back in January. For a trader the lesson is about measurement: a window that includes 31 December carries a session that fell in 21 of 31 years.

December stock market performance, and the rest of the year

December as a whole has been a good month but not the best one. Across complete months from April 1995 to October 2026, US500 rose in 21 of 31 Decembers, by 0.89% on average. November was stronger, and the much-quoted January effect barely shows in a large-cap index:

Average US500 change by calendar month, 1995 to 2026

  • January+0.45%
  • February-0.28%
  • March+0.90%
  • April+2.05%
  • May+0.93%
  • June+0.43%
  • July+1.31%
  • August-0.38%
  • September-0.52%
  • October+1.47%
  • November+2.54%
  • December+0.89%
Month-end close to month-end close, 31 or 32 observations per month. November rose in 25 of 31 years, the best record of any month. February, August and September averaged a loss, though each had a median above zero.TickerLayer daily bars, US500, April 1995 to October 2026.

If Santa fails to call: what came next

Hirsch’s warning says a negative window points to a weak year. In the US500 data the window fell eight times. The following January and calendar year:

DecWindowJanuaryNext year
1999-4.04%-5.09%-10.14%
2004-1.82%-2.53%+3.00%
2007-2.51%-6.12%-38.49%
2014-2.96%-3.10%-0.73%
2015-2.30%-5.07%+9.54%
2023-0.88%+1.59%+23.31%
2024-0.53%+2.70%+16.39%
2025-0.11%+1.37%+11.30%
Dec: the December the window started in. January: last close of December to last close of January. Next year: the calendar year that followed; for 2026, the change to the close of 11 November.

The warning has two famous hits: the misses of December 1999 and December 2007 came at the start of the bear markets of 2000 to 2002 and 2007 to 2009. After the first five misses, January fell every time. The recent record is the opposite: the last three misses were followed by Januarys that rose and by years of +23.3%, +16.4% and, so far, +11.3%. After the 23 windows that rose, the next year was up 18 times, with a median of +16.3%.

Is there a Santa Claus rally outside the US?

The same window, on each market’s own trading days, for six major indices with a full year-end history in TickerLayer daily bars. The holidays differ: German exchanges close on 24 and 31 December, Hong Kong on 25 and 26 December, and Tokyo from 31 December to 3 January. Every one of them rose more often than not:

IndexUpAverageAny 7
US50023 of 31+0.78%+0.28%
US10018 of 31+1.31%+0.44%
US3024 of 31+0.74%+0.25%
DE4026 of 36+1.45%+0.26%
JP22523 of 36+0.96%+0.11%
HK5025 of 36+1.83%+0.25%
Windows from December 1990 (US indices from 1995) to the one that ended in January 2026. Any 7: the average change over any seven sessions of the same index.

Outside the US the window looks stronger still: for DE40, JP225 and HK50 its average was 6 to 9 times that of any seven sessions, against under three times for US500, partly because those indices rose less over the whole period, which keeps the ordinary seven sessions small. Bitcoin, which trades through the holidays, shows no such pattern: over the US window dates from 2017 to 2025 it rose 5 times in 9 with a median of +0.17%, and its +4.41% average comes entirely from one +46% run in 2020; without it the average is -0.80%.

Track the Santa Claus rally with Python

santa_rally.py pulls US500 daily bars from 1995 in three requests (a daily request can span at most 5,000 days), finds each year’s last five December sessions and first two January ones from the bars themselves, and compares the window with any seven sessions. It needs Python 3.9 or newer, the standard library and a TICKERLAYER_API_KEY environment variable. Change SYMBOL to run it on another index.

santa_rally.pyPython
"""The Santa Claus rally window for every year since 1995, against an ordinary seven sessions. Python 3.9+, standard library."""
import json
import os
import statistics
import sys
import urllib.request
from datetime import date, datetime, timedelta, timezone

API = "https://api.tickerlayer.com"
KEY = os.environ.get("TICKERLAYER_API_KEY") or sys.exit("Set TICKERLAYER_API_KEY first.")
SYMBOL, START, END = "US500", date(1995, 1, 1), date(2026, 11, 11)


def daily_closes():
    """Daily closes, oldest first, in windows of 4,900 days (a request may span at most 5,000)."""
    out, start = [], START
    while start <= END:
        stop = min(END, start + timedelta(days=4899))
        url = f"{API}/indices/agg/{SYMBOL}/1/day/{start}/{stop}?sort=asc&limit=5000"
        req = urllib.request.Request(url, headers={"x-api-key": KEY})
        with urllib.request.urlopen(req, timeout=30) as resp:
            out += [(datetime.fromtimestamp(b["t"] / 1000, timezone.utc).date(), b["c"]) for b in json.load(resp)["results"]]
        start = stop + timedelta(days=1)
    return out


closes = daily_closes()
index = {d: i for i, (d, _) in enumerate(closes)}
windows = []
for year in range(START.year, END.year):
    december = [d for d, _ in closes if d.year == year and d.month == 12]
    january = [d for d, _ in closes if d.year == year + 1 and d.month == 1]
    if len(december) < 6 or len(january) < 2:
        continue  # the series must hold the close before the window and both January sessions
    base, first, last = december[-6], december[-5], january[1]  # 5 sessions in December, 2 in January
    windows.append((year, first, last, (closes[index[last]][1] / closes[index[base]][1] - 1) * 100))
for year, first, last, change in windows:
    print(f"{year}  {first:%d %b} to {last:%d %b %Y}  {change:+6.2f}%")
ordinary = [(closes[i + 7][1] / closes[i][1] - 1) * 100 for i in range(len(closes) - 7)]
for label, rows in (("1995-2009", windows[:15]), ("2010-2025", windows[15:]), ("all years", windows)):
    moves = [r[3] for r in rows]
    print(f"{label}: up in {sum(m > 0 for m in moves)} of {len(moves)}, average {statistics.mean(moves):+.2f}%, median {statistics.median(moves):+.2f}%")
print(f"any 7 sessions: up {sum(m > 0 for m in ordinary) / len(ordinary):.1%} of the time, average {statistics.mean(ordinary):+.2f}%")
python santa_rally.py
1995  22 Dec to 03 Jan 1996   +1.77%
1996  24 Dec to 03 Jan 1997   +0.15%
1997  24 Dec to 05 Jan 1998   +4.04%
1998  24 Dec to 05 Jan 1999   +1.32%
1999  27 Dec to 04 Jan 2000   -4.04%
2000  22 Dec to 03 Jan 2001   +5.70%
2001  24 Dec to 03 Jan 2002   +1.78%
2002  24 Dec to 03 Jan 2003   +1.25%
2003  24 Dec to 05 Jan 2004   +2.39%
2004  27 Dec to 04 Jan 2005   -1.82%
2005  23 Dec to 04 Jan 2006   +0.42%
2006  22 Dec to 04 Jan 2007   +0.00%
2007  24 Dec to 03 Jan 2008   -2.51%
2008  24 Dec to 05 Jan 2009   +7.45%
2009  24 Dec to 05 Jan 2010   +1.42%
2010  27 Dec to 04 Jan 2011   +1.07%
2011  23 Dec to 04 Jan 2012   +1.86%
2012  24 Dec to 03 Jan 2013   +2.04%
2013  24 Dec to 03 Jan 2014   +0.18%
2014  24 Dec to 05 Jan 2015   -2.96%
2015  24 Dec to 05 Jan 2016   -2.30%
2016  23 Dec to 04 Jan 2017   +0.43%
2017  22 Dec to 03 Jan 2018   +1.06%
2018  24 Dec to 03 Jan 2019   +1.29%
2019  24 Dec to 03 Jan 2020   +0.34%
2020  24 Dec to 05 Jan 2021   +1.00%
2021  27 Dec to 04 Jan 2022   +1.43%
2022  23 Dec to 04 Jan 2023   +0.80%
2023  22 Dec to 03 Jan 2024   -0.88%
2024  24 Dec to 03 Jan 2025   -0.53%
2025  24 Dec to 05 Jan 2026   -0.11%
1995-2009: up in 12 of 15, average +1.29%, median +1.32%
2010-2025: up in 11 of 16, average +0.30%, median +0.62%
all years: up in 23 of 31, average +0.78%, median +1.00%
any 7 sessions: up 59.2% of the time, average +0.28%

The script reads the trading days from the bars, so holidays need no calendar: 2006 ends on 4 January 2007 because the market closed on 2 January for a national day of mourning. To add the 2026 window, run it after 5 January 2027 with END moved forward.

Using the Santa Claus rally in data work

  • Fix the window first. "Late December" is not the Santa Claus rally; the seven sessions and the base close are defined, and a test that drifts a day either side measures something else.
  • Compare with any seven sessions. A market that rises over time makes most seven-session windows positive; the question is whether this one beats them.
  • Watch the half days. The 24 December session closes at 1 p.m. New York time; intraday bars after that are empty, and volume is a fraction of a normal day.
  • Read dates in the market’s time zone. A daily bar is stamped by its trading date; a UTC timestamp can push a late session onto the next day. See Unix timestamps.
  • Price or total return. Index levels leave out dividends, a few hundredths of a percent over seven sessions; fund prices drop on ex-dividend dates, many of which fall in late December.
  • Keep the sample in view. 31 windows and 8 misses: every conclusion here rests on a handful of years.

Questions

What is the Santa Claus rally?

The tendency of stocks to rise over the last five trading days of the year and the first two of January, measured from the close before the window. Yale Hirsch named it in 1972.

When is the Santa Claus rally in 2026?

From Thursday 24 December 2026 to Tuesday 5 January 2027, measured from the close of Wednesday 23 December. The market closes early on 24 December and is shut on 25 December and 1 January.

How often does the Santa Claus rally happen?

US500 rose in 23 of the 31 windows from 1995 to 2025, by 0.78% on average. Since 2010 it rose in 11 of 16, by 0.30% on average, about what any seven sessions returned.

Was there a Santa Claus rally in 2025?

No. US500 fell 0.11% from 23 December 2025 to 5 January 2026, after -0.53% a year earlier and -0.88% in the 2023 window: three misses in a row, a first in data since 1995.

What does it mean if there is no Santa Claus rally?

The old warning says a weak year may follow. Of the eight misses since 1995, those of 1999 and 2007 came at the start of bear markets, but the years after the 2023 and 2024 misses rose 23.3% and 16.4%.

Is December a good month for stocks?

Usually: US500 rose in 21 of 31 Decembers from 1995 to 2025, by 0.89% on average. November was stronger, rising in 25 of 31 years by 2.54% on average.

Ready to integrate?

Create an account, explore the docs, and connect via REST or WebSocket in minutes.