How index membership changes, and why we store it with dates
The Nifty 50 of five years ago is not the Nifty 50 of today. How you handle that decides whether your number means anything.
"The Nifty 50 returned X% over five years" is a sentence that hides a considerable amount of machinery. The Nifty 50 of five years ago and the Nifty 50 of today are not the same fifty companies, and how you handle that difference determines whether your number means anything.
Indices are maintained, not fixed
NSE's indices are reviewed on a schedule, with constituents added and removed against published eligibility criteria — broadly liquidity, market capitalisation and free float. Changes are announced ahead of the effective date.
Companies also leave outside the review cycle: on merger, acquisition or a corporate event that makes them ineligible, with a replacement named at short notice.
The consequence is that index membership is a time-varying property. A company was in the index over certain intervals and outside it over others, and "is it in the Nifty 50?" is only answerable relative to a date.
The mistake this invites
The natural way to build an index universe is to take today's constituent list and use it for the whole history. It's one API call, and it's wrong in a specific direction.
Index inclusion follows success. Companies are added after growing into the size and liquidity criteria, and removed after shrinking out of them. So today's list is systematically weighted toward companies that did well over the period you're studying.
Measure that universe's historical performance and you get a flattering answer to a question nobody asked: how did companies that ended the period in the index perform during the period. The answer is knowable in advance. This is survivorship bias in one of its purest forms.
The tell
If a historical index study can be reproduced with a single current-constituents lookup and no date handling anywhere, it has this problem. Correct handling is visibly more work.
How we store it
Method
Index membership is held as effective-dated records rather than a current snapshot. Each constituent row carries the interval over which that company was a member of that index.
A query asking what an index contained on a given date returns that date's membership. Anything conditioned on index membership uses the membership as of the measurement date, not today's.
The practical effect: a stock that joined the Nifty 50 last year is not treated as having been in it the year before, and one that left is not silently erased from the period when it was there.
Which index a stock belongs to, on our pages
Our free tier covers the Nifty 50, and the paid tier extends to the wider universe. That boundary is itself membership-dependent — a stock entering the Nifty 50 moves into the free tier from the effective date, and one leaving moves out.
Handled naively this would produce odd behaviour around review dates: a stock's history appearing or disappearing depending on when you looked. Effective-dating makes the transition explicit rather than retroactive.
Index membership is not a quality signal
Worth stating plainly, because inclusion is often read as endorsement. The criteria are mechanical — size, liquidity, float. They are about tradability, not about whether a business is well run or a share is reasonably priced.
A company can be added to an index near a peak in its fortunes and removed near a trough, which is what the criteria mechanically produce. That's not a flaw in index construction; indices exist to represent the investable market, not to select good investments. It's only a problem when someone reads inclusion as a recommendation.
Why we bothered
Honestly, effective-dated membership is more work than a snapshot and invisible to almost every user. We built it because a meaningful share of what we measure is conditioned on universe membership, and getting that wrong contaminates the results quietly and in a flattering direction.
A measurement that's wrong in an obvious way gets caught. One that's wrong in a way that makes your numbers look slightly better than reality can survive indefinitely.
Key takeaways
- Index membership is time-varying — “is it in the Nifty 50?” is only answerable relative to a date.
- Inclusion follows success and removal follows decline, so today's list is biased toward past winners.
- Using a current constituent list for a historical study answers a question nobody asked.
- We store membership as effective-dated intervals and query it as of the measurement date.
- Index inclusion is a tradability criterion, not a quality endorsement.
See these ideas on real stocks
StockLearn runs this read on ~2,000 NSE stocks every evening. Nifty 50 is free, no login.
Browse today's scan →This guide is educational and explains how StockLearn interprets common technical indicators, using illustrative examples. It is not investment advice or a recommendation to buy or sell any security.