Futures Seasonality by Month: Which Months Rise Across 30 Contracts

Updated September 30, 2026

The question at the start of every month

Every month the same question comes back: how does this month usually end? September has a bad reputation for stocks, "sell in May" is practically a proverb, and every commodity has its season.

We measured it across the thirty contracts we cover: 5,477 months of index futures, metals, energy, grains, currencies, rates and crypto since 2010. For each month, the share of years in which it closed above the previous month's close.

One warning before the numbers, because it shapes everything else: each cell in this study rests on about sixteen years. A single year moves the percentage by more than six points.

What the table says at a glance

In ES the strongest month is July, higher in 82.4% of years, followed by May at 81.2%. Yes: the month of the sell proverb is one of the index's best in this period.

September comes in at 52.9%, the same as August. It is ES's weakest month, but not a falling one: it closed higher in a little over half of all years.

October, the month starting now, closed higher in 62.5% of years in both ES and Nasdaq. November, 75.0% in both.

Gold splits differently: August higher in 70.6% of years and September in only 29.4%, the metal's worst month in the table.

Share of years each month closed higher

ES, NQ, oro, petróleo y euro

Swipe to see the sample →

MonthESNQGCCL6EYears (ES)
January62.5%68.8%68.8%56.2%43.8%16
February62.5%50.0%43.8%62.5%31.2%16
March56.2%62.5%50.0%62.5%37.5%16
April75.0%68.8%62.5%68.8%62.5%16
May81.2%68.8%37.5%43.8%37.5%16
June58.8%52.9%41.2%58.8%64.7%17
July82.4%88.2%52.9%58.8%52.9%17
August52.9%52.9%70.6%41.2%41.2%17
September52.9%52.9%29.4%41.2%41.2%17
October62.5%62.5%56.2%43.8%37.5%16
November75.0%75.0%43.8%43.8%43.8%16
December68.8%56.2%62.5%68.8%75.0%16

n = 980 · 2010-06-07 to 2026-09-30 · exchange data

Share of years in which the month closed above the previous month's close, using close-to-close returns that exclude the contract roll day (the jump from one expiry to the next does not count as the month's move). Each cell rests on about 16 years: a single year moves the percentage by more than six points.

The weekly report, every Sunday

One email a week: what moved the macro picture, next week's calendar, rates and COT positioning, and the new study with its sample size. No signals; unsubscribe in one click.

The right benchmark is not 50%

Before calling a month strong you have to compare it with what is normal for that contract. ES closed higher in 65.8% of all its months: over sixteen years of a bull market, the unusual thing is a month closing red.

So a 75% in ES does not say much. It is the usual rate plus one lucky year. A 75% in the euro, which closed higher in 47.4% of its months, would be something else.

Measured this way, against each contract's own average, the question becomes how many months stray from their contract further than chance would explain.

How many special months chance produces

There are 360 month-and-contract pairs. If none of them were special, a standard statistical test on sixteen-year samples would still flag about 14 as "significant" by pure coincidence.

It flags 9. Fewer than chance would give.

Those 9 are scattered with no pattern: July in Nasdaq, April in natural gas and in the pound, December in the euro, January in the two-year note, December in the ten-year note, among others. No month repeats across a whole family, which is what we would expect if there were a common cause behind it.

Put plainly: with sixteen years per month, the monthly seasonality of these thirty futures cannot be told apart from noise. The table's strong months are real, but the table of a market with no seasonality at all would have its own.

Each contract's best and worst month, against its own average

Los 30 contratos medidos

Swipe to see the sample →

ContractMonths higherBest month%Worst month%Months measured
ES65.8%July82.4%August52.9%196
NQ63.3%July88.2%February50.0%196
RTY60.4%November88.9%September30.0%111
YM67.9%November87.5%March56.2%196
NKD60.2%November75.0%July41.2%196
GC51.5%August70.6%September29.4%196
SI51.3%October75.0%June35.3%195
HG54.6%December75.0%March37.5%196
PL51.0%January75.0%March31.2%196
PA57.1%April75.0%May25.0%196
CL54.1%April68.8%August41.2%196
NG44.4%April75.0%July23.5%196
ZC49.5%January68.8%June29.4%196
ZW45.9%January62.5%November31.2%196
ZS50.5%January68.8%May31.2%196
6E47.4%December75.0%February31.2%196
6J46.4%July70.6%March31.2%196
6B48.0%April75.0%May25.0%196
6A50.0%June70.6%August29.4%196
6C47.4%April68.8%November31.2%196
6S53.1%December75.0%September35.3%196
6N50.5%December68.8%August35.3%196
6M54.4%March75.0%September43.8%195
ZT49.0%January75.0%December25.0%196
ZF49.0%January62.5%December25.0%196
ZN48.5%January62.5%December18.8%196
ZB51.0%May68.8%October25.0%196
SR342.0%March75.0%January25.0%100
BTC52.4%March77.8%August22.2%105
ETH44.8%March83.3%June0.0%67

n = 5,477 · 2010-06-07 to 2026-09-30 · exchange data

Share of years in which the month closed above the previous month's close, using close-to-close returns that exclude the contract roll day. Each cell rests on about 16 years. Each contract's benchmark is its own share of higher months, not 50%: an index that rises two months in three has no special month for beating 50%. Of the 360 month-and-contract pairs, 9 stand out from that rate in a 5% binomial test; with these samples, chance would give about 14. Ordered by family: index futures, metals, energy, grains, currencies, rates and crypto.

What this study does not say

It does not say seasonality exists in no market. It says sixteen years are not enough to see it month by month. With forty years of data some of these patterns might hold up; with sixteen they cannot be separated from luck.

It does not measure the size of the move, only whether the month closed up or down. A month can close green almost every time and lose a lot on the few occasions it does not.

It does not look at commodities' physical seasons, such as planting or winter, which need their own contract-by-contract analysis.

And it does not exclude extreme years. A 2020 or a 2022 weighs the same as any other year in the percentage, and in sixteen-year cells that shows.

What to do with this at the start of the month

Use your contract's background rate, not the month's. If you trade ES, knowing it closed higher in two of every three months tells you more than knowing October closed higher in 62.5% of years.

Distrust any seasonal calendar that does not say how many years sit behind each cell. With sixteen, a "75% month" is a month that closed higher twelve times out of sixteen, and chance produces that often.

And if a seasonal pattern convinces you, ask it what you would ask any other: how many patterns like this would turn up by coincidence in a table this size?

Frequently asked questions

What is the best month for ES?
Over the period measured, July: it closed higher in 82.4% of years, followed by May at 81.2%. But ES closed higher in 65.8% of all its months, and with sixteen years per month the difference does not stand out from chance.
Is September a bad month?
In ES it is the weakest along with August, higher in 52.9% of years, but it does not fall on balance. In gold it is the worst: higher in 29.4% of years. Neither passes the test against the contract's own average.
What happens in October?
In ES and Nasdaq, October closed higher in 62.5% of years, slightly below their average across all months. Nothing special either way.
Does seasonality work in futures?
With sixteen years of data it cannot be shown month by month. Of 360 month-and-contract pairs, 9 stand out from their own average; pure chance would produce about 14.
Why exclude the contract roll day?
Because in a continuous futures series the switch from one expiry to the next creates a price jump that is not a market move. Left in, the expiry months inherit that jump. Here each month is computed close to close without that day.

These numbers, instrument by instrument

See all 30 instruments →

These base rates, on your chart

The indicator is open source and free: it marks each session's Initial Balance and gap, and prints beside them the historical rate at which that bucket fills, with its sample size. Same data as the tables above.

How to cite this data

The tables on this page are our own work, built from exchange data. You may reproduce them, translate them or build on them, including commercially, as long as you credit the source and link back to the original page. If you use them, tell us: we like knowing what they get used for.

Licence: CC BY 4.0

Suggested citation:

Perfiltrade (September 30, 2026). Futures Seasonality by Month: Which Months Rise Across 30 Contracts. https://www.perfiltrade.com/en/learn/futures-seasonality-by-month-thirty-contracts

Try these concepts with real data

7 days free, no card. An analysis tool, not investment advice.

See plans →