Delivery percentage is the most over-interpreted number in Indian market data. It is genuinely informative, and it is routinely used to justify conclusions it cannot support. This guide covers both halves.
What it measures
On any session, a share can change hands in two economically different ways. A trader who buys and sells the same day never takes ownership — the positions net off in settlement and no shares move. An investor who buys and holds overnight does take ownership, and shares are transferred into their demat account.
DELIVERY QTY counts only the second kind. DELIVERY % expresses it as a share of everything traded:
DELIVERY % = (DELIVERY QTY ÷ VOLUME) × 100
So a stock trading 10 lakh shares with 3 lakh delivered has 30% delivery: roughly seventy percent of the day’s activity was intraday churn that left no ownership change behind.
Both columns are in your export, so you can verify the percentage yourself with =M2/J2*100 — a reasonable sanity check on any row that looks surprising.
The conventional reading
The standard interpretation is about commitment. Intraday traders are renting exposure for hours; deliverers are accepting overnight risk and putting up full capital.
- High delivery suggests positional participation — buyers willing to own the stock rather than scalp it.
- Low delivery suggests speculative churn, where a large headline volume figure reflects the same shares being passed around repeatedly.
- Rising delivery alongside rising price is generally read as a stronger advance than the same move on falling delivery, because the buying is being held rather than immediately recycled.
There is real logic here. But every one of those readings comes with conditions, and the conditions are where people go wrong.
Where the number misleads
It says nothing about direction
This is the big one. Every trade has a buyer and a seller, and delivery counts shares transferred, not who wanted them. High delivery during a decline is just as consistent with committed selling into weak hands as with accumulation. Delivery measures the character of participation, never its direction. Any claim that high delivery is bullish on its own is unsupported by what the number actually is.
In trade-to-trade series it is meaningless
Securities in the BE and BZseries must be settled by delivery — intraday is prohibited. Delivery therefore pins near 100% by rule, not by conviction. Screening for “high delivery stocks” without filtering the series returns a list of surveillance cases. Always check the SERIES column first; see the series guide.
Low volume makes it noisy
A percentage computed on a tiny denominator swings wildly. In an illiquid stock trading a few thousand shares, one modest delivered order can move delivery percentage by tens of points with no informational content whatsoever. Check VOLUME before reading DELIVERY %, and disregard the ratio on very thin days.
Block deals distort it
A single negotiated transaction between institutions is delivered by definition and can be large relative to normal turnover. It will lift the day’s delivery percentage dramatically. That is one transaction between two parties, not a change in market-wide behaviour. Days where both volume and delivery jump while NO OF TRADES stays ordinary are the classic fingerprint — average trade size (VOLUME ÷ NO OF TRADES) exposes it immediately.
Absolute levels are not comparable across stocks
Different stocks have structurally different delivery profiles. A large, heavily traded index constituent attracts enormous intraday activity and may sit at 30–40% delivery permanently. A quiet stock nobody day-trades may sit at 80% permanently. Neither is a signal — it is the stock’s normal state.
Compare a stock only to itself.The useful question is never “is 55% high?” but “is 55% high for this stock, relative to its own recent average?”
The data can be absent or revised
Delivery figures are published on a settlement cycle separate from price data, so recent sessions frequently show blanks. That is a timing artefact, not a zero. Treat blank as unknown — never as no delivery — and make sure your formulas do the same.
Using it properly
A defensible way to use the column, assuming the standard layout with delivery percentage in column N:
- Filter to one series, normally
EQ. - Compute the stock’s own baseline. A 20-session trailing average, at row 21 and filled down:
=AVERAGE(N2:N21). - Express today as a ratio to that baseline, so the figure is scale-free:
=N21/AVERAGE(N2:N21). A reading around 1 is normal for this stock; 1.5 is a genuine outlier. - Require corroborating volume. Elevated delivery on below-average volume is usually noise. Insist on both.
- Check average trade size (
=J21/L21) to rule out a single block masquerading as broad participation. - Read it as context, not as a trigger. It describes who was trading, not what happens next.
The honest summary
Delivery percentage is a decent descriptive statistic about participation and a poor predictive one. It tells you something real — how much of today’s activity resulted in actual ownership — and that is genuinely more than raw volume tells you.
What it does not do is indicate direction, work across different stocks, survive contact with trade-to-trade series, or predict returns. Treated as one input among several it earns its place. Treated as a signal, it will find patterns that are not there.
None of this is a recommendation to trade on anything — see the disclaimer.
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.
- NSE series codes: EQ, BE, BZ, SM and ST — Why your export sometimes has two rows for the same date, what each NSE series code means for how a stock trades, and which rows you probably want to keep.
- 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.