How to diagnose why a GTT did not trigger on Kite
A GTT did not trigger almost always for one of two reasons: the last traded price never actually printed at your trigger during market hours, or the GTT was no longer active when the price arrived. A GTT (Good Till Triggered) order on Zerodha fires on the last traded price, the price at which a real trade prints on the exchange, and only during normal trading hours. It does not fire on a bid, an ask, an indicative pre-open price, or a chart wick that no trade backed. This guide walks the diagnosis in order, from the cheapest check to the tick-level dispute, so you can tell a missed tick from a disabled GTT from an execution miss.
The distinction matters because the fixes diverge. A missed tick usually self-corrects: the active GTT stays pending and fires when the price returns. A disabled or expired GTT is dead and needs replacing. A GTT that triggered but did not execute is an execution problem, not a triggering one, and you fix it at the limit-price level, not the trigger level.
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.
Step-by-step procedure
The procedure infobox above lists the six diagnostic steps in order. Work them top to bottom; each one rules out a class of cause before you spend effort on the next. The expansions below explain what to look for at each step and how to tell the causes apart.
1. Confirm the GTT is still active, not disabled or expired
Start here because it is the fastest test and a common cause. Open the GTT tab and read the state of the order. If the GTT is not in the active list, it never had a live instruction to fire when the price arrived.
A GTT can leave the active state before any trigger. Zerodha auto-disables a GTT on a corporate action such as a bonus or stock split, because the trigger level no longer maps to the adjusted price. An equity GTT expires after one year. A derivative GTT lapses when its contract expires. In each case the GTT was gone before your price level printed, so there was nothing to trigger. For the full state list, see GTT states: active, triggered, cancelled, expired, deleted, and disabled . If the GTT is disabled or expired, the diagnosis ends here; place a fresh GTT.
2. Compare the trigger to the last traded price, not the bid or ask
If the GTT is active, test whether the price actually reached it in the way a GTT measures price. A GTT fires on the last traded price. Zerodha describes the mechanism as a trigger that activates “when a stock price hits or crosses the trigger price based on the ticks recorded or displayed live on the system,” where each transaction on the exchange is a tick.
This is the most misunderstood point. A bid sitting at your buy trigger, or an ask sitting at your sell trigger, is not a trade. If the market depth showed a quote at your level but no trade printed there, the LTP never reached your trigger and the GTT correctly did not fire. Confirm an actual trade printed at or through your trigger, using the chart’s traded prices, not a quote you remember seeing.
3. Check that the move happened during market hours
The GTT engine monitors the LTP only during normal trading hours. It does not watch the pre-open session’s indicative price, post-close prints, or any level a stock touched between sessions.
So a stock that gapped down through your sell trigger at the open will fire your GTT at the first trade at or below the trigger in the continuous session, not on the pre-open indicative price. A level that appears on the chart from an auction or a special session, outside continuous trading, does not count. Verify the trigger level was crossed inside live continuous trading, because a level touched only outside it will never fire a GTT.
4. Look for a missed tick on a fast or thin move
If the GTT is active and a real trade did print at your trigger during market hours, the likely cause is a missed tick. The exchange processes hundreds of transactions per second, and if the system does not capture the single tick at your trigger price, the GTT may not fire. Zerodha’s own example: a stock at Rs 102 with a GTT trigger at Rs 100 that “momentarily reached the trigger price of Rs 100” on a tick the system did not record, so the GTT did not trigger.
This is likeliest on two profiles: an illiquid scrip where the trade at your level was a lone small print, and a very fast move that spent only a fraction of a second at your level. The reassurance is that a missed-tick GTT usually stays active: it “can remain pending until the stock price reaches the trigger price again.” It is not consumed by the miss. Re-check the GTT tab; if it is still active, it can still fire.
5. Separate not triggering from triggering but not executing
Before raising a ticket, make sure you are diagnosing the right failure. If the GTT shows triggered in your history or you received a trigger notification but no shares moved, the GTT did fire. The problem is then execution, not triggering: a limit order was placed and the price ran past your limit before it filled.
That is a different fix, made at the limit-price level. The remedy is to set the limit slightly beyond the trigger, a buy limit above the trigger and a sell limit below it, so a fast market still fills. See why a GTT triggered but did not execute and why a triggered GTT is not visible after end of day . Do not chase a triggering bug when the GTT triggered correctly and only the fill missed.
6. Raise a ticket for tick-level review if the price clearly traded through
If steps 1 to 5 leave you with an active GTT, a confirmed trade at or beyond your trigger during market hours, and still no trigger, the dispute is account-specific and needs Zerodha’s logs. Raise a support ticket and ask them to investigate the tick data for that specific GTT. Only Zerodha can see whether their system captured the tick, so a tick-level dispute cannot be resolved from your end. Provide the GTT, the trigger level, and the exact time you believe it traded through.
How the trigger mechanism shapes every cause
Every cause above traces back to a single design fact: a GTT is a server-side conditional order that watches the live last traded price during market hours and submits a regular limit order when the condition is met. It is not an exchange-resident order resting in the book, and it does not see quotes, only trades.
That design produces predictable failure modes. It cannot fire on a quote, so a bid or ask at your level does nothing. It cannot fire outside market hours, so gaps resolve only in continuous trading. It can miss a fleeting tick, so illiquid and fast moves are vulnerable. And it can be retired early by a corporate action or expiry, so an inactive GTT never gets the chance. Knowing the mechanism tells you which check to run, which is why the diagnosis follows the order above rather than guessing.
Reducing the chance of a future miss
You cannot make a GTT watch quotes or run outside market hours; those are fixed. You can reduce the two failure modes you control.
For the missed-tick risk on thin or fast names, do not set the trigger at a razor-thin level that the price will only graze. A buy GTT a touch above a key support, or a sell GTT a touch above a critical level rather than exactly on it, is more likely to catch a real trade. For the execution-miss risk, set the limit beyond the trigger so the resulting order fills in a fast market. For a position you must protect against a gap, accept that a GTT places a limit order that can be skipped, and pair it with active monitoring or use an SL-M order intraday, which exits at market. The 50-active-GTT cap and the one-year validity are covered in GTT validity rules on Kite ; a GTT that quietly expired is a non-trigger you can prevent by renewing on time.
See also
- GTT (Good Till Triggered) order on Zerodha
- How to place a GTT order on Kite
- How to find your GTT orders on Kite
- GTT states: active, triggered, cancelled, expired, deleted, and disabled
- Why a GTT triggered but did not execute
- Why a triggered GTT is not visible after end of day
- The GTT notification flow
- GTT validity rules on Kite
- How to modify a GTT on Kite
- How to delete a GTT on Kite
- GTT order limitations and rejection
- Why was a buy GTT rejected
- How to fix a rejected sell GTT
- GTT for F&O on Zerodha
- SL-M order on Kite
- SL order on Kite
- Limit order on Kite
- Trigger price versus limit price
- 20 market depth feature on Kite
- Kite SL triggered without a hit on the chart
- Circuit limits and price bands
- CNC product code
- Zerodha Console
- Kite by Zerodha
- Zerodha
- National Stock Exchange
External references
- Zerodha support: Why is my GTT not triggered even though GTT conditions are met?
- Zerodha support: Why was my GTT order triggered but not executed?
- Zerodha support: Why are GTTs disabled, cancelled, expired, or rejected?
- Zerodha support: What is the Good Till Triggered (GTT) feature and its types?
- Zerodha GTT terms of service
References
- Zerodha support, Why is my GTT not triggered even though GTT conditions are met? (as of 21 June 2026).
- Zerodha support, Why was my GTT order triggered but not executed? (as of 21 June 2026).
- Zerodha support, Why are GTTs disabled, cancelled, expired, or rejected? (as of 21 June 2026).
- Zerodha terms of service for GTT orders, zerodha.com/tos/gtt (as of 21 June 2026).