Sector Seasonality: The Real-Economy Drivers That Make Energy Rally in Spring

May 8, 2026 - 8 min read - TradeWave Research

Sector-level seasonal patterns are unusual among market anomalies: they have plausible economic mechanisms behind them. Driving season, retail holidays, harvest cycles, and weather patterns each leave traceable footprints in equity prices. Here's the map.

seasonalitysectorsfundamentalsacademic

Energy stocks really do tend to firm up ahead of summer driving season. Retailers really do book a disproportionate share of the year’s revenue between Halloween and Christmas. Utilities really do burn more megawatt-hours when the air-conditioners run. Most calendar anomalies are statistical curiosities in search of a story: the January effect, the day-of-week effect, the turn-of-the-month effect were each found in the data first and explained afterward, and researchers still argue about which story is right. Sector seasonality is the rare exception. The patterns you see at the sector-ETF level trace back to real-economy cash flows. The market is forward-looking, but it is not so forward-looking that it ignores recurring annual demand cycles.

This article maps the major sectors against the underlying drivers, with the academic context and the caveats every retail investor should keep in mind before assuming the pattern that worked last year will work next year.

Why sector patterns differ from index calendar effects

A pure calendar anomaly like the Halloween effect (Bouman and Jacobsen, 2002) operates at the broad index level and has no obvious real-economy mechanism. The summer-versus-winter return gap is documented across 37 markets, but the explanation - vacation-driven risk aversion, shifts in attention - is still a hypothesis. Sector seasonality is the opposite. Each sector index aggregates companies whose revenues are tied to weather, holidays, harvests, or fiscal calendars. When the cash-flow seasonality is clear, the equity seasonality tends to follow, with the usual lead-lag distortions from the market pricing in expected results before they print.

Cooper, Mitrache, and Priestley (2022) “A Global Macroeconomic Risk Model for Value, Momentum, and Other Asset Classes” formalises some of the linkages between commodity-cycle states and cross-sectional sector returns. The broader academic literature on cross-sectional return seasonality begins with Heston and Sadka (2008) “Seasonality in the Cross-Section of Stock Returns” in the Journal of Financial Economics; that paper is the subject of our companion article on combining seasonality with momentum.

Energy: the spring rally and the autumn drift

The cleanest sector seasonal in U.S. equities sits in the Energy sector. The XLE basket, which mixes integrated majors, exploration and production names, and refiners, tends to perform well from late winter into early summer and then weaken into autumn. The mechanism is straightforward.

Refinery turnaround season concentrates in February through April: U.S. refineries take down units to switch from winter-grade to summer-grade gasoline, perform maintenance, and prepare for peak driving demand. EIA data shows U.S. refinery utilization dipping into the low 80% range in the spring trough before climbing into the mid-90s by July as the system runs flat-out for summer. Crack spreads, the refining margin between crude inputs and gasoline outputs, widen alongside the demand expectations.

Equity prices anticipate this. By the time refineries are actually printing peak utilization in July, the trade is often crowded and the names are giving back gains. Inventory builds through autumn (post-driving-season demand collapse, plus pre-winter stocking of distillates) put pressure on margins, and the fall window historically underperforms.

Important caveat: the XLE ETF is not a pure refining play. Integrated majors (Exxon, Chevron) dominate the weight; they have downstream exposure but also upstream production whose economics track Brent and WTI rather than crack spreads. Pure refiners (Valero, Marathon Petroleum, Phillips 66) show the cleanest seasonal pattern. E&P names (Devon, EOG) trade more on rig counts and commodity-price expectations. Always check what is actually in the basket before assuming a “sector” pattern applies to a name you hold.

Consumer Discretionary: Halloween through Christmas

Consumer Discretionary, represented by XLY, has the most intuitive seasonal pattern. U.S. retailers earn a disproportionate share of annual revenue in the November-December holiday period. The National Retail Federation regularly reports holiday sales as roughly 19% of annual industry revenue, and for some specialty retailers the concentration is far higher.

The market prices this in advance. The XLY pattern shows constructive returns from late summer through Q4, with the strongest period typically running from October into mid-December. A secondary, smaller pattern appears in late July and August around back-to-school spending, which is the second-largest seasonal demand cycle in U.S. retail.

The post-Christmas window is more mixed. Once holiday results are previewed in early-January retailer updates, the market often sells the news. The first few weeks of the calendar year frequently underperform for the sector, particularly if consumer confidence or discount-rate concerns rotate to centre stage.

Industrials: the January capex reset

Industrials, represented by XLI, show a milder but observable January effect at the sector level. The mechanism is corporate capital-budget cycles. Most large U.S. companies finalise capital plans in Q4 and begin executing in January and February, which feeds order books at industrial machinery, automation, and engineering names. Machinery distributors and component suppliers see the bulk of new bookings in Q1.

The XLI pattern is weaker than XLE or XLY because Industrials is a heterogeneous sector: aerospace cycles on multi-year delivery schedules, transports trade on freight rates and fuel costs, and defense names trade on appropriations rather than capex. The aggregate seasonal pattern reflects the average of several different cash-flow calendars, which dilutes any single pattern.

Sector seasonality heatmap
Illustrative monthly excess return by sector vs S&P 500. Real values vary by sample period; the qualitative shape (Energy spring, Cons. Disc. Q4, Tech Q4) is well-documented.

Utilities: defensive rotation, not earnings seasonality

Utilities (XLU) is the sector most often misread on a seasonal basis. Operationally, utility revenue does peak in Q3 (summer cooling demand) and Q1 (winter heating in gas-distribution names). But the equity seasonal pattern does not track quarterly EPS; it tracks the macro rotation cycle. Investors buy XLU when they want defensive yield exposure, typically in environments where rates are stable or falling and equity volatility is rising.

The result is that XLU’s seasonal pattern is largely an artifact of when defensive rotation tends to happen in a given year. In late-cycle macro environments, Utilities outperform broadly; in early-cycle, they underperform regardless of the underlying weather-driven revenue. The lesson: do not confuse fundamental seasonality (real cash-flow timing) with equity seasonality (when investors choose to own the sector).

Technology: Q4 enterprise budget flush and Apple gravity

Technology (XLK) shows a Q4 seasonal bias, which most observers attribute to two factors. First, the enterprise software calendar concentrates closing in Q4 as customer fiscal-year budgets get spent before the December cutoff; this bumps revenue at large software vendors. Second, holiday hardware demand (smartphones, PCs, gaming) drives device-cycle revenue at Apple and a handful of other large names.

The wrinkle: XLK is dominated by a small number of mega-cap names. As of recent rebalances, Apple and Microsoft alone have approached or exceeded 40% of the basket. The “sector” seasonal pattern is heavily driven by the seasonal characteristics of those individual companies, particularly Apple’s iPhone-launch cycle. Generalising from XLK to “Technology” is therefore risky. A pure semiconductor sub-basket (SMH or SOXX) shows quite different seasonal characteristics, weighted more by capex cycles at major foundries and OEM order patterns.

Financials, Materials, Healthcare: weaker patterns at the index level

Financials (XLF) has no strong sector-level seasonal pattern, mostly because the sector aggregates very different business models. Money-centre banks trade on rates and credit; insurers trade on catastrophe seasonality and reserve-release cycles; asset managers trade on flows. At the sub-sector level, mortgage finance has a clear spring-summer pattern tied to the U.S. home-buying season, and consumer credit names show Q4 spending ramps. The aggregate, though, is mostly noise.

Materials (XLB) and the agricultural producers within it track underlying commodity cycles. Fertiliser names move on planting decisions; mining names move on weather risk and construction-season metal demand. These patterns do exist, but they are commodity patterns first and equity patterns second.

Healthcare (XLV) shows a mild January effect attributed to the U.S. health-insurance plan-year reset (deductibles renew in January, depressing utilization for a few weeks). It also shows election-year volatility around proposed policy reforms. Neither effect is large enough to support a stand-alone seasonal trade at the sector level.

Caveats: what the heatmap does not show

A clean monthly heatmap of average sector returns is the kind of chart that ends up in marketing material because it tells a tidy story. The reality is messier in three ways.

First, sector ETFs are not pure single-industry exposures. The seasonal pattern of XLE is the weighted average of refiners, integrated majors, and E&P names, each of which has its own calendar. The pattern of XLK is dominated by a handful of mega-caps. Sector ≠ industry ≠ company. Always check what is actually in the basket before trading the headline pattern.

Second, regime breaks happen. The 2008 financial crisis broke many “normal” sector patterns for several years. The COVID period in 2020 broke essentially all of them: Consumer Discretionary in March 2020 looked nothing like a typical Q1; Energy in April 2020 saw negative oil prices and unprecedented refinery shutdowns. Including those years in a long-run seasonal average distorts the pattern in ways that are sensitive to whether and how you choose to clean the data.

Third, the seasonal pattern visible in raw returns can shift when you control for risk. Some of what looks like a sector seasonal is actually exposure to broader factor patterns (size, value, momentum) that themselves have seasonality. Heston and Sadka (2008) and the cross-sectional follow-up literature show that controlling for individual-stock characteristics absorbs a meaningful fraction of what naive sector heatmaps display.

Doing the same-month rank. The Heston and Sadka method comes down to one question: how has this name actually performed in this specific calendar month, year after year? A viewer that lays out per-year bars for a date range (TradeWave's Wave Viewer at /app/, or any seasonal-pattern tool) turns that into a glance instead of a spreadsheet afternoon.

Practical takeaway

Sector seasonality is the easiest entry point into seasonal investing because the mechanisms are intuitive. Driving season is a real demand event. Christmas is a real revenue event. Plan-year resets are real institutional events. That intuition is helpful for understanding the market, but it has three implementation traps.

First, measure your own data over a window you trust. The 1990-2026 average is not the same as the 2010-2026 average, and neither is the same as the post-2020 average. Choose your sample period deliberately and check how sensitive the pattern is to it. This is exactly the dial TradeWave’s Wave Viewer exposes: set the lookback anywhere from 1 to 99 years, calendar or election-cycle, and watch how the per-year bars and the shape of the pattern move as you change it.

Second, test for regime breaks. The post-2008 era and the post-COVID era look different from earlier periods on most sectors, and any strategy that pretends otherwise is averaging across regimes that do not belong in the same bucket.

Third, remember that sector ETF, sector industry, and individual stock are three different things. The XLE pattern is not the Valero pattern is not the Exxon pattern. If you trade the basket, you get the average; if you trade a name, you need to verify the name has the pattern, not just the sector.

The academic case for sector seasonality is among the strongest in the calendar-anomaly literature precisely because the mechanisms are observable. That is the upside. The downside is that the same observability means the patterns are widely known, and at any moment a meaningful fraction of the trade is already priced in. These are tendencies with a hit-rate, not guarantees. Pull the window, read the bars, and judge for yourself - then use sector seasonality as a context filter, not as a stand-alone trade.

Continue reading