Order validity types on Kite, DAY and IOC
Order validity refers to the duration for which an order remains active in the exchange’s order book if it is not immediately filled. On Kite, Zerodha’s trading platform, every order carries one of two validity types: DAY or IOC (Immediate or Cancel). The validity type is selected at the time of order placement in the order form. Understanding the difference between these two types is essential for controlling execution outcomes, particularly for limit orders and conditional orders.
DAY validity
A DAY order remains active in the exchange order book from the moment it is placed until the close of that trading session, unless it is filled or cancelled earlier by the trader. Any unfilled portion of a DAY order is automatically cancelled by the exchange at session close.
Key characteristics:
- Valid for the current trading session only.
- Cancels automatically at the end of the day.
- Cannot be rolled to the next session automatically (see GTT for multi-session persistence).
- The order rests in the book as a visible resting limit order (for limit orders) or as a pending contingent order (for SL and SL-M orders).
DAY is the default and most commonly used validity type for all standard orders on Kite. For market orders, the DAY validity is mostly academic, market orders are designed to fill immediately and will not rest in the book as unfilled orders.
Session close times by segment
| Segment | Session close (DAY validity cancels) |
|---|---|
| NSE / BSE equity | 3:30 PM |
| NSE / BSE F&O | 3:30 PM |
| NSE / BSE currency derivatives | 5:00 PM |
| MCX commodity | Instrument-specific (varies 5:00–11:55 PM) |
Unfilled DAY orders in all segments are cancelled at their respective session close.
IOC (Immediate or Cancel) validity
An IOC (Immediate or Cancel) order instructs the exchange to execute as much of the order quantity as can be filled immediately, and cancel any remaining unfilled quantity. Unlike a DAY order, an IOC order does not rest in the order book after the initial matching attempt.
Key characteristics:
- Executes immediately upon reaching the exchange.
- Unfilled quantity is cancelled instantly, there is no resting order.
- The order will not appear in the visible order book after submission.
- Can result in partial fills (the filled portion executes; the rest is cancelled).
- Can result in no fill at all (if no counter-order is available at the specified price).
IOC is useful when a trader wants to take what is available at a specific price right now, without leaving a visible order in the book that could be seen by other participants.
IOC with different order types
IOC market order: Fill whatever quantity is available immediately across all price levels. This is functionally equivalent to a standard market order for small quantities. For large quantities, the IOC version may result in a partial fill if order book depth is insufficient.
IOC limit order: Fill whatever can be matched at or better than the limit price right now. Any quantity that cannot be filled at the limit price is cancelled. This is sometimes called a “fill-or-partial-cancel-at-limit” order.
IOC SL/SL-M: These combinations are supported on Kite but are less commonly used for intraday purposes. An IOC SL-M fires the trigger and attempts to fill immediately at market; if unable to fill fully, the remainder is cancelled.
DAY versus IOC, key differences
| Dimension | DAY | IOC |
|---|---|---|
| Rests in order book | Yes (if not immediately filled) | No |
| Visibility to market | Yes (after initial routing) | Effectively invisible |
| Partial fill handling | Remainder rests in book | Remainder cancelled immediately |
| Fill certainty | Possible over time | Only at moment of placement |
| Suitable for | Patient accumulation, standard trading | Immediate opportunistic fills, avoiding book exposure |
When to use IOC
Avoiding market information leakage. A trader who places a large limit order with DAY validity makes that order visible in the order book, potentially signalling their intent. An IOC order takes what is available and disappears, leaving no visible footprint.
Algorithmic strategy execution. Algorithmic trading strategies often use IOC orders when they want to execute at a specific price right now or not at all, rather than sitting in the queue.
Options strategies with multiple legs. When entering a multi-leg options strategy, a trader may use IOC for some legs to avoid the risk of one leg sitting in the book while the other fills, creating unintended single-leg exposure.
Capturing fleeting liquidity. In moments of high volatility where a price briefly touches a desired level, an IOC order captures the available quantity at that level and cancels the rest, rather than resting at a price that may quickly become stale.
IOC and the order book, no queue position
Because an IOC order either fills immediately or cancels, it never occupies a queue position in the order book. This means IOC orders cannot benefit from time priority, there is no “early bird” advantage with IOC. The order competes only with other simultaneously-submitted counter-orders at the moment of placement.
Availability on Kite by segment
Both DAY and IOC are available across all major segments on Kite:
| Segment | DAY | IOC |
|---|---|---|
| NSE / BSE equity | Yes | Yes |
| NSE / BSE F&O | Yes | Yes |
| Currency derivatives | Yes | Yes |
| MCX commodity | Yes | Yes |
GTC (Good Till Cancelled), not available on NSE/BSE
Some international markets offer GTC (Good Till Cancelled) validity, where an order persists across multiple sessions until it fills or is manually cancelled. NSE and BSE do not offer exchange-level GTC orders. The GTT (Good Till Triggered) feature on Kite is Zerodha’s broker-side approximation of this functionality, allowing trigger conditions to persist for up to one year.
GTD (Good Till Date), not available on NSE/BSE
Similarly, GTD (Good Till Date) orders, which persist until a specified future date, are not offered as exchange order types on NSE or BSE. Traders seeking multi-day order persistence must use GTT.
Common mistakes and edge cases
Using IOC when liquidity is thin. Placing an IOC limit order at a specific price in a thinly traded stock may result in zero fills if there are no counter-orders at that price at the moment of submission. The entire quantity is cancelled with no execution.
Using DAY for a one-time opportunistic fill. A DAY limit order placed at a price that the market briefly touched will continue to rest in the book after the initial non-fill. If the trader forgets to cancel it, the order may fill later in the session at a price that is no longer desirable given market conditions.
Expecting IOC to always fill at the limit price. An IOC limit order at Rs 100 in a market where the best ask is Rs 102 will result in zero fill. The IOC cancels any quantity not immediately fillable at Rs 100.
IOC market order in pre-open session. Market orders in the pre-open session (9:00–9:08 AM) participate in the call auction. The IOC attribute behaves differently in the auction phase, traders should test this edge case specifically if it is relevant to their strategy.
Regulatory context
The definitions and rules for DAY and IOC validity are specified in NSE trading regulations and BSE trading rules. SEBI’s market microstructure circulars require exchanges to clearly define order validity types and their cancellation conditions. The exchange’s trading member circulars provide specific guidance on IOC order handling, partial fill policies, and the timing of DAY order cancellations.
References
- NSE Trading Regulations, Chapter 4: Order Validity and Cancellation.
- BSE trading rules, order types and validity specifications.
- Zerodha support article: “Order validity types on Kite”, support.zerodha.com.
- SEBI master circular on market microstructure, SEBI/HO/MRD/2023.
- NSE Market Operations Handbook, Section 3.4, Validity Types.