Sector Rotation State
Reader's guide

How to read the Sector Rotation dashboard

One calibrated number, refreshed each trading morning: the probability that the S&P 500 is in a sector-rotation regime right now — and how to use it without over-reading it.

The two headline numbers

The top of the dashboard shows two probabilities between 0 and 1, side by side — one across the 11 GICS sectors, one across the industries beneath them. Each is the model's estimate that the market is currently in a rotation regime at that grain, using only data available through the as-of date. Both are detection readings (where are we now), not forecasts of what happens next.

"Rotation" here means leadership is reordering broadly — not the whole market rising or falling together, and not one mega-cap dragging its group along. Both of those are removed before the model ever sees the data (see Methodology).

Why both grains? The 11 sectors are coarse: a rotation can tear through one industry while the sector it sits in barely moves. The industry model is the full parallel of the sector model — same ruler, same filtered hidden-state machinery, same calibration and sealed-holdout validation, with its own honest AUCs shown on its card — so it is a genuine peer reading, not a derived proxy.

An honest correction, published because we tested our own claim. This page used to tell you the industry line "typically turns first" and was worth watching for early warning. We measured it. Across the sealed holdout the industry line did cross first in 22 of 25 rotations and the sector line never beat it once — which looks conclusive until you notice the industry line sits above its threshold on half of all days. It does not turn early; it is almost never off, so it is already up whenever anything happens. Its measured forward-looking edge is 1.02–1.15× random — i.e. none. Read the industry grain as a description of what is happening now, one level below the sector view. The measured signal lives on the sector card.

The three states

The probability maps to a plain-language state:

StateProbabilityWhat it means
Calm 0.00 – 0.50No active rotation. Sector leadership is stable; dispersion sits below episode thresholds.
Elevated 0.50 – 0.70Pressure building. Dispersion rising and leadership starting to reorder — watch, don't act.
Rotation 0.70 +Active regime. Leadership reordering broadly, on breadth rather than a single name.

These are display bands on a calibrated probability — when the model reads 0.30, rotation regimes have historically occurred about 30% of the time at that level (calibration error on the sealed test is 0.0042, essentially perfect).

The bands moved on 17 July 2026, and we owe you the reason. Elevated used to begin at 0.20. We finally measured what a 0.20 crossing was worth on data the model had never seen, and the answer was 1.26× random — very close to nothing, for a line this page was calling "the early-warning signal". A 0.50 crossing measures 1.78×: a rotation confirms within the month 54% of the time against a 31% base rate, with a median 15 trading days of warning. So Elevated now starts where a crossing actually changes the odds. Read that honestly: 46% of 0.50 crossings still do not pan out. This is a tilt in the odds, not a prediction.

Sector leaders & laggards

Each sector's bar is its market-denoised residual return — the sector's move after removing its own beta to the index. What remains is genuine relative movement, not the market carrying everyone together. Positive (green) leads; negative (red) lags.

Breadth — the share of a sector's members actually participating — is the honesty check on each bar. A sector "leading" on thin breadth is usually one or two names, not a real rotation into it.

The young-rotation flag — is one starting?

Our rule is deliberately strict: it only calls a rotation after five straight qualifying days. That stops two noisy days being announced as a regime — but it also means that by the time the rule speaks, the first four days are already behind you.

The flag asks the forward question. When a candidate run is underway, it estimates the probability that this run survives to five days and confirms. Most do not: only about 21% make it. Runs die for unglamorous reasons — on 14 July 2026 one ended because participation printed 0.4396 against a 0.45 floor, a miss of one hundredth.

Why you can trust the number, and exactly how far. It is scored on 2021+ data the model was never fitted on: AUC 0.819, against 0.739 for a dumb benchmark knowing nothing but how many days the run has already lasted. Beating that benchmark is the whole test — runs that have lasted longer are likelier to continue, and that is arithmetic, not insight. It is calibrated too (error 0.0032): when it says 70%, it means 70%.

What it does not do. It forecasts our own definition of a rotation and nothing else. It will not tell you which sector wins — we measured that and found no skill at all. It will not tell you how big the move gets — a naive "today's dispersion continues" guess beats us there. It is not a return forecast. A high reading means a rotation is more likely to be declared, not that there is money in it.

The rotation trend — catching it early

A single day's probability is noisy. The trend chart plots the last ~6 months of daily readings for both grains, with a 10-day trend line drawn through the day-to-day noise. The point is separation: a genuine early-stage rotation shows up as the trend line climbing toward the Elevated band, while noise stays flat and choppy.

What "early" is actually worth here. Measured on the sealed 2021+ holdout, a sector crossing of 0.50 arrives a median 15 trading days before our own 5-day rule can confirm anything, and catches 25 of 26 rotations. That lead is real. But it is a 1.78× tilt, not a crystal ball, and the industry line on this chart carries no measured forward-looking edge at all — it is there to show you where a move is happening, not that one is coming.

Watch the two lines together. Because industries are one grain finer, the teal (industry) line usually lifts first; the blue (sector) line follows once the move is broad enough to show at the coarser grain. That lead time — teal rising while blue is still calm — is the window an early move lives in. The badges above the chart read off each line's direction over the last 10 sessions.

The rotation map

The map lays out every industry as a tile, so you can see where the rotation is concentrated at a glance — something the two headline numbers can't show.

  • Colour is the move — the market-denoised residual over the industry's current trend. Green is leading, red is lagging; the stronger the colour, the bigger the move.
  • Size is persistence — how many days the industry has held that trend. A single off day or two doesn't reset it, so the size reflects a coherent run, not a lucky session.

Put together: a big green tile is an established rotation into that industry (broad and weeks-long — possibly already late); a small, vividly-coloured tile is a fresh move just beginning — the early signal. An industry drifting with the market (no real trend) stays small and neutral, so it never dominates the map by size alone.

The 36-year record

The chart is the monthly probability since 1990, and every point uses only data available at the time — no look-ahead. Shaded months are model-flagged rotation episodes. The dashed line marks 2021: everything to its right is the sealed holdout the model was never fit on, so you can see how it behaves on data it never saw. The 2000 unwind, 2008, the 2020 shock, and the 2022 growth-to-value turn all read straight off it.

The validation panel

A latent-state model will fit something to any data, so the numbers below the chart are how you know this one is real:

  • Sealed-holdout AUC 0.8714 — detection accuracy on 2021+, tested once. 0.50 is a coin flip.
  • Cross-validated AUC 0.909 — the primary evidence, from blocked/purged cross-validation across 1990-2026.
  • Calibration error 0.0042 — predicted vs. observed on the holdout; lower is better.
  • Base rate 14.4% — how often rotation actually occurs; the AUC has to beat this to mean anything.

What it's for — and not for

It's a detector, not a crystal ball. Identifying whether we're in a rotation today is where the model is strong. Predicting one before it is visible is much harder, and we report that skill honestly as modest and short-lived. Don't read today's number as a forecast.

Research and educational content only — not investment advice, and not a recommendation to buy or sell any security. The reading is a statistical estimate with uncertainty.

How often it updates

The dashboard refreshes each trading morning (around 06:30 ET, Tuesday–Saturday), after the prior session's prices land. The "as of" date at the top always tells you the last data the reading is built on. If the price feed stalls, the page holds the last good date rather than showing a stale number dressed up as fresh.