Open an export and you will find a SERIES column sitting right after the date, usually reading EQ on every row. Then one day it does not, or the same date appears twice with different letters, and a moving average quietly goes wrong.
The series code tells you which market segment a stock traded in that day. It changes what is allowed — most importantly whether intraday trading is permitted — and it changes what you should do with the row.
Why the same date can appear twice
This tool requests all series rather than just EQ. That is deliberate: filtering to one series server-side would silently drop history for any stock that moved between segments, and you would never know data was missing.
The consequence is that if a security genuinely traded in more than one series on a date, you get a row for each. They are not duplicates — they describe different segments — so before computing anything, decide which series you want and filter to it.
The codes you will actually encounter
| Series | Segment | What it means for the stock |
|---|---|---|
EQ | Equity, rolling settlement | The normal case, and what most analysis assumes. Intraday trading is allowed: you can buy and sell the same day without taking delivery. |
BE | Trade-to-trade (book entry) | Delivery is compulsory. Every trade must be settled by actually transferring shares — no intraday squaring off, no netting. Securities are placed here as a surveillance measure, often after unusual price movement. |
BZ | Trade-to-trade, surveillance | Also compulsory delivery, applied to securities under specific regulatory or compliance action. Effectively a stronger signal of trouble than BE. |
SM | SME platform | Small and medium enterprises listed on NSE’s SME segment. Different listing requirements, far lower liquidity, and lot-size trading rather than single shares. |
ST | SME, trade-to-trade | The SME segment’s compulsory-delivery equivalent of BE. |
Other codes exist for instruments outside ordinary equity — government securities, permitted-to-trade securities, and various debt instruments each have their own. If you are pulling a normal listed company you are very unlikely to meet them. The exchange’s own circulars are the authority if you encounter one not listed here.
Why trade-to-trade changes the numbers
Being moved to BE or BZ is not a cosmetic relabelling. It changes market behaviour in ways that show up directly in your data.
- Volume collapses.A large share of normal turnover is intraday. Remove that and traded quantity drops sharply — often by most of its previous level — with no change in the underlying business. A volume “crash” in your chart may be a segment change, not fleeing investors.
- Delivery percentage pins near 100%. By construction, since delivery is mandatory. Any delivery-based signal becomes meaningless for those rows — see the delivery guide.
- Price bands are usually tighter. Securities in these segments typically carry restrictive circuit limits, so daily ranges compress and the stock may sit at a limit for consecutive sessions.
- Liquidity risk rises. Wider spreads and thinner books make execution assumptions in any backtest more optimistic than reality.
Which rows to keep
For most analysis, filter to EQ. That gives the clean, comparable series nearly all conventional work assumes.
But check what you dropped first. If a stock spent six months in BE, filtering to EQ leaves a six-month hole. Your moving average will then span a gap it cannot see, and any return computed across the boundary silently covers half a year instead of a day.
The habit worth building, before any calculation:
- Count rows per series. In Excel or Sheets:
=COUNTIF(B:B,"EQ"), then the same forBEandBZ. - If anything other than
EQappears, find the dates it covers before deciding. - Check for date collisions —
=COUNTIF(A:A,A2)>1flags any date appearing more than once. - Then filter, and confirm your remaining dates are actually contiguous across trading days.
For a continuous price history through a segment change, keep every series and sort by date — a stock’s price is its price regardless of which segment it printed in. Just be aware that volume and delivery figures are not comparable across the boundary, so treat those columns as broken at the transition rather than as a real change in participation.
Segment changes are events worth noticing
Because trade-to-trade placement is usually a surveillance response, a transition from EQ to BE is itself information: something drew regulatory attention around that date. The reverse transition suggests the concern was resolved.
You do not need external data to spot these. Sort by date, scan the SERIES column for changes, and note the dates — then look up what happened. It is one of the few genuinely useful signals sitting in plain sight in a price file.
Next
The other column that behaves differently by series is delivery percentage — how to read it, and when it lies.
Keep reading
- Every column in your NSE export, explained — What OPEN, HIGH, LOW, PREV. CLOSE, LTP, CLOSE, VWAP, VOLUME, VALUE, NO OF TRADES, DELIVERY QTY and DELIVERY % actually mean in an NSE historical data file — and where people misread them.
- Delivery percentage: how to read it, and its limits — How NSE delivery quantity and delivery percentage are calculated, what high and low readings suggest about participation, and the cases where the number misleads.
- Working with your NSE export in Excel or Google Sheets — Ready-to-paste formulas for daily returns, moving averages, volatility and drawdown, written against the exact column layout this tool produces.
Or go straight to the download console and pull a file.