Two calibrated, point-in-time probabilities — one across the 11 GICS sectors, one across the industries beneath them — that the S&P 500 is in a rotation regime. Each is denoised against market-wide moves and single mega-cap distortion, and tested on a sealed 2021+ holdout it never saw during fitting.
Our rule only calls a rotation after five straight qualifying days, so by the time it speaks, the first four days are gone. This flag asks the forward question instead: a candidate run is underway right now — will it survive to five and confirm? Most do not. No candidate run is open right now — there is nothing to forecast until dispersion, leadership and breadth all qualify on the same day.
The flag appears when a run starts.
Scored 0.820 on 2021+ data it never saw, against 0.739 for a null that only knows how many days the run has lasted (294 runs tested; calibration error 0.0035).
A single day's probability is noisy — the trend is the signal. Below is the last ~6 months of daily readings for both grains, with a 10-day trend line drawn through the day-to-day noise. A sector trend climbing through the Elevated band (0.50) is the reading with measured value: on data the model never saw, a 0.50 crossing precedes a confirmed rotation 54% of the time against a 31% base rate — a 1.78× tilt, arriving a median 15 trading days before our own rule can confirm. Read the industry line as texture, not warning: it carries no measured forward-looking edge (see How to read this).
Every industry as a tile. Colour is the move — the market-denoised residual over the industry's current trend (green leading, red lagging, stronger colour = bigger move). Size is persistence — how many days it has held that trend, and a one- or two-day blip doesn't reset it. So a big green tile is an established rotation in; a small, vividly-coloured tile is a fresh move just starting — the early signal. Hover any tile for the detail.
Market-denoised residual return — each sector net of its own beta to the index, so what remains is genuine relative movement, not the market carrying everyone together. Breadth is the share of a sector's members actually participating.
The 11 sectors are coarse: a rotation can tear through one industry while the sector it belongs to barely moves. This is the same market-denoised residual, one level down — where the real leadership shift usually shows first.
The monthly filtered posterior since 1990. Every estimate uses only data available at the time — no look-ahead. Shaded months are model-flagged rotation episodes; the line to the right of the marker is the sealed holdout the model was never fit on.
A latent-state model will always fit something. The only honest test is whether it detects rotation out-of-sample, on data held back from fitting. Here is that record for the sector model, plus the places it is deliberately weak. The industry model runs the identical battery one grain down — its own holdout and cross-validated AUCs are shown on its card at the top.
Identifying whether we are in a rotation today is where the model earns its keep — confirmed on a holdout it never saw, well-calibrated, and stable across start dates from 1990 to 2000. The — episodes it learned from include every regime a reader would name: the 2000 unwind, 2008, the 2020 shock, the 2022 growth-to-value turn.
Predicting a rotation before it is visible is much harder, and we say so. Forward skill is real but small and decays within weeks. We publish that honestly rather than dress it up — a weak forecast reported plainly is worth more than a strong one that isn't true.
The same discipline behind asymmetricbeta.com: a high-integrity data island that owns its price feed on one consistent, single-source basis — no unresolved multi-vendor mixing.
— daily bars from a delisting-complete vendor — the companies that left the index are still here. Cross-checked against a second feed at — agreement.
S&P 500 constituents and float weights as they actually stood each quarter back to 1990, joined by ISIN — never by ticker, which silently recycles.
Sector returns net of market beta and single-name concentration, reconciled to the SPDR sector ETFs at — correlation, fed to a filtered hidden-state model.
A short note when the rotation state shifts — no noise, no marketing. Part of the Gyre Research family. Confirm your email and you're in.
Only email is required. Double opt-in. Unsubscribe anytime. We never share your details.