Order Flow

Orders in the tastytrade system can go through many different status changes. These statuses can be hard to keep track of and can quickly become overwhelming for new traders. Don't get discouraged! This page is here to help you make sense of the order lifecycle and hopefully help you decipher the statuses of your various orders.

We find that it's easiest to group orders into 3 phases, each of which is described in more detail below:

  1. Submission phase
  2. Working phase
  3. Terminal phase

Submission Phase

Order statuses in the submission phase: Received, Routed, Contingent, In Flight

This phase pertains to orders that have not yet been received by any exchange, and are therefore not considered "working" orders yet.

You may notice that when you initially submit your order, its status is often Routed. Routed means the order is currently being submitted to an exchange.

Immediately following Routed is the In Flight status. In Flight means the order has left our system and is awaiting confirmation that the exchange has received it.

You will see a Received status when you submit an order when the markets are closed. This means that we have received the order and it will be routed as soon as the markets open up.

A status of Contingent applies to complex orders, specifically OTOCO orders. These are special orders that sit dormant in our system until another order "triggers" them, at which point they will be routed to an exchange.

Replacement orders may also be Contingent immediately after you submit them. This means the replacement order is waiting to be "triggered" by the order it is replacing. The trigger occurs when the original order transitions to Canceled status, at which point the replacement order will be routed.

Occasionally you might submit an order and immediately get a Rejected status. This is considered a terminal status (see below) and can occur if, for example, your account doesn't have sufficient buying power to place the order.

Working Phase

Order statuses in the working phase: Live, Cancel Requested, Replace Requested

The working phase is when you can consider an order "live". In other words, it has made it to the exchange and the exchange has sent us confirmation. This phase can last anywhere from a few milliseconds to days or even months (GTC orders stay alive until you cancel them!)

The Live status is always the first status after the submission phase. Once an order is Live, you may cancel it or replace it.

Cancel Requested is the status when you decide to cancel your order. This means that we have sent your request to the exchange and are awaiting confirmation from them. Once we receive confirmation, the order status will become Canceled (see below).

Replace Requested works the same way. Suppose you have a Live order that you'd like to replace. We will refer to this Live order as the original order. You submit a replacement order and we mark the original order Replace Requested. We then send a cancel request for that original order to the exchange. During this time, the replacement order's status is Contingent, waiting for the original order to become Canceled. When the exchange confirms that it has canceled the original order, we will route the replacement order.

This highlights an important feature of the tastytrade system - we don't actually route your replacement order until your original order has been canceled. You can achieve the same effect by cancelling the original order and sending a new order separately. This just allows you to do it in one request.

Terminal Phase

Order statuses in the terminal phase: Filled, Canceled, Rejected, Expired

Once an order enters any of these statuses, it will receive no further status updates. It is terminal.

Filled means your order has been filled. If your order to buy to open 100 shares of AAPL was filled, you now own 100 shares of AAPL.

A few things happen when an order fills that we'd like to note here:

  1. A position is created/updated. Fetch your positions here.
  2. Your account balance is updated. Fetch your account balance here.
  3. A trade transaction is created to reflect the trade and associated fees. Fetch your transactions here.

Rejected status can occur during the submission phase or during the working phase. For example, an order for a non-existent stock symbol will be rejected without ever being routed.

Canceled means the user canceled the order.

Expired mostly applies to day orders that don't fill by the time the market closes. tastytrade automatically marks these as Expired.

Order Status Definitions

StatusMeaningTerminal
ReceivedInitial order stateNo
RoutedOrder is on its way out of tastytrade's systemNo
In FlightOrder is en route to the exchangeNo
LiveOrder is live at the exchangeNo
Cancel RequestedCustomer has requested to cancel the order. Awaiting a 'cancelled' message from the exchange.No
Replace RequestedCustomer has submitted a replacement order. This order is awaiting a 'cancelled' message from the exchange.No
ContingentThis means the order is awaiting a status update of a related order. This pertains to replacement orders and complex OTOCO orders.No
FilledOrder has been fully filledYes
CancelledOrder is cancelledYes
ExpiredOrder has expired. Usually applies to an option order.Yes
RejectedOrder has been rejected by either tastytrade or the exchange.Yes
RemovedAdministrator has manually removed this order from customer account.Yes
Partially RemovedAdministrator has manually removed part of this order from customer account.Yes

Examples of Order Status Transitions

1. Immediate fill

Suppose you submit a market order to buy a few shares of AMZN and it immediately gets filled. The order status would transition like this:

Received -> Routed -> In Flight -> Live -> Filled

2. Canceled by customer

Suppose you submit a limit order to buy some shares of AMZN but it doesn't fill right away, so you decide to cancel it:

Received -> Routed -> In Flight -> Live -> Cancel Requested -> Canceled

3. Expired day order

Suppose you submit a limit order to buy some shares of AMZN, give it a time-in-force of Day, but it sits at the exchange all day and doesn't fill. Finally the order expires when the markets close:

Received -> Routed -> In Flight -> Live -> Expired

4. Rejected by brokerage

Suppose you submit a limit order to buy some options that have already expired. tastytrade's system would recognize this and reject the order immediately. The order status would transition like this:

Received -> Rejected