Seasonality in the Treasury Market Part 2
[WITH CODE] An investigation into a seasonal anomaly in the Treasury market
Reviewed and updated 20 July 2026
Hello!
Last week, we explored seasonality among Treasury securities. Today, we will be building off of that post and highlighting a historical, in-sample strategy backtest whose 5-year result has a Sharpe ratio above 1.3 before funding and transaction costs.
This strategy is based on our prior findings and on an academic paper that was highlighted in the previous post.
In the past, I have shown that calendar anomalies exist in the equity markets. Today, we will be analyzing these anomalies in the rates market.
Let’s get into it.
Introduction
Last week, we poked at Treasury seasonality by examining the basis-point changes in yield (not percent changes of a percent) over different months. We used 1977–present data on the 2s/5s/10s/30s and found a few takeaways:
Summer richening: on average, yields tended to fall (prices rise) through the summer months.
Monthly moves: February and November showed unusually large average moves, though much of that softened when we looked at medians instead of means.
Statistical signifiance: the only clearly significant monthly effect in our quick cut was a November rally in the 30-year.
Context matters: we flagged how academic papers found that auction cycles, index rebalancing, and funding mechanics can imprint predictable patterns on returns.
This week, we pivot from quick-and-dirty to paper-backed. The study that maps most directly to what we’re doing is Hartley & Schwarz (2019), “Predictable End-of-Month Treasury Returns.” Their core finding is that excess returns on coupon Treasuries are positive and highly significant only in the last few trading days of the month; at other times, they aren’t statistically different from zero. A simple “long only for the final days” strategy clocks an annualized Sharpe near 1. The authors attribute it to temporary demand spikes from window dressing and index rebalancing. The authors show that life insurers are large net buyers at month-end, especially of securities added to benchmark indices.
A few implementation details matter:
How they measure returns: buy a (zero-coupon) Treasury t trading days before month-end, finance at GC repo, sell on the last trading day; evaluate excess return = bond return – rolled overnight GC (weekends/holidays scaled).
The last 3–5 days deliver the largest average excess returns (e.g., ~0.25% per month for the 10-year over the last 3 days), but risk-adjusted performance peaks closer to 2–3 days. Net of the rest of the month, they argue the term premium is effectively earned at month-end.
Robustness across instruments: the same end-of-month effect shows up in on-the-run Treasuries (Sharpe ≈ 1 on the final day, similar to off-the-run), in Treasury futures (annualized excess returns >3% for the longest contract when held only for the final days), and in swaps (swap yields fall into month-end over the same t-day window).
Flows that line up with prices: on the final day, insurer net purchases of newly added index constituents exceed net purchases of everything else; life insurers in particular concentrate in >5-year duration adds. That’s exactly where you’d expect a price “richening.”
In the pages that follow, I’ll showcase a backtest that captures this anomaly, along with the typical performance and risk metrics.
As always, this is for educational purposes only and not financial advice.
Keep reading with a 7-day free trial
Subscribe to Alpha in Academia to keep reading this post and get 7 days of free access to the full post archives.

