Guide · Market microstructure

Order flow trading in India

The short answer

Order flow trading reads the individual transactions behind a candle and asks which side crossed the spread, which is to say who was in a hurry. That is a better question than a candle can answer, and the concepts built on it are real: aggressor versus passive, delta, absorption, volume at price. But genuine order-flow reading needs transaction-by-transaction data carrying the aggressor side, and standard Indian retail feeds are periodic snapshots that do not carry it. Most retail delta and footprint tools here therefore infer the aggressor side rather than measure it. Before you learn to read order flow, establish whether you are measuring it.

A candlestick is a summary. It reports four numbers from a slice of time and discards everything else: how price got there, how much changed hands on the way, and above all which side of each transaction was the one unwilling to wait. Order flow is the attempt to recover that discarded detail by reading the transactions themselves instead of the summary of them. The question it asks is genuinely better than the question a candle can answer. Whether you can actually ask it in the Indian market is a separate question, and it turns out to be a question about data rather than about skill. This guide teaches the concepts properly, because they are real and worth knowing, and then it is blunt about the data, because that is where most of what is sold as order flow in India quietly comes apart. The order book itself, the depth ladder and the cost of walking it with size, belongs to the guide to market depth; this page is about the transactions that fire against that book.

A candle is a summary, and the summary hides the argument

A candlestick reports four numbers: the price at the start of the interval, the highest and lowest prices reached inside it, and the price at the end. That is a genuinely useful compression, and for most purposes it is enough. But compression is lossy by definition, and what a candle throws away is not random detail. It throws away the process. Two markets can produce a byte-for-byte identical candle through completely opposite processes, and the candle has no way of telling you which one you are looking at.

The figure below draws that claim literally. Both panels contain the same candle: open 1,240, high 1,252, low 1,236, close 1,248. Both panels contain the same total volume, 11,590 shares. If you saw either panel's candle on a chart you would read it the same way, because it is the same candle. What differs is the ladder either side of it, which splits that identical volume by which participant crossed the spread at each price.

The same candle, two opposite order flows Two footprint ladders either side of an identical candlestick. Left: buy-aggressed volume dominates and peaks at the high, delta plus 3,670. Right: sell-aggressed volume dominates and peaks at the low, delta minus 3,670. Same open, high, low, close and same total volume. The same candle. Two opposite order flows. Illustrative. Open 1,240, high 1,252, low 1,236, close 1,248, and 11,590 shares traded, in both panels. SAME CANDLE AGGRESSIVE BUYING, ABSORBED AT THE HIGH PRICE SELL-AGGRESSED BUY-AGGRESSED 1,252 120 1,480 1,250 180 1,620 1,248 240 1,340 1,246 310 980 1,244 420 760 1,242 560 540 1,240 690 420 1,238 830 310 1,236 610 180 TOTAL TRADED 11,590 DELTA +3,670 Buyers did all the crossing, and the heaviest buying met a passive seller at 1,252. Effort spent at the top; the close came back 4 points. AGGRESSIVE SELLING, ABSORBED AT THE LOW PRICE SELL-AGGRESSED BUY-AGGRESSED 1,252 180 610 1,250 310 830 1,248 420 690 1,246 540 560 1,244 760 420 1,242 980 310 1,240 1,340 240 1,238 1,620 180 1,236 1,480 120 TOTAL TRADED 11,590 DELTA -3,670 Sellers did all the crossing, and the heaviest selling met a passive buyer at 1,238. Price rose anyway, because that buyer took every share. Identical open, high, low and close. Identical volume. Delta +3,670 against -3,670: the flow is the exact opposite. The candle cannot separate these two markets. The aggressor side can. That is the whole claim order flow makes.
Identical candle, identical volume, opposite flow. Both panels open at 1,240, high at 1,252, low at 1,236 and close at 1,248 on 11,590 shares. The ladder splits that volume by which side crossed the spread at each price, giving a delta of plus 3,670 on the left and minus 3,670 on the right. On the left, buyers paid up and the heaviest buying met a passive seller at the high. On the right, sellers hammered the low and a passive buyer took all of it while price rose anyway. The candle cannot separate these. The aggressor side can. Illustrative figures throughout.

In the left panel, buyers did nearly all of the crossing. They paid up for 7,630 shares' worth of aggression, and the heaviest of it landed at 1,252, the high of the session, where somebody sat passively selling into every bid that arrived. The buyers got their high print, and then the close came back four points. Effort was spent at the top and the result did not hold.

In the right panel, sellers did nearly all of the crossing. They hit bids for 7,630 shares, concentrated at 1,238 near the low, and price rose anyway, closing eight points above the open. Every one of those aggressive sells was taken by a passive buyer who did not flinch. Same candle. The opposite argument.

These two sessions do not deserve the same conclusion. The first shows demand exhausting into supply at a high. The second shows supply exhausting into demand at a low. A trader reading only the candle would treat them identically, which is not a subtle loss of nuance but a straightforward inversion of what happened.

This is the honest case for order flow, and it is a strong one. The question a candle answers is where did price end. The question order flow asks is who was in a hurry, and urgency is the more informative of the two, because urgency is expensive. A participant who crosses the spread has decided that the price available right now is worth more than the better price they might get by waiting. That decision costs real money on every single transaction, and people do not repeatedly pay a cost for no reason.

Two clarifications belong here, because both are routinely fudged. First, order flow is not a different kind of volume. Volume counts how much traded. Order flow starts from exactly the same transactions but adds one field that volume does not carry: which side initiated. That single field is the entire difference, and everything on this page depends on it being available. Second, order flow is not the order book. The book is resting intent, the queue of unfilled orders waiting at each price, and it belongs to the market-depth guide along with the impact cost of walking it. Order flow is the record of what actually traded against that book. The book is what people say they will do. The flow is what they did.

Hold on to that second distinction, because it becomes load-bearing later. A great deal of Indian order-flow marketing shows you a picture of the book, or a picture of volume, and calls it flow.

Aggressor and passive: every trade has exactly one of each

Every transaction that has ever printed on an exchange has two counterparties, and exactly one of them chose the moment. That is not a philosophical observation, it is a structural fact about how a matching engine works, and it is the foundation of everything that follows.

One side is passive. It posted a limit order at a stated price and then waited. It might wait a second, or an hour, or forever. In effect it has written the market an option: anybody may trade against it at that price until it is cancelled or filled. In return for granting that option, the passive side gets a better price than the market is currently offering, and it collects the spread when it is hit.

The other side is the aggressor. It sent an order that crossed the spread, a market order or a limit order priced through the touch, and took whatever was resting there. It did not wait, and it did not get to name its price. It paid the bid-ask spread as the fee for immediacy, plus whatever further slippage its size caused as it consumed successive price levels.

The market's own vocabulary is precise about this. An aggressive buyer lifts the offer. An aggressive seller hits the bid. The verbs carry the direction of the crossing, because the crossing is the thing being named.

The two roles in every transaction. Note the asymmetry in the last column: the aggressor leaves a record, and the passive side leaves almost none until somebody trades against it.
RoleWhat they submittedWhat it costs themWhat the transaction record holds
Aggressive buyerA market order, or a limit order priced at or above the best askThe spread, plus slippage if the size walks up through several price levelsA buy-initiated print, at the resting seller's price
Passive sellerA limit sell order resting at or above the best askImmediacy: the risk that price leaves without them, and that they are filled precisely when they should not beNothing on its own. It becomes visible only when somebody trades against it
Aggressive sellerA market order, or a limit order priced at or below the best bidThe spread, plus slippage if the size walks down through several price levelsA sell-initiated print, at the resting buyer's price
Passive buyerA limit buy order resting at or below the best bidImmediacy, and adverse selection: the orders that fill fastest are often the ones you least wanted filledNothing on its own. It is legible only through what it absorbs

The asymmetry between these two roles is what makes the aggressor side informative. A passive order tells you what somebody would like. An aggressive order tells you what somebody was willing to pay to have now, and that willingness has a price tag attached. Patience is free; impatience is not. When one side of a market consistently pays for immediacy and the other consistently collects for supplying it, that is a real and measurable asymmetry of behaviour, and it exists whether or not anybody is watching.

Now the awkward part. Nothing about the aggressor side is visible on a price chart. A chart shows that 11,590 shares traded and that the close was 1,248. It cannot show that 7,630 of those shares were bought by somebody crossing, because that field is simply not present in the data a chart is drawn from. Volume is a single unsigned number per interval. Order flow requires that number to be split in two, and the split is possible only if each individual transaction carries a tag naming its initiator.

Which gives the single most important sentence on this page, so it is worth stating flatly: order-flow analysis is volume analysis plus one extra field, and that field is the aggressor side. Remove the field and you are doing volume analysis, whatever the chart is called. Nearly every dispute about whether a given Indian retail tool is doing "real" order flow reduces to one question about that field: is it in the data, or is the tool working it out for itself? Hold that question. The rest of the page earns it.

Delta: the arithmetic the aggressor tag makes possible

Once each transaction carries an aggressor tag, arithmetic becomes available, and delta is the whole of it. Add up the volume that was buy-aggressed, add up the volume that was sell-aggressed, subtract the second from the first. Positive delta means buyers did more of the crossing over that window. Negative delta means sellers did. Run the subtraction continuously through a session and you get cumulative delta, a line that rises while aggressive buying dominates and falls while aggressive selling does.

The figure below performs it print by print over ten trades, so that nothing in the arithmetic is hidden.

The tape becomes a running number Ten prints tagged by aggressor side. Buy-aggressed volume 3,450, sell-aggressed 1,650, delta plus 1,800 on 5,100 shares. Price moves 40 paise over the same ten prints. Ten prints become one number Illustrative. Every trade is tagged by which side crossed the spread, then the tags are added up. THE TAPE TIME PRICE QTY AGGRESSOR DELTA 09:15:04 1242.10 400 lifted ask +400 09:15:07 1242.30 250 lifted ask +650 09:15:11 1242.30 300 hit bid +350 09:15:16 1242.20 200 hit bid +150 09:15:22 1242.50 600 lifted ask +750 09:15:29 1242.60 750 lifted ask +1,500 09:15:35 1242.50 450 hit bid +1,050 09:15:41 1242.60 900 lifted ask +1,950 09:15:48 1242.60 550 lifted ask +2,500 09:15:55 1242.50 700 hit bid +1,800 PRICE 1242.60 1242.40 1242.20 1242.00 CUMULATIVE DELTA 2,600 1,300 0 +0.40 over ten prints peak +2,500, close +1,800 Buy-aggressed 3,450, sell-aggressed 1,650, so delta is +1,800 on 5,100 shares traded. Buyers paid for 40 paise. Delta measures who was impatient, not who was right, and not that there were more buyers than sellers.
Delta is a subtraction, not an opinion. Ten prints, each tagged by which side crossed, with the running total in the last column. Buy-aggressed 3,450 against sell-aggressed 1,650 gives a delta of plus 1,800 on 5,100 shares, while price advances forty paise. The cumulative line on the right is that running total drawn out: it peaks at plus 2,500 and settles at plus 1,800. Note what it does not say. It does not say there were more buyers than sellers, which is impossible; it says buyers did more of the paying. Illustrative figures.

Across those ten prints, 3,450 shares were bought by somebody lifting the ask and 1,650 were sold by somebody hitting the bid, so delta closed at plus 1,800 on 5,100 shares traded. Price moved forty paise. That ratio of urgency to result is exactly the sort of thing worth noticing, and it is not a thing the raw candle can support.

Now a correction that a great deal of published material gets wrong, including material that is otherwise careful. Positive delta does not mean there were more buyers than sellers. There cannot be more buyers than sellers. Every share bought is a share sold; total buying and total selling are equal by construction, in every market, in every interval, always. What delta measures is not the balance of buyers against sellers, which is fixed at zero, but the balance of urgency between them. It answers "which side was more willing to pay for immediacy", never "which side was bigger".

That distinction is practical, not merely semantic. If you believe delta counts buyers, a large positive delta reads as bullish on its own and you will trade it directly. If you understand that delta counts impatience, a large positive delta becomes a question rather than an answer: buyers were paying up, so what did they get for it? Sometimes the answer is plenty of price, and the read is unremarkable. Sometimes the answer is almost no price at all, and that is far more interesting, because it means somebody was standing on the other side of it.

Three ways cumulative delta is commonly read, in rough ascending order of usefulness:

Delta and price agreeing. Price rises and cumulative delta rises with it. This is the ordinary case and it is close to uninformative, because the chart had already told you price rose. A tool that mostly shows you this is mostly redrawing your chart in a second colour.

Delta at an extreme. A very large one-directional delta inside a short window marks urgency, which is genuine information about the last few seconds. Urgency is not the same as direction that persists. A panicked retail flush and a well-worked institutional exit can look similar on a delta reading, and only one of them implies anything at all about tomorrow.

Delta and price diverging. Cumulative delta falls hard while price refuses to break, or climbs steadily while price refuses to make new highs. This is where nearly all of the value sits, and it is the subject of the next section.

One caveat travels with every reading above. All of it assumes the aggressor tags are correct. On the data most Indian retail traders actually receive, that assumption is doing more work than it can bear, for reasons set out further down this page. Read the concepts first, then read the section on data, then decide what you are willing to act on.

Absorption: the one read that earns the trouble

If order flow gives you one durable read, this is it, and much of the rest of this page is scaffolding for it.

Absorption is what happens when heavy aggression meets a passive participant who does not move. Sellers hit the bid, and hit it again, and keep hitting it. Cumulative delta falls hard. Volume piles up. And price does not go down, because every aggressive sell is being taken by a resting bid that keeps being replenished. The selling is not being accepted by the market at a lower price. It is being soaked up at this price by somebody who wants the shares.

Its opposite is acceptance. The same aggression arrives, the resting orders are consumed and not replaced, price moves through the level and then trades comfortably on the other side of it. Nobody was standing underneath.

The figure below sets the two side by side under a deliberately strict constraint: the aggression is identical in both panels, and so is the cumulative delta, which reads minus 4,200 in each. The only thing that differs between them is whether the passive bid comes back.

Absorption and acceptance: identical effort, opposite result Identical sell-aggression bars and an identical cumulative delta of minus 4,200 in both panels. Left, the resting bid is replenished every interval and price holds at 1,196 then rises. Right, the resting bid decays to zero and price is accepted about fifteen points lower. Identical selling. Opposite outcome. Illustrative. The aggression and the cumulative delta are identical in both panels. Only the resting bid differs. ABSORPTION the level holds PRICE 1204 1196 1188 1180 the level, 1,196 RESTING BID AT THE LEVEL 2,600 0 CUMULATIVE DELTA 0 -4,400 SELL AGGRESSION PER INTERVAL Sellers spent 4,200 shares of net aggression and moved price nowhere. The bid was refilled every interval, took all of it, then price lifted. ACCEPTANCE the level gives way PRICE 1204 1196 1188 1180 the level, 1,196 RESTING BID AT THE LEVEL 2,600 0 CUMULATIVE DELTA 0 -4,400 SELL AGGRESSION PER INTERVAL The same 4,200 shares of net aggression, and price fell 15 points. The bid was consumed and never replaced. Nobody was standing underneath. Delta alone cannot tell these apart: it reads -4,200 in both. Delta read against PRICE can. Order flow earns its keep where it disagrees with price. Where they agree, the chart had already said it.
The same effort, and the only variable is who was standing underneath. Four lanes a side: price, the resting bid at the 1,196 level, cumulative delta, and sell aggression per interval. The bottom two lanes are identical in both panels, and the delta reads minus 4,200 in each. The second lane is the entire difference. On the left the bid is refilled to roughly its original size every interval, so it absorbs everything and price holds, then lifts. On the right it is consumed and never replaced, reaching zero by the eighth interval, and price is accepted about fifteen points lower. A delta reading alone cannot separate these. Delta read against price separates them at once. Illustrative figures.

That constraint is the point of the figure. Delta on its own cannot separate absorption from acceptance, because delta is the same number in both. Delta against price separates them instantly. Which yields a rule worth carrying out of this page:

Order flow is interesting exactly where it disagrees with price, and close to worthless where it agrees. Agreement restates the chart. Disagreement means somebody is standing against the flow.

Readers who have worked through the Wyckoff method will recognise this immediately, because it is the same idea in a different vocabulary. Wyckoff's law of effort versus result asks whether the effort expended, which he read through volume, produced a proportionate result in price. Where large effort produces small result, something is absorbing it. Order flow is that law measured at the resolution of individual transactions rather than daily bars. It is not a new insight. It is an old insight with a finer instrument, which is a fair description of most of what microstructure has to offer.

Now the honest limits, because absorption is also the read most often oversold.

It is confirmed only afterwards. While it is happening, "a bid that keeps refilling" and "a bid that has not run out yet" are the same observation. What separates them is what happens next, which is precisely the thing you wanted to know in advance.

You cannot see who is absorbing, or why. A large passive buyer might be accumulating a position, or hedging a derivatives book, or working an index rebalance on a fixed schedule, or unwinding something entirely unrelated. Only the first of those implies anything about direction. The others are mechanical, and they stop when the mechanical task is finished, without warning and without regard to the level.

A refill can simply run out. Absorption that holds for twenty minutes and then fails looks, in hindsight, exactly like a level that was defended right up until it was not. There is no quantity of absorption that guarantees the level survives, and there is no threshold at which the read becomes safe.

None of that makes absorption useless. It makes it evidence rather than proof, which is the correct status for very nearly everything in this field.

The data question, which comes first

Everything above is true of markets in general. What follows is specific to what an Indian retail trader actually receives, and it decides whether any of the above is usable by you.

Start from the requirement. To measure order flow rather than estimate it, you need a transaction-by-transaction record in which each trade carries the side that initiated it, or failing that, the exact quote in force at the instant of each trade so that the initiator can be established without ambiguity. That is the input. Delta, cumulative delta, footprint and absorption are all arithmetic performed on it.

Now the supply. The following describes the position as of 18 July 2026. Data products, tariffs and their terms change, so treat this as a description of the shape of the problem, and verify the specifics with the exchange and with whoever supplies your feed before you rely on any of it.

The National Stock Exchange publishes its real-time data in named tiers. Level 1 carries the best bid and ask. Level 2 carries market depth to the best five bid and ask prices, and it is Level 2 that your platform's depth window is showing you in continuous trading. Level 3 extends the same aggregated depth to the best twenty prices a side. Level 3 is not a recent innovation and it is not hidden, but it is a separately priced exchange product, offered for the cash segment, rather than anything a retail app includes by default. All three are views of the book, of resting intent, rather than of the transactions.

These tiers are also periodic snapshots rather than an event stream, and that difference is not a technicality. An event stream reports every order added, modified, cancelled and executed, in sequence, each with its own timestamp. A snapshot reports what things looked like at the moment of sampling and says nothing whatever about what happened between samples. NSE has described the five-depth feed in terms of a one-second refresh, and SEBI, describing the same free five-level quote snapshot, put it as being updated almost every second. In a liquid name during an active period, a great many transactions will occur inside that second, and the snapshot compresses all of them into one after-the-fact picture, in much the same way a candle compresses a minute.

Now the part that is genuinely surprising, and that most coverage of this subject gets backwards. The full order-by-order tick-by-tick feed, which does report every add, modify, cancel and trade as a separate timestamped event, is not locked away behind a privilege or a colocation contract. In 2018 SEBI required the exchanges to supply tick-by-tick feeds to all trading members free of cost, conditional on the member building the infrastructure needed to receive and process them. The gate is real, but it is architectural rather than regulatory. That feed is a firehose measured in events per second per symbol; consuming it needs machinery, and what a broker can practically push down to a phone is a small periodic packet. Retail does not lack this data because it is forbidden. Retail lacks it because nobody is redistributing a firehose to a mobile app, which is a different problem with different implications.

So look at what the retail packet actually contains: last traded price and quantity, an average price, cumulative volume, total buy and total sell quantity, the session's open, high, low and close, open interest where it applies, and five bid and five ask entries. There is no field anywhere in it naming the initiator of any individual trade.

The trap inside that list. The total buy quantity and total sell quantity fields in a retail packet are the totals of resting, pending orders on each side of the book. They are pending demand and pending supply. They are emphatically not aggressive buying volume against aggressive selling volume, and they are not delta. A tool that presents them as a buy-versus-sell volume split, or as a "buyer or seller pressure" gauge, is not measuring flow at all: it is relabelling the depth window. This confusion is common enough that it is worth checking on whatever you are using right now.

Put all of that together and the consequence is unavoidable. A retail footprint or delta chart in India is not reading the aggressor side. It is inferring it, almost always by comparing each trade price against the most recently seen bid and ask: at or above the ask, call it buy-initiated; at or below the bid, call it sell-initiated; anywhere in between, guess, usually from the direction of the last price change.

It is worth being precise that there are three tiers of knowledge about the aggressor side, not two, because the distinction between the middle one and the bottom one is exactly what is being blurred when a retail tool borrows institutional vocabulary.

Measured. The side is stated. BSE's un-netted professional trade feed, in which every on-exchange trade is reported individually, carries an explicit aggressor-side field per trade, with its own timestamp. Nothing is being worked out; the exchange says which side crossed.

Derived. The side is not stated but follows with certainty. NSE's tick-by-tick feed carries no aggressor field, but each trade names both the buy and the sell order, against a stream containing every order's arrival. Whichever of the two was not already resting is the aggressor. That is a deduction, not a guess, and it is exactly as reliable as the stream itself.

Inferred. The side is estimated from a price comparison against a quote that was sampled at some earlier instant. This is the retail case, and it is the only one of the three that can be wrong.

That rule is not stupid. On calm data it is right most of the time. But it fails in exactly the conditions that make order flow interesting, and the figure below shows what the failure costs.

Inference is not measurement Ten trades. Three aggressor tags inferred wrongly turn a true delta of minus 670 into an inferred delta of plus 1,070, reversing the sign of the conclusion. Inference is not measurement Illustrative. Ten trades. Three aggressor tags guessed wrongly, and the delta changes sign. THE EVENT STREAM what the exchange itself knows 1 500 buyer crossed 2 300 seller crossed 3 400 buyer crossed 4 650 seller crossed 5 250 buyer crossed 6 800 seller crossed 7 300 buyer crossed 8 450 seller crossed 9 600 buyer crossed 10 520 seller crossed WHAT THE TOOL DRAWS the aggressor side, inferred 1 500 buyer crossed 2 300 seller crossed 3 400 buyer crossed 4 650 buyer crossed WRONG 5 250 buyer crossed 6 800 seller crossed 7 300 seller crossed WRONG 8 450 seller crossed 9 600 buyer crossed 10 520 buyer crossed WRONG THE INFERENCE RULE applied to a snapshot feed at or above the ask the buyer crossed at or below the bid the seller crossed anywhere in between guess from the last tick WHERE IT BREAKS print 4 quote moved between the trade and the snapshot print 7 trade printed between the bid and the ask print 10 the sampled quote was already stale THE DAMAGE TRUE DELTA -670 sellers crossed on net INFERRED DELTA +1,070 reads as buyers on net MIS-TAGGED 3 of 10 1,470 of 4,770 shares SIGN OF THE READ REVERSED the conclusion inverts
Three wrong tags in ten reverse the conclusion. The left column is the aggressor side as an order-by-order event stream knows it. The middle column is the rule a snapshot feed must fall back on, together with the three situations that break it. The right column is what the tool then draws. Only 1,470 shares of 4,770 are mis-tagged, yet the delta moves from minus 670, meaning sellers were crossing on net, to plus 1,070, which says the opposite. The chart looks equally confident either way. Illustrative figures.

Ten trades. Three tags wrong, covering 1,470 of 4,770 shares. And the delta reading does not merely lose precision, it changes sign: the true reading is minus 670, meaning sellers were doing the crossing on net, while the inferred reading is plus 1,070, which says the opposite. Somebody acting on the second is not being slightly misled. They are being told the reverse of what happened.

Three further details make this worse rather than better.

The errors cluster exactly where you care. Mis-tagging happens when the quote moves between the trade and the sample, when a trade prints between the bid and the ask, and when the quote used for comparison is already stale. All three become far more likely during fast, heavy, one-sided activity, which is precisely the condition under which somebody decides to consult their delta chart in the first place. The instrument is least reliable at the moment it is most consulted.

The errors do not announce themselves. A footprint built on inferred sides looks exactly as crisp and authoritative as one built on measured sides. The numbers are rendered to the individual share. There is no confidence band, no shading, nothing that says "these three prints were guesses". The confidence of the display is entirely unrelated to the confidence of the data behind it, and that is a far more dangerous property than plain inaccuracy.

The errors compound in a cumulative measure. Delta over one minute absorbs a handful of mistakes. Cumulative delta over a session carries every one of them forward for the rest of the day. A divergence appearing on a cumulative delta line late in the afternoon may be a real divergence, or it may be the accumulated residue of a few hundred small mis-attributions since the open, and nothing on the chart distinguishes those two cases.

The published data ladder, and what each rung can honestly support. Read the fourth column first: it is the one that decides whether delta is measured, derived or guessed. Note the last row but one: the gate on the event stream is infrastructure, not permission. Descriptive of the position as of 18 July 2026; verify current tiers, tariffs and terms at source before relying on any of it.
Data layerWhat it containsUpdate modelAggressor sideWho it reaches, and why
Level 1Best bid and best ask, last traded price and quantity, cumulative volumePeriodic snapshotAbsentEvery retail platform. The baseline quote
Level 2, five a sideResting quantity aggregated at each of the best five bid and ask pricesPeriodic snapshot, of the order of one secondAbsentThe standard retail depth window. This is what you are looking at
Level 3, twenty a sideThe same aggregation, extended to the best twenty prices a sidePeriodic snapshotAbsentA separately priced exchange product, cash segment. Not a default retail feed
Tick by tick, order by orderEvery order add, modify, cancel and trade, in sequence, individually timestampedEvent by eventDerivable with certainty, by pairing each trade's two order identifiersRequired to be made available to trading members without charge, subject to them building the infrastructure to consume it
Un-netted professional trade feedEvery on-exchange trade reported individually, with the initiating side stated outrightEvent by eventPresent, as an explicit fieldProfessional multicast subscribers. Not an internet retail product

Note carefully what this argument is not. It is not that Indian markets are opaque, or that retail is being cheated, or that the exchanges are concealing something. The data tiers described here are published, ordinary and unremarkable, every major market has a version of the same ladder, and the deepest tier of all is required to be given to trading members for nothing. Nor is the argument that inference is worthless, because a mostly-right tag really is more informative than no tag at all. The argument is narrower and much harder to escape: inference is not measurement, a footprint built on inferred sides inherits the inference error silently, and any honest account of order flow for Indian retail has to say so on the way in rather than in a disclaimer at the bottom.

The commercial consequence follows from the architecture rather than from any conspiracy. Reading order flow properly means consuming an event stream, and consuming an event stream means infrastructure. That is a real threshold, and it is the actual reason most Indian retail traders are working with an estimate. It is also, usefully, a threshold you can ask about in plain language instead of guessing at.

How to check, rather than take this on trust. Ask whoever supplies your data two questions in writing. Does the feed deliver every transaction as its own event, or a snapshot sampled at an interval? And does each transaction carry a field identifying the initiating side, or is that side worked out afterwards from the trade price and the quote? If the answer to the second is that it is worked out afterwards, your delta is inferred, and you now know roughly how wrong it can be and exactly when. A supplier who cannot answer these plainly has given you the answer anyway.

What an Indian retail trader can genuinely measure

The previous section is deflationary but it is not nihilistic. A good deal survives it, and the surviving material has the considerable advantage of being arithmetic rather than estimate. Three things are worth knowing about.

Volume at price. Take every transaction in a session, bin it by the price at which it happened, and you have a profile: a histogram of how much trading occurred at each price. This requires only the traded price and the traded quantity, both of which are published without ambiguity. No assumption about who crossed the spread enters anywhere. The heaviest bin is the point of control, the price at which the market did most of its business; the contiguous band around it holding the bulk of the session's volume is the value area. The figure below computes both from the price path drawn beside it, so the profile is an output of the session rather than a decoration next to it.

Volume at price, computed from the session's own path A price path and the volume-at-price profile derived from it. Point of control 1,196 to 1,198; value area 1,194 to 1,204 holding about 74 percent of volume. Measured from price and quantity alone, with no aggressor tag. What you can measure without an aggressor tag Illustrative. The profile on the right is computed from the path on the left: price and quantity only. 1208 1204 1200 1196 1192 1188 PRICE PATH, ONE SESSION VOLUME TRADED AT EACH PRICE 2% 2% 1% 19% 31% POINT OF CONTROL 6% 8% 10% 8% 12% session open session close point of control 1,196 to 1,198, 31% of the session's volume value area 1,194 to 1,204, 74% of the session's volume MEASURED Traded price and traded quantity are published. Binning one by the other needs no assumption about who crossed the spread, so the profile is arithmetic, not inference. STILL NOT TOLD It shows where trading happened, never who initiated it. A heavy node marks agreement on price, and cannot say whether that agreement was reached by buyers or by sellers paying up.
The profile is computed from the path beside it. Each two-rupee band is the volume that traded while price was inside it, binned from the same session drawn on the left, so the histogram is an output of the series rather than an ornament next to it. The heaviest band, 1,196 to 1,198, is the point of control at about 31 percent of the session; the shaded 1,194 to 1,204 band is the value area holding roughly 74 percent. All of this needs traded price and traded quantity only, and no assumption about who crossed the spread. Illustrative figures.

What a profile is actually telling you is where agreement happened. A heavy node is a price at which a lot of buying and a lot of selling both found the price acceptable, and such prices tend to attract trade again. A thin node is a price the market passed through quickly without much business, and prices tend to move through those regions quickly a second time as well. This is a real and stable observation about how markets distribute activity, and it needs no aggressor tag whatever.

What a profile is not telling you is who initiated any of it. A heavy node marks agreement on price; it cannot say whether that agreement was reached by buyers paying up or by sellers hitting down. That is a smaller claim than delta makes. It is also a claim that survives contact with the data, which delta on a snapshot feed does not.

The depth window. The five-level ladder your platform already shows is genuinely useful, provided you read it for what it is. It gives you the spread, the near-touch depth, and a workable estimate of what your own size would cost to execute immediately. The full treatment, including how to walk the book and compute the impact cost of a given order, belongs to the market-depth guide. Two cautions carry over here: depth is resting intent and can be cancelled in the time it takes you to click, and a large resting order is not support, it is one participant's current opinion.

Delivery percentage. This one is specific to the Indian cash market and it is badly underused. Both exchanges publish, per security and per trading day, the deliverable quantity alongside the quantity traded, and the ratio itself, in their daily delivery-position files. You do not have to compute it, and you do not have to wait for the next morning: the files appear the same trading day, after the close. It separates volume that resulted in an actual change of ownership from volume that was opened and closed inside the same session.

It is not order flow, and it should not be dressed up as such. It is daily rather than intraday, it says nothing about who crossed the spread, and it necessarily arrives only after the close, because deliverable quantity is a post-session netting figure that does not exist while the market is open. Any tool showing you a live intraday delivery percentage is showing you an estimate of a number that has not been calculated yet. But the published figure is measured, and it speaks to commitment, which is usually the very thing intraday delta is reached for in order to establish. A large move on heavy volume with a low delivery proportion tells a materially different story from the same move with a high one. Two practical notes: the ratio is blanked for securities in the trade-for-trade series, where every trade goes to delivery by definition, and the volume guide covers how to use the figure properly.

Measured or inferred? Run any order-flow tool you are offered down this column. Anything marked inferred can still be useful, but it must be discounted rather than read off.
What the tool showsWhere the number comes fromStatusWhat that means for the read
Traded price and quantityPublished directly by the exchange for every transactionMeasuredTrust the figure. It is the raw material for everything else
Volume at price, point of controlTraded price binned by traded quantity, pure arithmeticMeasuredTrust the shape. It shows where business happened, not who initiated it
Delivery percentagePublished per security per trading day, ratio included, after the closeMeasuredTrust it, at daily resolution only. A commitment tell, not a flow tell
Resting depth, five levelsSnapshot of the book at the sampling instantMeasured, but perishableTrue when sampled, cancellable immediately afterwards
Total buy and total sell quantityTotals of pending resting orders in the retail packetMeasured, and routinely mislabelledPending demand and supply. Reading these as buying volume against selling volume is a category error, not a rough approximation
Aggressor side per tradeEstimated by comparing each trade price against the last seen quoteInferredMostly right on calm data, least reliable exactly when activity is heaviest
Delta, cumulative delta, footprintBuilt entirely on the inferred aggressor side aboveInferredErrors are invisible in the display and accumulate through the session
Queue position, iceberg detectionRequires order-by-order data the retail feed does not carryNot availableAny tool claiming these on a retail feed is claiming more than it has

The pattern in that table is the practical takeaway of the whole page. The measured rows are modest and reliable. The inferred rows are exciting and unreliable, and they are the ones the marketing is built on. That ordering is not a coincidence: the further a claim sits from what the data can support, the more room there is to make it sound impressive.

Even with perfect data: the horizon problem

Suppose the data problem vanished tomorrow and you received a clean, tagged, order-by-order stream. Order flow would still be a narrower tool than it is usually presented as, for reasons that have nothing to do with feeds.

Order flow is a microstructure lens. It reads the mechanics of execution over seconds and minutes. That is its natural horizon, and information decays out of it quickly, because the conditions it describes, who is currently impatient and who is currently absorbing, are conditions that change within minutes and frequently within seconds. A read about the next ninety seconds is a genuine read. It is not an opinion about next week, and it does not become one by being observed carefully.

This creates a timeframe mismatch that catches a large number of people. Most retail traders who adopt order flow hold positions for days. They are using an instrument calibrated to seconds to inform a decision measured in sessions, and the instrument does not carry that far. If your holding period is a week, the marginal value of knowing who crossed the spread at 11:42 is close to zero, and the cost in attention is not.

The second problem is competition. Microstructure information is contested by the participants best equipped to contest it: those already holding the event stream, sitting closest to the matching engine, and acting automatically. This does not make retail order-flow reading pointless, but it does set the realistic bar. Any read that is simple enough to be mechanised has, in all likelihood, already been mechanised by somebody faster. What survives longest is the part requiring judgement, which is the absorption read, precisely because it is a contextual judgement about whether a level is being defended rather than a pattern that can be matched.

What it can tell you

Which side was paying for immediacy over the last few seconds, and whether heavy aggression at a level is being absorbed or accepted.

What it cannot tell you

Who the participants are, why they are trading, whether they will continue, or anything reliable about a horizon longer than minutes.

What it costs to find out

Continuous attention, on a display engineered to make every second look eventful. The attention is the real price, and it is charged whether or not you trade.

The overtrading hazard is structural, not personal. A footprint display refreshes constantly and always has something new on it. That is a property of the instrument, not a signal from the market. A trader watching a chart that updates once a day makes at most one decision a day; a trader watching prints makes as many as they can stand. The most common outcome of adopting order flow is not better entries, it is more entries, and the costs of more entries are certain in a way the benefits are not.

The honest close: measured, or inferred?

Order flow is a real lens that is frequently sold dishonestly, and both halves of that sentence deserve to survive. The concepts are sound. The aggressor and the passive side are a genuine structural asymmetry. Delta is a coherent measure of urgency. Absorption is the direct descendant of a hundred-year-old idea about effort and result, measured with a finer instrument, and it remains the most useful single read available at this resolution. None of that is marketing.

What is marketing is the quiet omission of the data question. A footprint chart drawn from inferred aggressor sides on a snapshot feed is a real chart of an estimated quantity, and it is presented as a precise chart of a measured one. The estimation is usually reasonable. It is never disclosed. And in the fast, heavy, one-sided conditions under which anybody actually consults it, the estimate is at its worst.

So the first question is not "how do I read order flow". It is am I measuring it, or am I being shown an inference. Four questions settle it for any tool you are offered:

Where does the aggressor side come from? There are only three acceptable answers, and they are not equivalent. The record states it. Or it follows deterministically from an order-by-order stream. Or it is estimated from the trade price against a previously sampled quote. Only the third can be wrong, and the third is the retail case.

Is the feed an event stream or a snapshot? If it samples at an interval, everything that happened between samples has been reconstructed rather than observed.

What happens to an ambiguous print? Every derivation rule has to do something with a trade that prints between the bid and the ask. Ask what. A tool that cannot say has not thought about it.

Does the display distinguish certainty from estimate? Almost none do. Knowing that the display will look identical either way is most of the defence.

If the answers put you on the inferred side of that line, which for most Indian retail traders they will, the sensible response is neither to abandon the subject nor to pretend the problem away. It is to use the parts that survive: volume at price, which is arithmetic; the depth window, read as perishable intent; delivery percentage, read as a daily commitment tell; and the absorption idea itself, which you can watch for using price and volume together without needing a tagged delta at all. Heavy volume at a level with no resulting price movement is absorption's signature, and it is visible without any aggressor field whatever. That is the version of this subject that an Indian retail trader can actually stand behind.

And the deeper point sits upstream of all of it. Order flow, at its very best, refines the timing of an entry at a level you had already identified. It does not find the level, it does not decide whether the trade is worth taking, it does not set the invalidation, and it does not size the position. Those decisions are made before any of this becomes relevant, and they are what the method we teach is built around. A flawless absorption read on a trade that should never have been on the list is worth precisely nothing.

The one-line version. Order flow asks a better question than a candle does. In India, on standard retail data, most tools answer that question by guessing, and they render the guess to the individual share with no indication that it was one. Learn the concepts, use the measured parts, and treat every delta number you are shown as an estimate until somebody tells you in writing where the aggressor side came from.

Common Questions

Frequently Asked Questions

Order flow trading reads the individual transactions behind a candle and asks which side crossed the spread, which is to say who was unwilling to wait. Every trade has one passive counterparty, who posted a limit order and waited, and one aggressor, who crossed the spread and paid for immediacy. A candle records where price ended; order flow records who was in a hurry to get there. It is a lens on execution rather than a strategy, and it does not replace the analysis that decides whether a trade is worth taking at all.

Order flow is volume analysis plus exactly one extra field: the aggressor side. Volume counts how much traded in an interval as a single unsigned number. Order flow starts from the same transactions but splits that number in two, according to whether the buyer or the seller initiated each trade. That one field is the whole difference. Remove it and you are doing volume analysis, whatever the chart is called, which is worth remembering because a good deal of what is marketed as order flow in India is repackaged volume analysis.

Delta is buy-aggressed volume minus sell-aggressed volume over a window, and cumulative delta is that subtraction run continuously through a session. Positive delta means buyers did more of the crossing. It does not mean there were more buyers than sellers, which is impossible: every share bought is a share sold, so total buying and total selling are always equal. Delta measures the balance of urgency between the two sides, not the balance of participants, and urgency is informative because crossing the spread costs money.

Absorption is heavy aggression that fails to move price, because a passive participant keeps replenishing their resting order and taking everything that arrives. Sellers hit the bid repeatedly, delta falls hard, and price holds, which means the selling is being soaked up at this price rather than accepted at a lower one. Its opposite is acceptance, where the resting orders are consumed and not replaced and price moves through. Absorption is the most useful single order-flow read because it is the case where the flow disagrees with price.

Usually not, though the reason is not the one people assume. Standard retail feeds deliver a periodic snapshot rather than an event stream, and the retail packet contains no field naming the initiator of any trade, so retail delta and footprint tools infer the aggressor side by comparing each trade price with the last seen quote. The full order-by-order tick-by-tick feed, from which the aggressor side follows with certainty, is not forbidden to retail: since 2018 the exchanges have been required to provide it to trading members free of charge, provided the member builds the infrastructure to receive and process it. The barrier is architectural rather than regulatory. Nobody redistributes a firehose to a phone.

They are reasonable estimates that are presented as measurements, which is the problem. The rule used to infer the aggressor side fails when the quote moved between the trade and the sample, when a trade printed between the bid and the ask, and when the quote used for comparison was stale. All three become more likely during fast one-sided activity, which is exactly when the chart gets consulted. Errors are invisible in the display, because the numbers are rendered to the share either way, and they accumulate through a session in any cumulative measure.

No, and this is one of the most common confusions in the subject. The total buy quantity and total sell quantity fields in a retail data packet are the totals of resting, pending orders on each side of the book. They are pending demand and pending supply, a summary of the depth window. They are not executed volume, they are not aggressive buying against aggressive selling, and they are not delta. A tool that presents them as a buyer-pressure or seller-pressure gauge is relabelling the order book rather than measuring flow, and the two quantities answer completely different questions.

The point of control is the price at which the most volume traded during a session, and the value area is the contiguous band around it holding the bulk of the session's volume. Both are computed by binning traded quantity by traded price, which needs no assumption about who crossed the spread, so both are measured rather than inferred. A heavy node marks a price at which buyers and sellers repeatedly agreed, and such prices tend to attract trade again. It tells you where business happened, never who initiated it.

Not directly, and that is worth being precise about. Delivery percentage is the proportion of traded quantity that resulted in an actual change of ownership rather than being closed out the same session, published per scrip per day after the close. It is daily rather than intraday, and it says nothing about who crossed the spread. But it is measured rather than inferred, and it speaks to commitment, which is usually the thing intraday delta is reached for in order to establish. It is a useful India-specific effort tell at the daily scale.

No. Order flow is a refinement of timing, applied at a level you had already identified from structure, and it is calibrated to seconds and minutes. Most traders who adopt it hold positions for days, which is a timeframe mismatch the instrument does not survive. It also carries a structural hazard: a display that refreshes constantly always has something on it, so the most common result of adopting order flow is more trades rather than better ones. It never replaces the analysis that finds the level, the stop, or the position size.

Where the facts come from

Sources

  • The NSE data tiers, and the five and twenty level figures. NSE's published description of its real-time data subscription sets out the tiers used on this page: Level 1 as the best bid and ask, Level 2 as market depth to the best five bid and ask prices, Level 3 as depth to the best twenty, and a tick-by-tick feed carrying the full order book. The exchange's own capital-market technical specification confirms twenty levels on each side rather than twenty in total, and its published tariff lists Level 3 as a separately priced product in the cash segment. nseindia.com real-time data subscription
  • The snapshot refresh, and the definition of tick-by-tick. NSE has described its five-depth dissemination in terms of a one-second refresh. A 2018 SEBI board paper describes the free five best bid and ask quote snapshot as being updated almost every second, and uses the word snapshot for it. SEBI circular SEBI/HO/MRD/DP/CIR/P/2018/62 defines the tick-by-tick feed as a detailed view of the entire order book covering the addition, modification and cancellation of orders as well as trades. sebi.gov.in
  • Tick-by-tick is required to be provided to trading members free of cost. This is the correction that matters most on this page, because the common account of the subject has it backwards. The same 2018 SEBI circular requires stock exchanges to provide tick-by-tick feeds to all trading members without charge, subject to those members creating the infrastructure needed to receive and process the feed. The constraint on retail access to order-by-order data is therefore architectural and commercial rather than regulatory, and it is wrong to describe the feed as gated behind colocation. sebi.gov.in
  • Where the aggressor side is stated, and where it is not. BSE's market and reference data interfaces manual documents an explicit aggressor-side field, with a companion timestamp, on trades in its un-netted professional feed, in which every on-exchange trade is reported individually. Its netted feed does not report trades individually. NSE's tick-by-tick trade message carries no aggressor field, but names both the buy and the sell order, so the initiating side follows deterministically from the order stream. Retail streaming packets carry neither: they publish last traded price and quantity, average price, volume, total buy and total sell quantity, session open, high, low and close, open interest, and five bid and five ask entries. This is the basis for the three-tier distinction between a measured, a derived and an inferred aggressor side. bseindia.com
  • Delivery position data. Both exchanges publish daily security-wise delivery position files giving traded quantity, deliverable quantity and the ratio between them, on the same trading day after the close. NSE's file is titled as a security-wise delivery position for compulsory rolling settlement and states the percentage of deliverable quantity to traded quantity directly, so the figure is published rather than computed by the reader. The ratio is blank for trade-for-trade series. nseindia.com
  • Market-access regulation. The Securities and Exchange Board of India frames the rules governing market-data dissemination, colocation and algorithmic access, which is the regulatory context for the tiering described here. Placing orders with no intention of executing them, in order to create a false impression of demand or supply, is prohibited market manipulation and is not a technique this page describes or endorses. sebi.gov.in
  • Microstructure fundamentals. The passive and aggressive roles in a matched transaction, the definition of delta as buy-initiated minus sell-initiated volume, the identity that total buying equals total selling in every interval, and volume-at-price constructions including the point of control and the value area, follow standard definitions of exchange execution mechanics.
  • All quantities on this page are illustrative. Every price, volume, delta and percentage in the figures and worked examples was constructed to demonstrate a mechanism. They are internally consistent, and each figure's totals are computed from the same series it draws, but they are not observations of any real security on any real day.
Educational note. This guide explains market microstructure and order-flow concepts. It is not a recommendation to trade or invest, and it is not investment advice. Bharath Shiksha is an educational publisher, not a SEBI-registered investment adviser or research analyst. Market-data products, their terms and their availability change; verify anything time-sensitive with the exchange and with your own data supplier.

Related guides

Order flow refines the entry. Learn the work that comes before it.