# Market Breadth Analysis Methodology

> Market breadth measures the degree of participation in a market move. A healthy advance is characterized by broad participation (many stocks rising), while a narrowing market (fewer stocks leading) often precedes…

- Skill: `tools-only/market-breadth-analysis-methodology` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add tools-only/market-breadth-analysis-methodology`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/market-breadth-analysis-methodology/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-29
- Page: https://skillmd.com/skills/tools-only/market-breadth-analysis-methodology

---

# Market Breadth Analysis Methodology

## Overview

Market breadth measures the degree of participation in a market move. A healthy advance is characterized by broad participation (many stocks rising), while a narrowing market (fewer stocks leading) often precedes corrections.

This methodology uses TraderMonty's breadth dataset to quantify market health across 6 dimensions, producing a composite score from 0 (critical) to 100 (maximum health).

---

## Data Description

### Breadth Index
The breadth index (0-1) measures the proportion of S&P 500 stocks trading above their 200-day moving average. Key derivatives:
- **Raw:** Daily breadth value (percentage of stocks above 200DMA)
- **8-day EMA (8MA):** Short-term exponentially weighted moving average (fast signal)
- **200-day EMA (200MA):** Long-term exponentially weighted moving average (trend filter)

**Important:** Both moving averages use **EMA** (Exponential Moving Average), not SMA. The source repository calculates them as `ewm(span=N, adjust=False)`. EMA gives more weight to recent data points, making it more responsive to changes than SMA.

### Key Thresholds
| Level | Interpretation |
|-------|---------------|
| 8MA > 0.70 | Very strong breadth - broad rally |
| 8MA > 0.60 | Healthy breadth - above average participation |
| 8MA > 0.50 | Neutral - about half of stocks participating |
| 8MA > 0.40 | Weakening - below average participation |
| 8MA < 0.40 | Extreme weakness - potential trough formation |
| 8MA < 0.20 | Crisis levels - rare, precedes major bottoms |

### Signal Flags
- **Breadth_200MA_Trend:** 1 = 200MA rising (bullish regime), -1 = 200MA falling (bearish regime). Uses hysteresis with threshold=0.001 to prevent whipsaw signals.
- **Bearish_Signal:** Backtested signal combining trend and momentum deterioration
- **Is_Peak / Is_Trough:** Cyclical turning points detected using `scipy.signal.find_peaks` with `distance=50, prominence=0.015` on the 200MA. This ensures at least 50 trading days (~10 weeks) between consecutive peaks/troughs and a minimum prominence of 0.015.
- **Is_Trough_8MA_Below_04:** Extreme trough marker detected with `prominence=0.02` on inverted 8MA values below 0.4.

### Pink Zone (Bearish Region)
The source repository's charts use a pink background to highlight the most dangerous market condition:

```
Pink Zone = (Breadth_200MA_Trend == -1) AND (8MA < 200MA)
```

This means the long-term trend is declining AND the short-term breadth has fallen below the long-term average. Historically, markets in the Pink Zone experience elevated volatility and downside risk. The Pink Zone is distinct from the Bearish_Signal flag - it is a structural condition that can persist for weeks or months.

---

## Component Details

### C1: Current Breadth Level & Trend (25%)

**Rationale:** The most direct measure of current market health. Higher 8MA means more stocks participating; uptrend in 200MA means the long-term structure is supportive.

**Weighting within component:**
- 8MA Level: 70% - immediate health snapshot
- 200MA Trend: 30% - longer-term regime confirmation

**Key insight:** An 8MA of 0.65 in an uptrend (score ~80) is healthier than 0.65 in a downtrend (score ~62), because the downtrend context suggests the level may be transient.

### C2: 8MA vs 200MA Crossover Dynamics (20%)

**Rationale:** The gap between fast and slow MAs reveals momentum. A wide positive gap means breadth is accelerating above trend; a negative gap means it's deteriorating below trend.

**Direction modifier:** When the 8MA is recovering (rising) while still below the 200MA, this early recovery signal adds +10. Conversely, when 8MA is falling while still above 200MA, this early deterioration signal subtracts -10.

**Key insight:** The crossover point (8MA crossing 200MA) is a significant signal. Bull markets maintain 8MA above 200MA; bear phases see 8MA below 200MA.

### C3: Peak/Trough Cycle Position (20%)

**Rationale:** Breadth moves in cycles. Knowing whether we are in the early, middle, or late phase of a cycle helps calibrate expectations.

**Cycle phases:**
1. **Trough → Early Recovery (0-20 days):** Highest potential for upside if 8MA is rising
2. **Sustained Recovery (21-60 days):** Confirmed recovery with decreasing upside magnitude
3. **Mature Recovery (60+ days):** Late-cycle, watch for next peak
4. **Post-Peak Decline (0-20 days):** Highest risk period
5. **Sustained Decline (21-60 days):** Deep correction territory
6. **Prolonged Decline (60+ days):** Potential bottom formation if 8MA starts rising

**Extreme trough bonus:** When 8MA drops below 0.4 at a trough, history shows these are often excellent long-term entry points, warranting a +10 bonus.

### C4: Bearish Signal Status (15%)

**Rationale:** The dataset includes a backtested bearish signal flag that combines multiple factors. Its value depends on context.

**Interpretation matrix:**
| Signal | Trend | Score | Meaning |
|--------|-------|-------|---------|
| Off | Up | 85 | All clear - no concerns |
| Off | Down | 50 | No immediate danger but bearish backdrop |
| On | Up | 30 | Warning in otherwise bullish environment |
| On | Down | 10 | Full bearish alignment |

**Context matters:** A bearish signal when 8MA is above 0.50 is less concerning (+15 adjustment) than one when 8MA is below 0.25 (-5 adjustment).

**Pink Zone integration:** When in the Pink Zone (200MA downtrend + 8MA below 200MA) but without an active bearish signal, a -10 penalty is applied to reflect structural weakness that the bearish flag alone may not capture.

### C5: Historical Percentile (10%)

**Rationale:** Knowing where current breadth stands relative to the full 10-year history provides framing. Is this level normal, unusually high, or unusually low?

**Overheated/oversold adjustments:** When current 8MA approaches the average peak level, a -10 penalty reflects elevated risk of mean reversion. When near the average trough level, a +10 bonus reflects contrarian opportunity.

### C6: S&P 500 vs Breadth Divergence (10%)

**Rationale:** The most dangerous market condition is when the index makes new highs but breadth is declining (fewer stocks participating). This divergence preceded major tops in 2000, 2007, and 2021.

**Key patterns:**
- **S&P up + Breadth up:** Healthy, sustainable rally (70)
- **S&P up + Breadth down:** Dangerous narrow market (10-25)
- **S&P down + Breadth up:** Bullish divergence, potential bottom (65-80)
- **S&P down + Breadth down:** Consistent decline, wait for stabilization (30)

---

## Composite Score Interpretation

### Zone Thresholds

| Score | Zone | Exposure | Key Actions |
|-------|------|----------|-------------|
| 80-100 | **Strong** | 90-100% | Full position sizing; growth/momentum strategies; wide stops |
| 60-79 | **Healthy** | 75-90% | Normal operations; standard risk management |
| 40-59 | **Neutral** | 60-75% | Selective; tighter stops; avoid speculative names |
| 20-39 | **Weakening** | 40-60% | Profit-taking; raise cash; defensive rotation |
| 0-19 | **Critical** | 25-40% | Capital preservation; hedging; watch for trough |

### Cross-Referencing with Other Skills

- **Market Top Detector:** If breadth is Weakening (20-39) AND top detector is Orange/Red, this is strong confirmation of topping conditions.
- **CANSLIM Screener:** In Strong/Healthy zones, CANSLIM stock selections have higher success rates.
- **Sector Analyst:** Weakening breadth often coincides with rotation from offensive to defensive sectors.

---

## Historical Context

### Average Values (from Summary CSV)
- **Average Peak (200MA):** ~0.729 - breadth cycles typically top around this level
- **Average Trough (8MA < 0.4):** ~0.232 - extreme troughs average around this level
- **Peak Count:** ~5 over 10 years (roughly every 2 years)
- **Trough Count:** ~10 extreme troughs (roughly twice per year on average)

### Notable Historical Patterns
- **COVID-19 (March 2020):** 8MA crashed to extreme lows, followed by one of the sharpest breadth recoveries in history
- **2022 Bear Market:** Sustained period of 8MA below 200MA with multiple bearish signals
- **2023 Recovery:** Gradual breadth improvement with 8MA crossing above 200MA

---

## Live Resources

- **Interactive Dashboard:** https://tradermonty.github.io/market-breadth-analysis/
- **Data CSV:** https://tradermonty.github.io/market-breadth-analysis/market_breadth_data.csv
- **Summary CSV:** https://tradermonty.github.io/market-breadth-analysis/market_breadth_summary.csv
- **Source Repository:** https://github.com/tradermonty/market-breadth-analysis

Data is automatically updated twice daily via GitHub Actions. CSV files are freely accessible without API keys.

---

## Limitations

1. **Lagging indicator:** Breadth data reflects what has happened, not what will happen. Use alongside forward-looking indicators.
2. **No sector granularity:** The breadth index is market-wide. A few large sectors can dominate the reading.
3. **CSV update frequency:** Data depends on TraderMonty's update schedule. Check data freshness before analysis.
4. **Single market:** Covers S&P 500 only. Does not reflect international markets, small caps, or other asset classes.
5. **No volume context:** The breadth index is price-based and does not incorporate volume data.

