Signal Breadth: what twenty observations can and cannot say
As of the 14 September 2026 session the Signal Breadth Index has twenty observations: it started at 31.8% on 17 August, peaked at 42.5% two days later and fell to 15.6% on 11 September. Twenty points support a description and nothing more. The one-day autocorrelation is 0.70, which is three standard errors from white noise, so the series is persistent rather than a coin flip; breadth and the median signal score move together (r = 0.84) because they come from the same scan. Whether breadth says anything about what the market does next cannot be tested yet: to detect even a correlation of 0.3 with next-day returns at 80% power takes 85 observations, 65 more trading days. This note is what an honest read of a young series looks like, and a marker to come back to when the series is old enough to test.
What the index is
Every US close the pipeline scores a fixed universe of 180 liquid US equities against 30 technical signals; a name clears the threshold when at least 22 of the 30 are bullish. Signal Breadth is the share of scored names that clear it. The scan started under the current methodology on 17 August 2026 and the history is not backfilled: the scan was not run historically, so earlier values do not exist and none have been manufactured. Names missing a full data window on a given day are skipped; on every day so far 179 of 180 were scored.
Twenty observations
| 17 Aug – 14 Sep 2026 | Value |
|---|---|
| Observations | 20 (no Labor Day, no weekends) |
| First / last | 31.8% / 17.3% |
| Minimum / median / maximum | 15.6% (11 Sep) / 29.1% / 42.5% (19 Aug) |
| Mean, standard deviation | 28.5%, 7.4 points |
| BUY names behind those readings | 28 to 76 of 179 |
| Median signal score (of 30) | 14 to 20 |
| Day-to-day change: mean absolute / largest | 3.8 / 11.8 points |
| Days up / down / unchanged | 5 / 11 / 3 |
| Lag-1 autocorrelation | 0.70 (white-noise SE 0.22, t = 3.1) |
| Correlation with the median score, same day | 0.84 |
The full series, 17 August to 14 September:
What twenty points can say
- The series is persistent. A lag-1 autocorrelation of 0.70 on 20 points has a standard error of about 0.22 under the white-noise null, so persistence is roughly three standard errors from nothing. That is expected, not interesting: the 30 signals include moving-average and momentum conditions that change slowly, so the share of names clearing 22 of them changes slowly too. It means consecutive readings are not independent evidence, which matters for everything below.
- Breadth and the median score are the same information. r = 0.84 with the median, 0.88 with the mean score. Breadth counts names above a threshold on the same scores the median summarises; the two will only diverge when the score distribution changes shape. Reporting both is convenience, not corroboration.
- The move from 42.5% to 15.6% is a description of four weeks, not a regime. Eleven down days against five up days, with a 0.70 autocorrelation, is roughly what one drawn-out decline looks like. There is no basis in twenty points for calling it a trend, a cycle or a signal.
What twenty points cannot say
The question everyone wants answered is whether breadth predicts anything: next-day index returns, forward volatility, the persistence of the BUY names. None of it can be tested yet, and the arithmetic is worth writing down because it is the same for every young indicator.
| True correlation to detect | Observations for 80% power at 5% (two-sided) | Trading days still to wait |
|---|---|---|
| 0.30 | 85 | 65 |
| 0.20 | 194 | 174 |
| 0.10 | 783 | 763 |
These are Fisher-z sample sizes for independent observations. With a lag-1 autocorrelation of 0.70 the effective sample is smaller still, so the waits are lower bounds. A correlation of 0.3 between a daily breadth reading and the next day's return would be extraordinary for any published indicator; 0.1 would be respectable, and that takes three years. Anyone reporting a predictive result from a breadth series younger than that is reporting noise, and the site's own index will be held to the same standard: no predictive claim until the sample supports one, and the test pre-registered here so it cannot be chosen after the fact.
The pre-registered test
When the series reaches 85 observations (expected mid-December 2026, holidays permitting), the following will be computed and published whatever it shows: the Spearman correlation between breadth on day t and the S&P 500 close-to-close return on day t + 1, with a block bootstrap confidence interval (block length 5) to respect the autocorrelation; the same for the 5-day forward return; and the fraction of day-t BUY names still clearing the threshold on day t + 5. No thresholds, no regime labels, no other outcome variables. If the interval includes zero, the index is a description of the scan, which is all it claims to be today.
What this does not establish
- Nothing about the market. Every number above describes the scan's own output over four weeks.
- The methodology is version 2.0 and the series starts with it. A methodology change would start a new series; the old one would be kept, labelled, and not spliced.
- The 179 of 180 scored is a data-window rule, not a universe change; the skipped name is documented in the daily JSON.
Reproduce
python summarize.py # reads data/breadth_history.json as published
python ../tests/test_breadth_note.py # expected: 4 passed
The script reads the live JSON, so its output moves nightly; the numbers
in this note are the 14 September 2026 run and the committed
outputs/summary.json is that snapshot. The tests pin the series'
internal consistency and the sample-size formulas, not any day's values.
Code and output on GitHub.