Market breadth
Code: pipeline/tipsheet/compute/breadth.py, publish/breadth.py.
Bundles: markets/breadth/*.
Stock breadth
-
Universe: liquid NSE main-board stocks on each date. A stock qualifies when both are true:
- Its median traded value over the last 60 sessions is at least ₹1 crore a day, in constant rupees. Values are deflated by CPI to the latest month, so the bar doesn’t fall in real terms over 30 years.
- It traded on at least 45 of those 60 sessions.
ETFs and SME stocks are excluded. Delisted stocks count while they traded, so there is no survivorship bias.
-
Prices come from the adjusted panel (see
prices.md). -
Measures:
- share of stocks above their 20-, 50-, 100- and 200-day moving averages
- share with the 50-day average above the 200-day average
- 52-week highs and lows, and the net of the two
- advances, declines and the advance/decline line
- the McClellan oscillator and summation index
- share of stocks 20% or more below their 52-week high
- median drawdown from the 52-week high
- one-month cross-sectional dispersion
-
Start date: 2003-09-11. This is the first date the 60-session median universe reaches 200 stocks. Before that, NSE-only breadth rests on too few liquid stocks, because NSE was young and BSE carried most trading.
Index breadth
- Universe: NSE equity indices, with debt, currency, leveraged, inverse, liquid and VIX indices excluded. That leaves about 130 indices today.
- Measure: share of indices above each moving average.
- Start date: published from the first date with at least 30 indices (2005-04).
Equal weight vs cap weight
The 1-year total-return gap between the equal-weight and cap-weight index, in percentage points:
- Nifty 50 from 1995
- Nifty 500 from 2005
A positive gap means the typical stock beat the big ones.
Validation
We compared against BSE’s official daily advance/decline and 52-week high/low counts (via India Data Hub), 2015–2026, 2,810 days:
- Net advances: correlation 0.959, and 0.95–0.98 in every single year.
- Net new highs: correlation 0.909.
The two exchanges list different stocks, so perfect agreement isn’t expected.
Known limits
- NSE only. BSE-only companies are absent.
- The liquidity floor is a judgement call. It is set once, here, and not tuned to results.
- The weekly full-history bundle is about 144 KB. Split it per chart when the site is built.