Cycle Tracker: Is This a Broad Advance or a Narrowing Cycle?
Broad advance — the Cycle Score reads 71/100, where 100 is a broadly owned advance and 0 is a contraction. This measures the medium-term structure, not this week's tape: six equal-weight dimensions of 3–12 month evidence — trend, participation, breadth velocity, credit, growth cycle, recession risk — each mapped between documented bounds by one pure function. The identical function replays the 2010+ history, so the live gauge and the band base rates below cannot drift. Methodology revised 2026-07-18 (v2): v1's duplicate breadth votes were retired, credit widened to two channels, and the OECD leading indicator added. v3 (2026-07-19) added the Recession risk dimension (yield curve 10Y−2Y, Sahm Rule, NFCI). The full history and base rates below are computed under v3.
What drives today's read
Growth cycle at 100/100.
Breadth velocity at 51/100.
Broad advance for 26 sessions.
Sources, methodology & freshnessLast updated 2026-08-28 · Open ↓Close ↑
broad advance for 26 sessions · trend 71 · participation 56 · breadth velocity 51 · credit 68 · growth cycle 100 · recession risk 79
The score through time — every session since 2010
3,991 sessions of the same fixed-bound function — no re-fitting, so a 40 in 2015 means what a 40 means today. SPY rides the top pane for context; the line wears the band colors — deep green broad advance, medium green constructive, gray mixed, amber deteriorating, red contraction. The dips into contraction are the study's sample: 2011, 2015–16, 2018, 2020 and 2022 all register.
Cycle Score, daily since 2010-10-15 (3,991 sessions). Band edges are fixed at 70/58/42/30. Endpoint: 71/100 (broad advance).
Which dimension turned first — the last 60 sessions
The composite hides sequence: breadth velocity usually rolls over before the primary trend cracks, and credit often confirms last. Each row is one dimension's daily score on the same five-band scale as the gauge above — read left to right to see who is leading the current state.
The six dimensions — every input, with its past year
Each input maps linearly between documented bounds (and is clamped). Several bounds are deliberately asymmetric — SPY spends most of history above its 200-day average, so its neutral point is not zero; the bounds sit at each series' practical tails. The dashed lines mark them — green where the input earns full bull-cycle credit, red full bear-cycle credit (the credit-spread and recession-risk inputs are inverted: widening or tighter conditions are red). The OECD CLI is the one categorical input — its quadrant (above/below 100 × rising/falling) scores 100/65/35/0, and its chart shows the level against the 100 line. Monthly inputs (Baa spread, CLI, Sahm Rule) enter the score on their release dates, so the replay never sees a print before the market could. Every input links to its own tool with the full series. At least 4 of 6 dimensions must be live to publish a score.
Trend
71/100- SPY vs 200d MA+8.4% → 82
- 200d MA slope (63s)+4.2% → 60
Participation
56/100- % above 200d MA53.6% → 56
- Bullish Percent Index51.4% → 53
- RSP − SPY drawdown gap+0.2pp → 60
Breadth velocity
51/100- % above 200d, 63s change+0.5pp → 51
Credit
68/100- HYG/LQD vs 200d MA+2.2% → 72
- Baa spread vs 12m avg-0.10pp → 63
Growth cycle
100/100- OECD CLI quadrant100.7 · expansion → 100
Recession risk
79/100- Yield curve 10Y−2Y+0.39pp → 59
- Sahm Rule-0.03 → 79
- NFCI-0.57 → 100
What happened next — SPY after each band
Average SPY return (and share of positive outcomes) after every prior session in each band, 2010+. The finding is the contrarian U this site keeps encountering: contraction states preceded the strongest forward returns — washouts mean-reverted — while the mid-strength bands ran nearest baseline. Color describes today's condition, not expected return.
Broad advance
| Band | Days | Next 3 months | Next 6 months | Next 12 months |
|---|---|---|---|---|
| Broad advancetoday | 1005 | +3.24% · 81% win | +5.82% · 87% win | +10.58% · 87% win |
| Constructive | 1196 | +2.69% · 77% win | +5.92% · 80% win | +12.00% · 86% win |
| Mixed | 1088 | +1.48% · 64% win | +4.00% · 67% win | +10.41% · 76% win |
| Deteriorating | 510 | +5.03% · 77% win | +8.38% · 86% win | +18.76% · 99% win |
| Contraction | 192 | +10.34% · 97% win | +16.06% · 100% win | +27.37% · 100% win |
| All days (baseline) | 3991 | +3.17% · 76% win | +6.19% · 80% win | +12.90% · 86% win |
Constructive
Mixed
Deteriorating
Contraction
All days (baseline)
Overlapping forward windows — adjacent sessions share most of their forward path, so sample sizes are optimistic. SPY price return, dividends excluded.
What flips this read
What this page cannot tell you
broad advance for 26 sessions · trend 71 · participation 56 · breadth velocity 51 · credit 68 · growth cycle 100 · recession risk 79
How Cycle Tracker Works
- 1Six dimensions of mid-term evidenceTrend asks whether the primary trend is up. Participation and breadth velocity read roughly 4,750 eligible common stocks in a typical session. Credit checks HYG/LQD and the Baa−10Y spread. Growth uses the OECD leading indicator, while recession risk adds the 10Y−2Y curve, Sahm Rule, and Chicago Fed NFCI.
- 2One pure function, documented boundsEach input maps linearly between fixed bounds set at its practical historical tails — several deliberately asymmetric, because SPY spends most of history above its 200-day average. The CLI is the one categorical input (its quadrant scores 100/65/35/0). Dimensions weigh equally; at least 4 of 6 must be live to publish a score. Monthly inputs only count from their release date — the score never sees a print before the market could. Nothing is ever re-fit.
- 3The same function replays all of historyscoreCycleInputs() runs on today's values for the live gauge and over every session since 2010 for the history and backtest — so the latest history point always equals the live reading and the base rates cannot drift from the gauge.
- 4Base rates for every band, published either wayAverage SPY returns over the next 3, 6 and 12 months after every day in each band. The honest finding is the contrarian U this site keeps encountering: Contraction days preceded the strongest forward returns (washouts mean-revert), which is exactly why the page tells you the color describes condition, not expected return.