The index pages
Each NSE equity index has its own page at /indices/<name>/: its returns, its calendar years and the falls inside them, its worst falls and how long they took to recover, the range of outcomes for someone who held it, volatility, valuation, what it holds, a yardstick where one means something, and the models and ETFs that use it. Built by pipeline/tipsheet/compute/index_pages.py and published as indices/p/<name> (the weekly series the charts draw) and indices/t/<name> (the tables).
Source and licence
- Returns use NSE Indices’ total-return index (dividends reinvested), repaired against the price index where NSE’s total-return series has bad prints (see
indices.md). Price return uses NSE’s price index for the same index code. - Valuation is NSE’s own published P/E, P/B and dividend yield.
- Holdings come from three NSE Indices files: each index’s current constituents list (a CSV with no weights), its monthly factsheet (sector weights and the ten largest members by weight), and, for the Nifty 50 and Nifty Next 50 only, the monthly “market capitalisation, weightage and beta” file, which gives every member’s weight and goes back to January 2008. NSE publishes full weights for no other index.
- Index levels are not published, under NSE Indices’ terms. Curves are rebased to 100 at their first value.
- The page set is every live index in the
/indices/table with at least a year (252 sessions) of total-return history: 114 on 13 October 2026. Six long-running indices (Nifty Total Market, Midcap Select, Nifty100 Quality 30, India Digital, India Manufacturing, Dividend Opportunities 50) reach my total-return feed only from 19 June 2026, so they have no page until their history is filled in; their names in the table are not links. - A chart whose series has no value yet (rolling 5-year returns on an index with four years of history, a price line where NSE publishes no price index) is left out.
Returns
- Each horizon runs from the last close on or before that date to the last close. Returns over more than a year are annualised (compounded); a year or less, plain. “This year” starts at the previous year’s last close.
- Since runs from the first value in the total-return series. For many indices that first value is well before NSE launched the index; see Back-calculated history below.
- Dividends added is total return minus price return, in percentage points. Over a year or more it is the gap in the annualised rates.
Calendar years
The calendar-year total return and the largest fall from a running peak within the year, with the previous year’s last close as the first peak (J.P. Morgan’s Guide to the Markets convention, as in indices.md). The first year of an index’s history is left out because it has no previous year-end. The current year is marked “so far”.
The falls
- The drawdown is each close against the highest close before it, on total return.
- A fall starts at a high, reaches its lowest close, and ends on the first close at or above that high. The page lists every fall of 10% or more, deepest first, up to ten.
- Durations are calendar time: falling for is high to low, recovering for low to the new high, high to high the whole episode. A fall still open shows how far the index is above its low and how long ago the low was.
- The drawdown chart plots each week’s lowest close against the high, so a trough inside a week is not lost to weekly sampling.
What holding it was like
- Range of outcomes. For spans of 1, 3, 5, 7 and 10 years, the annualised total return over every span of that length that starts on any session in the history: worst, 10th percentile, median, 90th percentile, best, and the share that lost money.
- Spans overlap heavily: a 10-year figure from a 20-year history rests on about two independent decades. The table says how many non-overlapping spans the history holds, so the longer horizons are read with that in mind.
- Rolling returns. The annualised return over the 3 and 5 years to each week.
- SIP. ₹10,000 on the first session of every month, from January of each start year to the last close, valued at the last close, all on the total-return index. The return a year is the XIRR of those cash flows. No fund cost, tracking difference or tax is taken off, so an index fund would have returned a little less. A start year needs at least 12 instalments.
How bumpy
- Volatility is the standard deviation of daily total returns over the past 252 sessions, annualised by √252, as on the
/indices/table. “Usual” is the median of that reading over the whole history. - Best and worst days and months are total returns. The current month is left out of the month lists until it is complete.
- Days of 3% or more count both directions.
Valuation
- NSE’s P/E, P/B and dividend yield at each month-end, from the first month NSE published them for the index.
- The 2021 break. NSE moved from standalone to consolidated earnings on 31 March 2021, so P/E before and after that date is not strictly comparable. The page gives the P/E percentile since March 2021 beside the full-history one and marks the date on the chart. P/B and dividend yield have no such break. (The CAPE and its splice adjustment on
/valuation/cover the core broad indices only.) - When an index’s earnings fall near zero its P/E runs into the hundreds: the Nifty Midcap 150’s reached 754 in 2020–21. The chart leaves out month-ends above three times the index’s median P/E and says how many it left out. The table keeps them.
- A percentile is the share of month-ends at or below today’s reading.
What it holds
- Members: NSE’s current constituents list for the index, as of the date shown (the last time I checked the file). NSE replaces the file at each rebalance and does not date it, so the history of members on these pages starts on 12 October 2026, the first collection. NSE Indices announces every change of members in a press release with its effective date; each morning I read that list and fetch the lists a release says change that day, and every list at least once a week in case a change goes unannounced.
- Sector weights and the ten largest members: NSE’s monthly factsheet. Indices drawn from one sector print no sector split.
- Nifty 50 and Nifty Next 50: every member’s weight, free-float market cap and NSE’s beta from the latest monthly weightage file; the share of the index in its largest 1, 5 and 10 members each month since January 2008; and the members that came in and went out each month.
- A symbol that disappears in the month another appears with exactly the same equity capital is treated as a rename (HEROHONDA to HEROMOTOCO), not a change of member.
- Demerger placeholders (DUMMY…) are left out of the member changes.
- NSE’s 2008 to mid-2009 files give full market cap rather than free-float market cap.
- NSE’s own source defects:
- The Nifty Next 50 files for September and October 2020 are missing their first row, so those months’ weights sum to about 98%.
- The Nifty 50 file for August 2011 prints a weight column that is not weights (it sums to 2,836), and the May 2010 file’s weights disagree with its own market caps by up to 7 points (Reliance at 19.06% on 11.5% of the market cap). Every other file’s weights match its market-cap shares within 0.14 points. Both months’ weights are dropped and left out of the concentration chart.
- NSE never posted a file for May 2018.
- Shared members: the Nifty 100 Equal Weight holds the Nifty 100’s members (NSE’s methodology), so its page uses the Nifty 100’s list.
- No list: NSE publishes no current constituents file for a few indices (some ESG and Shariah indices), and their pages say nothing about members.
Against a yardstick
- Which indices get one:
- Sector, theme and strategy indices are compared with the Nifty 500, the broad market they are drawn from.
- The mid, small and micro cap indices are compared with the Nifty 50, because “mid and small caps or large caps?” is the question their holders face.
- The other broad indices (Nifty 100, 200, 500 and so on) hold mostly the same large companies, so they are not compared with anything.
- Relative strength: the index’s total return divided by the yardstick’s, rebased to 100.
- Three-year lead or lag: the index’s annualised 3-year return minus the yardstick’s.
- Capture, beta, correlation and tracking error use complete months.
- Up capture is the index’s geometric average return in months the yardstick rose, divided by the yardstick’s in those months, × 100. Down capture is the same for falling months.
- Tracking error is the annualised standard deviation of the monthly return gap.
- The table shows the full common history and the last five years.
- Calendar years ahead counts full years only.
Models and ETFs
- Models: the Tipsheet models whose universe includes the index, with each one’s weight in it on the latest model date. Models are rules, not recommendations.
- ETFs: those on the ETF desk whose stated benchmark is this index, with expense ratio, assets, one-year tracking difference and tracking error on the exchange price, and the median daily traded value. These are as defined in
density.mdand the ETF desk’s note.
Back-calculated history
NSE launched many indices years after the history it now publishes for them. Before launch the values are NSE’s back-calculation: today’s rules applied to the past, chosen with that past in view. Rules picked that way tend to look better on that past. Each page states the launch date and marks it on every time chart. The returns, falls and outcome tables cover the whole history, back-calculation included.
Checks
- The Nifty 50’s calendar years reproduce
indices.md:- 2008: −51.3%, with a worst fall of −59.5%.
- 2009: +77.6%.
- 2020: a worst fall of −38.3%.
- The Nifty 50’s worst days fall where expected: 23 March 2020 (−12.9%), 17 May 2004 (−12.2%) and 24 October 2008 (−12.2%).
- The factsheet’s ten largest Nifty 50 and Nifty Next 50 members match the monthly weightage file for September 2026: 20 of 20 weights to 0.01 points.
- Every factsheet’s sector weights sum to 100 within 1.5 points.
- Every weightage file’s weights sum to 100 within 0.6 points, except the known defects above.