Why a limit order can execute at a better price than the limit
A limit order on Kite can fill at a price better than the limit you set because the exchange matching engine treats your limit as the worst price you will accept, not the exact price you must get. A buy limit fills at the lowest sell offer available at or below your limit; a sell limit fills at the highest buy bid available at or above your limit. When a better price exists on the other side of the book, it is passed to you. The order can fill at your limit or better, but never worse.
This is the single most misread behaviour in order placement. A trader places a buy limit at Rs 190, the order fills at Rs 185.40, and it looks like the limit was ignored and replaced with a market fill. It was not. The fill at Rs 185.40 is the limit order working exactly as designed: it bought at the best available offer, which happened to be Rs 4.60 cheaper than the cap. The limit protected the trader from paying more than Rs 190 and then handed over a better price on top.
This article explains the rule, the worked example Zerodha uses, what a marketable limit order is, the price-time priority that decides who fills first, and the nudge Kite shows when a limit is priced so aggressively that it will behave like a market order. The companion question, why a limit order sometimes does not execute even when the price touches it, is covered in Why a limit order is not executing .
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.
A limit price is a cap, not a target
A limit order sets the boundary price beyond which you will not trade. For a buy, the limit is the most you will pay; for a sell, it is the least you will accept. The exchange does not try to fill you at exactly that number. It fills you at the best opposite-side price that satisfies your limit, which means the limit only ever constrains the bad side of the price.
The consequence is asymmetric in your favour. A buy limit at Rs 190 can fill anywhere from the limit down to the lowest available offer, so it can fill at Rs 190, Rs 188, or Rs 185.40, but never at Rs 191. A sell limit at Rs 180 can fill from the limit up to the highest available bid, so it can fill at Rs 180, Rs 183, or Rs 185.35, but never at Rs 179. The limit caps the loss-making direction and leaves the favourable direction open. This is why a limit fill at a better price is not a malfunction; it is the limit order doing its only job.
The worked example
Zerodha’s support documentation uses a concrete example on SBIN to make the rule visible. Take SBIN trading at Rs 185.40, with the best bid at Rs 185.35 and the best offer at Rs 185.40.
Place a buy limit at Rs 190. The lowest seller is offering at Rs 185.40, well inside your limit, so your order matches there. You buy at Rs 185.40 and save Rs 4.60 against the Rs 190 you were willing to pay. Your limit was never the price; it was the ceiling.
Place a sell limit at Rs 180. The highest buyer is bidding Rs 185.35, well above your limit, so your order matches there. You sell at Rs 185.35 and earn Rs 5.35 more than the Rs 180 floor you set. The limit was the floor, not the sale price.
In both cases the matching engine gave you the best available price within your constraint. The limit prevented a worse fill and the better fill was automatic. Nothing about the order changed into a market order; it remained a limit order that happened to match immediately.
Marketable limit orders
A limit order priced so that it can match immediately against resting orders on the other side is a marketable limit order. A buy limit set at or above the best offer, or a sell limit set at or below the best bid, crosses the spread and executes at once. It behaves like a market order in speed, but with a crucial difference: the limit still caps the price, so it cannot fill beyond the level you set.
This is the deliberate use of the behaviour described above. If you want an immediate fill but refuse to accept a runaway price, set a limit a small distance through the spread. The order executes against the best available price right away, and the limit acts as a backstop against an illiquid book filling you far from the last traded price. A pure market order has no such backstop. On a thin scrip, a market order can sweep several price levels and fill at a price nothing like the last print, whereas a marketable limit stops at your cap. The distinction between the trigger and the limit on stop orders is covered in Trigger price vs limit price .
Price-time priority decides the queue
The matching engine fills orders by price-time priority. Price comes first: the best-priced order on each side is matched before any worse-priced order. Among orders at the same price, time decides: the order that arrived earlier is filled before one that arrived later. The exchange stamps each order with a timestamp on arrival and places it in the queue at its price level accordingly.
This is why your better fill happens. When you cross the spread with a marketable buy limit, you are now the best-priced buyer, so you match against the best-priced resting seller, which is the lowest offer. You take that price, not your own higher limit. Price-time priority also explains the flip side: a passive limit resting in the queue waits its turn behind earlier orders at the same price, which is the subject of Why a limit order is not executing . The same priority rule that gives you a better fill when you cross the spread makes you wait when you rest in it.
The Kite nudge for aggressive limit prices
Kite shows a nudge when a limit price is set far from the last traded price, because such a limit will execute immediately like a market order and the trader may not intend that. The nudge fires when a buy limit is set more than a threshold above the LTP, or a sell limit more than a threshold below it: the published thresholds are 2% for equity and futures and 5% for options.
The nudge is a guardrail against accidental marketable limits. A trader who types Rs 190 into a buy limit on a Rs 185 stock, intending to wait for the price to rise, would instead get an immediate fill at the current best offer, because Rs 190 is already above every resting seller’s price. The nudge surfaces this before the order goes in. Kite’s broader behavioural-nudge system is described in Kite nudges ; this specific nudge is one of the price-versus-LTP warnings in that set. If the immediate fill is what you want, you confirm and proceed; if not, you reprice.
When you need an exact price instead
If you do not want immediate execution at the best available price, a plain limit order is the wrong tool, because it will always take a better price if one exists and will execute immediately if it is marketable. Use a trigger-based order instead. A stop-loss or a GTT order does not place anything on the exchange until the trigger price is reached, so it activates at the level you choose rather than crossing the spread now.
The two designs answer different questions. A limit order answers “fill me at this price or better, now, if you can,” and it optimises the price within your cap. A trigger order answers “do nothing until the market reaches this level, then place an order,” and it waits for a condition. For a target entry at a specific level on a stock currently away from it, the trigger order is correct; for the best available fill within a price ceiling right now, the limit order is correct, and the better-than-limit fill is the feature, not a bug.
See also
- Limit order on Kite
- Market order on Kite
- Why a limit order is not executing
- Trigger price vs limit price
- SL-M order on Kite
- GTT order on Zerodha
- How to place a GTT order on Kite
- Order validity types
- Disclosed quantity orders
- Iceberg order on Kite
- Kite nudges
- Why orders get rejected on Kite
- Charges shown on the Kite order window
- Margin required on the Kite order window
- CNC product code
- MIS product code
- NRML product code
- Cover order (Zerodha)
- AMO on Zerodha
- Kite (Zerodha)
- Kite web
- Kite mobile app
- Zerodha
- National Stock Exchange
- Bombay Stock Exchange
- SEBI
External references
- Zerodha support: Why did my limit order get executed at market price?
- Zerodha support: What are limit and market orders?
- Zerodha support: How to use a limit order as a market order
- Zerodha support: limit price far from LTP nudge
- Zerodha Varsity: order types
- NSE India: trading and matching framework
References
- Zerodha support, Why did my limit order get executed at market price? (SBIN worked example, as of 21 June 2026).
- Zerodha support, What are limit and market orders? (as of 21 June 2026).
- Zerodha support, limit price far from LTP nudge, 2% equity and futures, 5% options thresholds (as of 21 June 2026).
- NSE India, capital market trading system, price-time priority matching rules.
- SEBI, framework for order matching and best-price execution on recognised stock exchanges.