The year, as flows
Scorecard — does the calendar map forecast?
walk-forward: each year's windows selected only on the prior 20 years, then scored on what that year actually did · same rule the board uses
COT × calendar
windows active or opening within 10 sessions, set against newcot's weekly positioning read — the calendar alone has no forward edge; positioning is the evidence that matters
What survives out-of-sample
the parts of the calendar with genuine forward evidence: monthly direction tilts (walk-forward) and hypothesis-driven day effects (not scanned, so their p-values mean what they say)
Calendar map — where the year has leaned
historically strongest stretches, long (above the line) and short (below) · descriptive, see scorecard · ◆ = beats the no-seasonality noise threshold · gold line = today · within-year scan
Edge matrix
every instrument × every month, coloured by t-statistic (20y)
Strongest long windows
ranked by t · E/N = expected move ÷ a typical move of that length (floor 0.4) · 2026 = realised this year
Strongest short windows
same scan · short the instrument — for US 10Y that means yields down, bonds up; VIX is a condition, not a position
The seasonal year
Monthly profile
Table view
Every month, every year
Reversal map — the average month
Average cumulative path inside each calendar month · ▲ peak day, ▼ trough day · 20-year sample
Favourable windows
Strongest recurring stretches, 20-year sample · found by exhaustive scan — t-stats are selection-biased upward; treat as a map, not a signal
Hostile windows
Weakest recurring stretches, 20-year sample · same scan, same selection-bias caveat
Event days
Average move on scheduled macro days · full sample
Inside the week & month
Average daily move · 20-year sample
Day of week
Around the month boundary
Method
Data. Daily closes from 1990 (or first available) through the latest session, refreshed with each publish. Returns are log daily changes; monthly and window figures compound them.
Lookback selection. For each instrument, every lookback window (5–30 years and full history) is walk-forward tested: the seasonal index for test year Y is built only from years before Y, then scored on direction accuracy against Y's actual months, across 2000–2025. The winning window is the site's default. The quoted accuracy is the best of seven tested windows and is therefore itself selection-biased upward — accuracy in the low-to-mid 50s is what genuine seasonality looks like; treat it as a tilt, not a timetable.
Roll adjustment. Futures data are spliced front-month continuous series, which embed a fake price jump each time the front contract rolls (worst in lean hogs, where seasonal calendar spreads reach 15–25%). Returns inside each contract's known roll window — on the correct side of the month boundary — that exceed 4 robust standard deviations are treated as splice gaps and zeroed; affected instruments are tagged "roll-adjusted continuous". Limits: routine sub-threshold contango/backwardation gaps (roughly 0.5–3% per roll in NatGas, gasoline, heating oil, sugar) remain in every figure, so commodity seasonal magnitudes are approximate; a true back-adjusted series would need per-contract data. Treat commodity numbers as pattern evidence, not P&L.
Significance. Cells and rows show win rate, Student's t and p-values. One dot marks p < 0.05, two dots p < 0.01. Most calendar effects are not significant — the honest ones are highlighted, the rest are context. Window t-stats come from an exhaustive scan and are selection-biased by construction.
Out-of-sample scorecard. The window scan is tested the only way that counts: for each year 2016–2025, windows are selected using the prior 20 years alone, then scored on that year. Result: the selected windows hit about as often as any random window of the same length in the same year, and realise a fraction of their "expected" move. 144 alternative selection rules were tried; the median adds nothing. The calendar map is therefore published as history, with this verdict beside it. A permutation null (each year's returns circularly shifted, so calendar alignment is destroyed but everything else kept) gives each instrument a noise threshold for the scan's max |t|; windows above it carry ◆.
What this is not. Seasonality is a prior, not a signal — and the scorecard shows how weak a prior. It says nothing about valuation, positioning or news. Nothing here is investment advice.
19 instruments · up to 36 years of daily history · sibling sites: cot · newcot · vix