Overview › Stock breadth
Zweig breadth thrust
A rare burst from almost all stocks falling to almost all rising within two weeks. Updated after every US market close: the Zweig breadth thrust indicator, with its exact rule and its record since 2017.
What it means now
Zweig breadth thrust is neutral today. Breadth average 0.47. Last thrust Apr 24, 2025. It was also neutral a week ago (0.49; now 0.47). On days in this state since 2017, SPY returned +3.4% on average over the next three months, against +3.8% from any day. A description of the past, not a forecast.
- SPY
- Bullish
- Share of rising stocks (10-day average)
What is the Zweig breadth thrust?
Martin Zweig described the breadth thrust as a market going from oversold to overbought almost overnight, as buyers return to nearly every stock at once. It is rare, so its history is a handful of dates.
How it is calculated
- Each day: rising stocks divided by rising plus falling stocks; take its 10-day exponential average.
- A thrust is a day when that average is above 0.615 and was below 0.4 at some point in the last 10 trading days.
- Bullish for 63 trading days after a thrust. Neutral otherwise; it is never bearish.
A standard setting, fixed before testing, not the best of the variants below. A state is decided from a day’s closing prices and published after that close.
How reliable has it been? Its record since Oct 2, 2017
Zweig breadth thrust is never bearish, so it never leaves SPY; what matters is what SPY did after its bullish signals. After its 3 bullish signals SPY returned +14.5% on average over three months, against +3.8% from any day. It turned bearish ahead of 0 of the 5 declines of 10% or more in this period.
- SPY
- Bullish
- Share of rising stocks (10-day average)
The full record and research: every state, decline, signal, variant and setting tested
SPY after each state
| From | Days | SPY, next month (avg) | SPY, next 3 months (avg) |
|---|---|---|---|
| Neutral days | 2,081 | +1.1% | +3.4% |
| Bullish days | 192 | +3.7% | +8.3% |
| All days | 2,273 | +1.3% | +3.8% |
Averages over every day in that state; the periods overlap, so treat them as a description, not a forecast.
Every decline of 10% or more
| High | Low | Fall | A month after the low |
|---|---|---|---|
| Jan 26, 2018 | Feb 8, 2018 | −10.1% | Neutral |
| Sep 20, 2018 | Dec 24, 2018 | −19.3% | Bullish |
| Feb 19, 2020 | Mar 23, 2020 | −33.7% | Neutral |
| Jan 3, 2022 | Oct 12, 2022 | −24.5% | Neutral |
| Feb 19, 2025 | Apr 8, 2025 | −18.8% | Bullish |
“Bearish by the high”: bearish at some point from a month before SPY’s high to a week after it.
Every signal (3), newest first
| Date | Turned | SPY 1 month later | 3 months | 6 months | Lowest close within 3 months |
|---|---|---|---|---|---|
| Apr 24, 2025 | Bullish | +5.9% | +16.9% | +23.6% | +0.7% |
| Nov 3, 2023 | Bullish | +5.0% | +14.1% | +19.8% | −0.2% |
| Jan 8, 2019 | Bullish | +5.2% | +12.4% | +17.4% | +0.2% |
Variants tested
The same measures for other common settings, so the result can be checked for luck: a rule that only works with one exact number is fragile. The highlighted row is the published rule.
| Variant | SPY or T-bills, a year | Worst fall | Days bearish | Bearish signals | Followed by a 5% fall | Bullish signals | SPY 3 months after |
|---|---|---|---|---|---|---|---|
| Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule) | 14.8% | −33.7% | 0% | 0 | – | 3 | +14.5% |
| Bullish for 21 days | 14.8% | −33.7% | 0% | 0 | – | 3 | +14.5% |
| Bullish for 126 days | 14.8% | −33.7% | 0% | 0 | – | 3 | +14.5% |
| Looser: 0.42 to 0.60 | 14.8% | −33.7% | 0% | 0 | – | 7 | +9.0% |
| Within 15 days | 14.8% | −33.7% | 0% | 0 | – | 7 | +10.8% |
| SPY held throughout | 14.8% | −33.7% | – | – | 33% (any day) | – | +3.8% (any day) |
“SPY or T-bills”: SPY, switching to T-bills (BIL) at the next close after the rule turns bearish and back after it stops, 0.10% per switch, interest and dividends included. Hypothetical: no costs beyond that, no taxes.
Overlap with the other indicators
It agreed most often with 90% up and down days (82% of days in the same state). An indicator that almost always agrees with another adds little to the score.
Agreement with every indicator
| Indicator | Same state |
|---|---|
| 90% up and down days | 82% |
| Up/down volume | 79% |
| Stocks above their 20-day average | 70% |
| Equal weight against SPY | 66% |
| Hindenburg Omen | 61% |
| McClellan Oscillator | 47% |
| Stocks beating SPY | 46% |
| Valuation | 40% |
| Stocks above their 200-day average | 32% |
| Sector breadth | 24% |
| New highs minus new lows | 14% |
| Small against large companies | 11% |
| Advance-decline line | 8% |
Research: what worked and what did not
The same test run many ways: the published rule year by year, every variant year by year, and grids over its settings. Return numbers are SPY-or-T-bills against SPY over the same days, in points; green means better than holding SPY, red worse. This indicator is never bearish, so it never leaves SPY: it is judged on what SPY did after its bullish days.
Year by year
| Year | SPY | SPY or T-bills | Difference, points | SPY’s worst fall | Days bearish | Days bullish | Bearish signals |
|---|---|---|---|---|---|---|---|
| 2017* | 6.3% | 6.3% | +0.0 difference in 2017 | −1.0% | 0% | 0% | 0 |
| 2018 | −4.6% | −4.6% | +0.0 difference in 2018 | −19.3% | 0% | 0% | 0 |
| 2019 | 31.2% | 31.2% | +0.0 difference in 2019 | −6.6% | 0% | 25% | 0 |
| 2020 | 18.4% | 18.4% | +0.0 difference in 2020 | −33.7% | 0% | 0% | 0 |
| 2021 | 28.7% | 28.7% | +0.0 difference in 2021 | −5.1% | 0% | 0% | 0 |
| 2022 | −18.2% | −18.2% | +0.0 difference in 2022 | −24.5% | 0% | 0% | 0 |
| 2023 | 26.2% | 26.2% | +0.0 difference in 2023 | −10.0% | 0% | 16% | 0 |
| 2024 | 24.9% | 24.9% | +0.0 difference in 2024 | −8.4% | 0% | 10% | 0 |
| 2025 | 17.7% | 17.7% | +0.0 difference in 2025 | −18.8% | 0% | 26% | 0 |
| 2026* | 12.8% | 12.8% | +0.0 difference in 2026 | −8.9% | 0% | 0% | 0 |
* Part of a year: Oct 2 to the end of 2017, and 2026 to Oct 16.
Every variant, year by year
Does a setting win steadily, or in one lucky year? Each square is that year’s difference from SPY.
| Variant | 2017* | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026* | A year, whole period |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule) | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2017, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2018, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2019, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2020, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2021, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2022, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2023, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2024, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2025, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), 2026, the site's rule | +0.0 Classic: 0.40 to 0.615 in 10 days, 63 days (this site's rule), a year over the whole period, the site's rule |
| Bullish for 21 days | +0.0 Bullish for 21 days, 2017 | +0.0 Bullish for 21 days, 2018 | +0.0 Bullish for 21 days, 2019 | +0.0 Bullish for 21 days, 2020 | +0.0 Bullish for 21 days, 2021 | +0.0 Bullish for 21 days, 2022 | +0.0 Bullish for 21 days, 2023 | +0.0 Bullish for 21 days, 2024 | +0.0 Bullish for 21 days, 2025 | +0.0 Bullish for 21 days, 2026 | +0.0 Bullish for 21 days, a year over the whole period |
| Bullish for 126 days | +0.0 Bullish for 126 days, 2017 | +0.0 Bullish for 126 days, 2018 | +0.0 Bullish for 126 days, 2019 | +0.0 Bullish for 126 days, 2020 | +0.0 Bullish for 126 days, 2021 | +0.0 Bullish for 126 days, 2022 | +0.0 Bullish for 126 days, 2023 | +0.0 Bullish for 126 days, 2024 | +0.0 Bullish for 126 days, 2025 | +0.0 Bullish for 126 days, 2026 | +0.0 Bullish for 126 days, a year over the whole period |
| Looser: 0.42 to 0.60 | +0.0 Looser: 0.42 to 0.60, 2017 | +0.0 Looser: 0.42 to 0.60, 2018 | +0.0 Looser: 0.42 to 0.60, 2019 | +0.0 Looser: 0.42 to 0.60, 2020 | +0.0 Looser: 0.42 to 0.60, 2021 | +0.0 Looser: 0.42 to 0.60, 2022 | +0.0 Looser: 0.42 to 0.60, 2023 | +0.0 Looser: 0.42 to 0.60, 2024 | +0.0 Looser: 0.42 to 0.60, 2025 | +0.0 Looser: 0.42 to 0.60, 2026 | +0.0 Looser: 0.42 to 0.60, a year over the whole period |
| Within 15 days | +0.0 Within 15 days, 2017 | +0.0 Within 15 days, 2018 | +0.0 Within 15 days, 2019 | +0.0 Within 15 days, 2020 | +0.0 Within 15 days, 2021 | +0.0 Within 15 days, 2022 | +0.0 Within 15 days, 2023 | +0.0 Within 15 days, 2024 | +0.0 Within 15 days, 2025 | +0.0 Within 15 days, 2026 | +0.0 Within 15 days, a year over the whole period |
The settings, tested on a grid
Thrust thresholds and how long it stays bullish
Each square: SPY's average return over the next 63 trading days from the bullish days, minus its average from every day, in points (green: bullish days were followed by better than usual returns). Rows: the breadth average must rise from below the first number to above the second within the window.
| Bullish for → | |||||
|---|---|---|---|---|---|
| Thrust ↓ | 21 days | 42 days | 63 days | 126 days | Average |
| 0.40 to 0.615 in 10 days (classic) | +7.9 Thrust 0.40 to 0.615 in 10 days (classic), bullish for 21 days | +6.0 Thrust 0.40 to 0.615 in 10 days (classic), bullish for 42 days | +4.5 Thrust 0.40 to 0.615 in 10 days (classic), bullish for 63 days, the site's rule | +2.6 Thrust 0.40 to 0.615 in 10 days (classic), bullish for 126 days | +5.3 |
| 0.40 to 0.60 in 10 days | +8.0 Thrust 0.40 to 0.60 in 10 days, bullish for 21 days | +6.0 Thrust 0.40 to 0.60 in 10 days, bullish for 42 days | +4.6 Thrust 0.40 to 0.60 in 10 days, bullish for 63 days | +2.7 Thrust 0.40 to 0.60 in 10 days, bullish for 126 days | +5.3 |
| 0.42 to 0.60 in 10 days | +4.0 Thrust 0.42 to 0.60 in 10 days, bullish for 21 days | +3.6 Thrust 0.42 to 0.60 in 10 days, bullish for 42 days | +3.0 Thrust 0.42 to 0.60 in 10 days, bullish for 63 days | +2.4 Thrust 0.42 to 0.60 in 10 days, bullish for 126 days | +3.3 |
| 0.45 to 0.60 in 10 days | +1.6 Thrust 0.45 to 0.60 in 10 days, bullish for 21 days | +1.2 Thrust 0.45 to 0.60 in 10 days, bullish for 42 days | +1.2 Thrust 0.45 to 0.60 in 10 days, bullish for 63 days | +1.4 Thrust 0.45 to 0.60 in 10 days, bullish for 126 days | +1.4 |
| 0.40 to 0.615 in 15 days | +6.4 Thrust 0.40 to 0.615 in 15 days, bullish for 21 days | +4.8 Thrust 0.40 to 0.615 in 15 days, bullish for 42 days | +3.3 Thrust 0.40 to 0.615 in 15 days, bullish for 63 days | +2.2 Thrust 0.40 to 0.615 in 15 days, bullish for 126 days | +4.2 |
| 0.42 to 0.60 in 15 days | +3.4 Thrust 0.42 to 0.60 in 15 days, bullish for 21 days | +2.8 Thrust 0.42 to 0.60 in 15 days, bullish for 42 days | +2.3 Thrust 0.42 to 0.60 in 15 days, bullish for 63 days | +1.1 Thrust 0.42 to 0.60 in 15 days, bullish for 126 days | +2.4 |
| Average | +5.2 | +4.1 | +3.2 | +2.1 | |
The two halves of the history
The best settings found over the whole period, and how each did in 2017–2021 and in 2022–2026 on its own. A setting that only works in one half is fitted to the past.
| Setting | Whole period | 2017–2021 | 2022–2026 | Worst fall smaller by | Ahead in both halves |
|---|---|---|---|---|---|
| The site's rule, but to above 0.6, bullish for 21 days | +8.0 whole period | +6.8 2017 to 2021 | +8.7 2022 to 2026 | +0.0 worst fall | Yes |
| The site's rule, but bullish for 21 days | +7.9 whole period | +6.4 2017 to 2021 | +8.7 2022 to 2026 | +0.0 worst fall | Yes |
| The site's rule, but within 15 days, bullish for 21 days | +6.4 whole period | +8.4 2017 to 2021 | +4.9 2022 to 2026 | +0.0 worst fall | Yes |
| The site's rule, but to above 0.6, bullish for 42 days | +6.0 whole period | +2.9 2017 to 2021 | +7.7 2022 to 2026 | +0.0 worst fall | Yes |
| The site's rule, but bullish for 42 days | +6.0 whole period | +2.6 2017 to 2021 | +7.7 2022 to 2026 | +0.0 worst fall | Yes |
| The site's rule, but within 15 days, bullish for 42 days | +4.8 whole period | +6.3 2017 to 2021 | +3.6 2022 to 2026 | +0.0 worst fall | Yes |
| The site’s rule | +4.5 whole period, the site's rule | +1.8 2017 to 2021, the site's rule | +6.0 2022 to 2026, the site's rule | +0.0 worst fall, the site's rule | Yes |
Summary: the settings that helped the most
- Best single setting tested: the site's rule, but to above 0.6, bullish for 21 days: +8.0 points of SPY return over the next 63 days against an average day (+6.8 in 2017–2021, +8.7 in 2022–2026), against +4.5 for the site’s rule. Found by looking at the results, so it is the most flattering number here, not a forecast.
- Thrust: 0.40 to 0.60 in 10 days did best on average (+5.3), 0.45 to 0.60 in 10 days worst (+1.4).
- Bullish for: 21 days did best on average (+5.2), 126 days worst (+2.1).
- Choosing the best setting in advance: the setting with the best result in 2017–2021 (the site's rule, but within 15 days, bullish for 21 days, +8.4) scored +4.9 in 2022–2026, against +6.0 for the site’s rule; 4 of the 24 settings tested beat the rule in those later years.
The site keeps the rule it published, so its live record stays honest. The heat maps show which ingredients mattered across many settings; any one best square is partly luck, because the history holds only a handful of real declines.
Live record
The rule went live after the close of Oct 16, 2026. Every reading since was made by the daily run after that day’s close and is kept exactly as made; the newest few are corrected only if late price data changes them.
No live readings yet: the first comes after the next trading day.
Free · every Friday after the close
Know when the market’s underlying health changes
Every Friday, a two-minute report on market health, rising risk and the indicators that changed, without having to watch every chart yourself.
- The health score and the top-risk score, and how far each moved
- Every indicator that turned bullish or bearish, and why
- Whether breadth confirmed the S&P 500’s new highs
- The charts that matter, in under two minutes
From the same author
Bull Rhythm: momentum strategies, tracked live every trading day
Eight model stock portfolios built on 12-1 momentum, one of the most researched return factors in finance, run by fixed rules and measured against the S&P 500.
- Every holding and every trade published, with the reason in plain words
- The live record since go-live, next to a backtest since 2017
- The Bull Rhythm Weekly by email every Friday