Strasmore Research
Deep Dives Matt ConnorBy Matt Connor

The January Effect: Does It Still Work?

The January effect claims small caps rally after year end. Here is the mechanism behind it, and why a documented anomaly usually shrinks after publication.

The January effect is the claim that stock returns run unusually high in the first weeks of the year, with the smallest and most beaten-down names leading. It was documented in 1976 on data reaching back to 1904, and the gap reported then made it the most famous seasonal pattern in equities. What happened next is the part most seasonality pages skip: the finding was published, the people who trade read it, and every measurement taken since has come back smaller.

What is the January effect?

Two calendar mechanics sit underneath the story, and both are about the boundary at December 31 rather than about January itself.

The first is tax-loss selling. US tax rules let an investor subtract a realized loss from realized gains in the same tax year, and the books for that year close on the last session of December. The proposed sequence runs in that order: through the final weeks of December, selling concentrates in the positions an investor is already down on, which skew small and unloved. In the first sessions of January that selling stops, and buying returns to the same names.

The second is the calendar of cash. Year-end bonuses and new-year retirement contributions arrive in the same window.

Neither mechanic points at the largest companies in the market. Both point at the small end, which is where this page keeps returning. The window itself is visible in plain participation data. The panel below takes SPY, the most heavily traded fund tracking the S&P 500, and averages its daily share volume by calendar date from December 21 through January 10 across the sessions since 2011.

QuerySPY share volume around the turn of the year, averaged since 2011
The exact SQL behind every number
SELECT
    concat(
        if(toMonth(date) = 12, 'Dec ', 'Jan '),
        if(toDayOfMonth(date) < 10, concat('0', toString(toDayOfMonth(date))), toString(toDayOfMonth(date)))
    )                                      AS label,
    round(avg(toFloat64(volume)) / 1e6, 1) AS avg_volume_millions,
    round(avg(toFloat64(volume)) / (
        SELECT avg(toFloat64(volume))
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2011-01-01'
          AND date <  '2026-08-01'
    ), 2)                                  AS relative_activity
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
  AND date >= '2011-01-01'
  AND date <  '2026-08-01'
  AND ((toMonth(date) = 12 AND toDayOfMonth(date) >= 21)
    OR (toMonth(date) = 1  AND toDayOfMonth(date) <= 10))
GROUP BY toMonth(date), toDayOfMonth(date)
ORDER BY if(toMonth(date) = 12, 0, 1), toDayOfMonth(date)
Run this yourself

Dec 21 averaged 126.2 million shares, or 1.24 times the average SPY session over the same years. Jan 10 averaged 90 million, at 0.89 times typical. The 19 dates in the panel trace the holiday stretch and the first sessions of the new year.

Volume is participation, not return. This page publishes no January return figure of its own, and that is deliberate: a fresh in-sample calculation of a famous seasonal is the fastest way to repeat the error that made the seasonal famous.

Why small caps and equal weighting decide the answer

An index number is an average, and the weighting scheme decides whose returns count. A cap-weighted index weights every company by its market value, so the largest names set the number and the smallest round to nothing. An equal-weighted index of the same companies gives a $200 million company the same vote as a $2 trillion one.

The 1976 study that put the January effect on the map, by Michael Rozeff and William Kinney, measured an equal-weighted index of NYSE stocks from 1904 to 1974. The figure repeated ever since is that the average January ran about five times the average of the other months. In a cap-weighted version of that same universe the small names carry a fraction of a percent of the weight, and the two constructions can report very different Januaries from identical underlying prices. The construction carries most of the claim. For what else moves a monthly number before anyone interprets it, see how monthly returns are measured.

Size also sets what a paper premium costs to capture. Dollar volume, the day's share count multiplied by the price, is the plainest measure of how much room a name has. The panel groups every symbol with at least fifteen sessions on the tape in June 2026 by its average dollar volume.

QueryThe tape by average dollar volume, June 2026
The exact SQL behind every number
WITH per_symbol AS
(
    SELECT
        ticker,
        avg(toFloat64(close) * toFloat64(volume)) AS adv_dollars
    FROM global_markets.stocks_daily_aggs
    WHERE date >= '2026-06-01'
      AND date <  '2026-07-01'
    GROUP BY ticker
    HAVING count() >= 15
)
SELECT
    multiIf(
        adv_dollars <    100000, '1. under $100k',
        adv_dollars <   1000000, '2. $100k to $1M',
        adv_dollars <  10000000, '3. $1M to $10M',
        adv_dollars < 100000000, '4. $10M to $100M',
                                 '5. over $100M')  AS liquidity_bucket,
    count()                                        AS securities_count,
    round(100 * count() / (
        SELECT count()
        FROM
        (
            SELECT ticker
            FROM global_markets.stocks_daily_aggs
            WHERE date >= '2026-06-01'
              AND date <  '2026-07-01'
            GROUP BY ticker
            HAVING count() >= 15
        )
    ), 1)                                          AS share_of_tape_pct
FROM per_symbol
GROUP BY liquidity_bucket
ORDER BY liquidity_bucket
Run this yourself

1808 securities averaged under $100,000 of dollar volume a day, 15.1 percent of the sample. At the other end, 1429 averaged more than $100 million. A published seasonal premium is measured on closing prices. Capturing one down in the thin bucket means crossing the spread between the bid and the offer twice, plus the price your own order moves. A monthly return series shows none of that.

Does the January effect still work?

The honest answer: the version measured after 1976 is a fraction of the version measured before it, and a documented anomaly usually follows that shape. The life cycle runs in four steps. A pattern is found in historical data. It gets published. Readers who trade move earlier, buying in December ahead of the window everyone has now read about. What later studies measure is whatever is left over. Research since the 1980s has generally found the January premium narrower in the decades after publication, with part of the seasonal shifted back into December.

The tax mechanic has thinned alongside it. A large share of small-cap stock now sits in retirement accounts and index funds. A tax-deferred account has no tax-loss motive at all, and an index fund sells on rules rather than on a calendar tax position.

None of this is specific to January. Sell in May and go away runs on the same machinery: a striking historical split, with the story attached afterwards. The low volatility anomaly is the interesting contrast, carrying a long post-publication record that seasonal claims almost never have.

Twelve months is a lot of tests

Here is the arithmetic that settles most seasonal arguments. One broker's education page reports that July has closed higher in roughly 80 percent of the last twenty years. Twenty observations, sixteen of them up.

Treat months as fair coin flips for a moment. Sixteen or more heads in twenty flips comes up about 0.6 percent of the time, a genuinely rare run. Now run that same test across all twelve months: the chance that at least one month clears the bar rises to about 7 percent. A seasonality page usually reports several statistics per month, average return, median return, hit rate, best and worst year, which pushes the count of tests into the dozens. At that point a reading like July's is what you would expect to find somewhere on the grid. Equity months are not fair coins either. They lean positive over long samples, which lifts every month's hit rate before a seasonal story is told at all.

The January effect was found the same way, by examining twelve months and naming the winner afterwards. A search reports the maximum of many tests. That is a different quantity from the significance of one test chosen in advance. The sample underneath all of it is small: each January on the daily tape holds roughly twenty sessions.

QueryEvery January on the daily tape, in trading sessions
The exact SQL behind every number
SELECT
    toString(toYear(date)) AS year,
    count()                AS january_sessions
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
  AND toMonth(date) = 1
GROUP BY year
ORDER BY year
Run this yourself

The record here covers 23 Januaries, from 2004 through 2026, and the most recent one held 20 sessions. Twenty-odd observations is the entire modern sample for any statement of the form 'January does X'. A sample that size is consistent with a wide range of true values, and the confidence attached to seasonal claims tends to run far ahead of it.

Look-ahead bias and survivorship bias, the two siblings

Two further failure modes sit next to multiple testing, and both flatter a seasonal in a backtest.

Look-ahead bias in backtesting is the use of information a test could not have had at the time. A January rule written today and applied to 1985 already knows which month won.

Survivorship bias in stock data is the quieter problem for this particular anomaly. Build a small-cap universe from the names trading today and every company that was delisted or acquired has already been dropped. Those skew toward the beaten-down small names the tax-loss story is about, so the test runs on the survivors of exactly the group under study. The universe is not a fixed list.

QueryDistinct symbols printing at least one session, by year
The exact SQL behind every number
SELECT
    toString(toYear(date)) AS year,
    uniqExact(ticker)      AS listings_on_tape
FROM global_markets.stocks_daily_aggs
WHERE date >= '2006-01-01'
  AND date <  '2026-01-01'
GROUP BY year
ORDER BY year
Run this yourself

9450 distinct symbols printed at least one session in 2006. In 2025 the count was 13423, across 20 years of tape. Membership churns underneath those totals as listings arrive and names leave, and a universe pulled from today's tape holds none of the departures. Symbols get reused as well, which is its own trap: see why ticker symbols break datasets.

Four questions to ask of any seasonal claim

  1. What is the sample period, and what does the pattern look like outside it? A split that needs 1904 to 1974 to appear is a different claim from one measured on the last twenty years.
  2. Which index, and weighted how? Cap-weighted and equal-weighted versions of one universe can disagree sharply on a small-company seasonal.
  3. Was the rule fixed before the data was searched, or found by looking? Both routes can produce the same hit rate. They carry very different evidence.
  4. What survives costs? Spreads and market impact in the thin end of the tape, plus the fact that everyone else has read the same page.

A seasonal claim that answers all four is worth reading closely. Most answer none of them.

How these panels are built
  • SPY stands in for the broad market in the turn of year panel: its volume reads as participation across the whole index rather than as news about one company.
  • That panel covers December 21 through January 10 on sessions from 2011 onward. December 25 and January 1 never appear, since the market is closed on both.
  • The universe panel counts distinct symbols with at least one printed session in a calendar year. It counts symbols, not companies.

FAQ

What is the January effect in the stock market?

It is the claim that share prices, small companies above all, rise more in the first weeks of January than in a typical month. The 1976 study behind it measured an equal-weighted NYSE index covering 1904 to 1974, where the average January was reported at roughly five times the average of other months.

Does the January effect still work?

Measurements taken after the 1976 publication are much smaller than the original, and part of the seasonal shifted into December as participants moved earlier. Any current claim needs its own sample period and its own index construction, both stated up front. This page is educational and presents no rule to trade.

Why was the January effect strongest in small companies?

Both mechanics point there. Tax-loss selling concentrates in positions already down on the year, which skew small, and a given amount of buying moves a thinly traded stock much further than a mega cap. An equal-weighted index then gives those small names full voting weight, while a cap-weighted index gives them almost none.

Is the January effect the same thing as sell in May?

They are different windows of the same genre: a calendar split found in historical data, with a story attached afterwards. Both need the same evidence before they mean anything, starting with a sample period chosen ahead of the test rather than after it.


Every panel here carries the SQL that produced it, so any window above can be re-cut on a different ticker or a longer range. To put a seasonal claim to the test on a sample you pick yourself, ask the question in plain English on the Strasmore terminal.

#seasonality#january effect#small caps#anomalies#backtesting