Order types limit order order matching Kite Zerodha price-time priority

Why a limit order is not executing

From WebNotes, a public knowledge base. Last updated . Reading time ~11 min.

A limit order can stay pending on Kite even when the last traded price touches or moves through your limit, because a trade printing at your price does not mean there was volume left to fill your order. Exchanges match by price-time priority: among all orders resting at the same price, the earliest one fills first, and the opposite-side quantity can be exhausted by the orders ahead of you before it reaches yours. Your order can watch the price trade at its level and still not execute.

This is the inverse of the better-than-limit fill, and it confuses traders just as often. The LTP ticks to Rs 100, your buy limit at Rs 100 is sitting right there, and nothing happens. The order was not lost and Kite did not fail. The price traded at Rs 100 for some quantity, that quantity went to buyers who were ahead of you in the queue, and your order is still waiting behind them. The LTP is a record that a trade happened, not a guarantee that the book reached you.

This article explains why a limit order does not execute despite a matching LTP: the queue mechanics of price-time priority, why a single print can pass your order, how partial fills leave a remainder pending, and how illiquidity makes all of this worse. The opposite case, why a limit fills at a better price than you set, is in Why a limit order can execute at a better price .

Conflict-of-interest disclosure. This guide is published by the WebNotes Editorial Team for informational purposes and is written independently. WebNotes operates a Zerodha account-opening referral programme, disclosed on the pages that carry the referral link; this guide does not carry it and earns no referral commission from the procedure described here.

Price-time priority is the reason

Exchanges fill orders by price-time priority, a first-come, first-served rule applied within each price level. Price comes first: better-priced orders are matched before worse-priced ones. Among orders at the same price, the exchange stamps each with an arrival timestamp and processes them in chronological order. The order placed earliest at a given price sits at the front of the queue; later orders line up behind it.

Zerodha’s support documentation puts it directly: the exchange assigns a timestamp that determines your position in the queue, and when many traders want to trade at the same price, it creates a queue and processes the orders in chronological order. So when the price reaches your limit, the orders that were placed before yours at that price are filled first. If the available quantity on the other side runs out before it reaches your position, your order stays pending even though the price touched your level. You did nothing wrong; you were simply not first in line. The same priority rule, viewed from the other direction, gives you a better fill when you cross the spread, as covered in Why a limit order can execute at a better price .

A touched LTP is not available volume

The last traded price is the price of the most recent trade, for whatever quantity that trade was. It is a single data point about the past, not a statement about how much volume is available now. A scrip can print at Rs 100 on a trade of ten shares while a thousand shares of buy orders sit queued at Rs 100. That one print moves the LTP to Rs 100 and tells you nothing about whether your order is next.

This is why watching the LTP touch your limit is misleading. The tick confirms a trade occurred at that price; it does not confirm there was enough opposite-side quantity to clear the queue down to your order. To see whether your order has a realistic chance, the order book and market depth matter more than the LTP: they show how much quantity is resting at and around your price, and roughly how deep the queue ahead of you is. A single small print against a thick queue is the textbook case of a limit order that does not fill despite a matching LTP.

Partial fills leave a remainder

A limit order does not have to fill all or nothing. When the opposite side has less quantity available at your price than your order size, the matching engine fills what it can and leaves the rest pending. You see a partial fill: part of your quantity is executed and recorded, and the remaining quantity stays in the book at your limit, waiting for fresh opposite-side orders at that price.

This often reads as a failure when it is normal queue behaviour. You place a buy limit for 500 shares at Rs 100, 200 shares are available there, you get 200, and 300 stay pending. The price may then move away, leaving the 300 unfilled for the rest of the session. The remainder behaves like any resting limit: it holds its place in the time queue at Rs 100 and fills only if new sellers arrive at that price and the orders ahead of it clear. The order’s validity type governs what happens to the unfilled remainder at the close.

Illiquidity makes all of it worse

In a thin scrip the order book is sparse: few resting orders, wide gaps between price levels, and long stretches with no quantity at all at many prices. A price can print on a tiny trade and never reach your resting order, and the queue can clear slowly because so few opposite-side orders arrive. The combination means a limit order in an illiquid name can sit unfilled for a long time even though the LTP has moved through your level several times.

Illiquidity also widens the gap between the LTP and a realistic fill price. With a thin book, the bid and offer can be far apart, so the price you would actually trade at is nowhere near the last print. This is the same condition that makes a market order dangerous in thin scrips, where it can sweep multiple levels and fill far from the LTP. For a limit order the risk is the opposite: not a bad fill, but no fill, because the book never brings enough volume to your price. Surveillance frameworks such as ASM and GSM , and the T2T (trade-to-trade) segment, often apply to exactly these illiquid names and add their own constraints on top.

Validity and what happens to an unfilled order

What happens to an unfilled limit order depends on the validity type you chose. A day order rests in the book until it fills or until the market closes, at which point any unfilled quantity is cancelled. An IOC (immediate or cancel) order fills whatever it can at once and cancels the rest immediately, so an IOC that cannot match on arrival leaves nothing pending. If your order disappeared without filling, check whether it was an IOC or whether the session closed on a resting day order.

A pending limit order fills only if fresh opposite-side orders arrive at your price and the queue ahead of you clears, all within its validity. It does not jump the queue by waiting. So an order that has been pending all session at a price the LTP keeps touching is not stuck; it is simply behind earlier orders that keep absorbing the available volume, and it will fill only when the supply at its price genuinely exceeds the demand ahead of it.

How to improve the chance of a fill

Two levers change the odds. The first is time priority: place the order earlier so you sit nearer the front of the queue at your price. An order placed at the open at a popular round-number price will be far ahead of one placed later at the same price. The second is price aggression: price the limit so it crosses the spread and matches immediately as a marketable limit, which is the behaviour described in Why a limit order can execute at a better price . A marketable limit takes the best available opposite-side price at once instead of resting in the queue.

The trade-off is the usual one between price and certainty. A passive limit at a favourable price may never fill; a marketable limit or a market order fills now but at the best available price rather than your chosen one. If execution certainty matters more than the exact price, cross the spread or use a market order. If the exact price matters more, accept that the order may rest unfilled, and watch the market depth rather than the LTP to judge whether a fill is realistic.

See also

External references

References

  1. Zerodha support, Why didn’t my limit order execute even if the price showed on screen? (price-time priority, as of 21 June 2026).
  2. Zerodha support, What are limit and market orders? (as of 21 June 2026).
  3. Zerodha support, Why was my order executed at different price points? (partial fills, as of 21 June 2026).
  4. NSE India, capital market trading system, price-time priority and order-matching rules.
  5. SEBI, framework for order matching and trade execution on recognised stock exchanges.

Frequently asked questions

Why didn't my limit order execute when the share price reached my price?
Exchanges match orders by price-time priority: among all orders at the same price, the earliest one fills first. If many traders are queued at your price, the orders ahead of you are filled until the available quantity on the other side runs out, and yours can stay pending even though the price traded at your level.
The LTP touched my limit. Doesn't that mean my order should have filled?
Not necessarily. The last traded price only tells you a trade happened at that price for some quantity. It does not mean there was enough opposite-side volume to reach your order in the queue. A single small trade can print at your price while the orders ahead of you absorb all the available quantity.
Why did only part of my limit order execute?
A limit order can fill partially when the opposite side has less quantity available at your price than your order size. The matched portion executes and the remainder stays pending in the book at your limit, waiting for fresh opposite-side orders at that price.
Does an illiquid stock make a limit order less likely to fill?
Yes. In a thin scrip the order book has few resting orders and wide gaps between price levels. A price can print on tiny volume that never reaches your resting order, and your order can sit unfilled for a long time even though the LTP moved through your level.
How do I improve the chance my limit order fills?
Place the order earlier so you sit ahead in the time queue at your price, or price it more aggressively so it crosses the spread and matches immediately as a marketable limit. If immediate execution matters more than the exact price, a market order or a marketable limit fills against the best available opposite-side price at once.
Will my pending limit order eventually fill on its own?
Only if fresh opposite-side orders arrive at your price and the queue ahead of you clears, all within the order’s validity. A day order that does not fill is cancelled at the close. An IOC order that cannot fill immediately is cancelled at once. Check the validity you selected if the order disappeared without filling.

Reviewed and published by

The WebNotes Editorial Team covers Indian capital markets, payments infrastructure and retail investor procedures. Every article is fact-checked against primary sources, principally SEBI circulars and master directions, NPCI specifications and the official support documentation published by the intermediary in question. Drafts go through a second-pair-of-eyes review and a separate compliance read before publication, and revisions are tracked against the SEBI and NPCI rule changes referenced in the methodology section.

Last reviewed
Conflicts of interest
WebNotes is independent. No relationship with any broker, registrar or bank named in this article.