KB / signal
Breadth (50d)
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/signal_definitions.jsonbyscripts/build_signals_kb.py. Edit the registry entry and re-run the script — do not edit this file directly.
Breadth (50d)
What it is
Breadth (50d) — registry key breadth_50d.
Classifier metric. See the bands table below for the band-by-band reading.
Source
Source module: breadth
Data source: back_fillable
Fetched directly from app/sources/breadth.py; see source code for the upstream API call and any provider-specific handling.
How it’s computed
Percent of S&P 500 constituents whose latest close is above their own 50-day SMA: count(close > sma50) / count(valid) × 100. See app/sources/breadth.py:83.
Where it surfaces
- API field:
signals.pct_above_50smaonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
intraday_signalsrow (per-cycle snapshot) - Surface:
/signals/historytime series - Surface:
/signals/sparklines(UI sparklines) - Surface: change markers in the rendered report
- Sparkline aliases:
breadth
Bands / thresholds
Classifier direction: higher_is_better.
| Range | Label | Dot | Implication | Points |
|---|---|---|---|---|
| — | Broad participation | favorable | BULLISH | 7 |
| — | Moderate breadth | leaning | BULLISH | 5 |
| — | Mixed | neutral | NEUTRAL | 3 |
| — | Narrowing | cautionary | BEARISH | 1 |
| — | Widespread selling | adverse | BEARISH | 0 |
Health-score / alignment role
- Health score component:
breadth_50d(weight + math inapp/signals/config/score_weights.jsonandapp/signals/score.py). - Alignment category:
breadth, default weight 1.5 (see/kb/alignmentfor the 11-category framework). - Contributes to:
health_score.Breadth,implication.breadth,alignment.breadth,cascade.5
Release cadence
- Publishes:
intraday
See also
- /kb/alignment — Alignment framework — 11-category implication vs. price.
- /kb/health-score — Health score — 0-100 composite.
- /kb/api/get-signals-latest — API endpoint that serves this field.