US Options Trade and NBBO Quote Guide
US Options Trade and NBBO Quote Guide
version 1.3 (Jan 2024)
We are here to help you do great things with our market and reference data. For questions, feedback, and other concerns, you may reach our team of experts using the following contact information:
algoseek customer support
support@algoseek.com
(+1) 646 583 1832
algoseek sales
sales@algoseek.com
(+1) 646 583 1832
DATA ORGANIZATION AND FILE FORMAT 4
APPENDIX A. EVENT TYPE CODES 13
algoseek’s Trade and NBBO Quote (TANQ) dataset for US Options on Equity, ETF, ETN, and ADRs is based on the top-of-book quotes (bids and asks), filtering not NBBO quotes, and all trades from the Options Pricing Authority (OPRA) feed, which includes the consolidated last sale and quotation information from the 16 option exchanges that the Securities and Exchange Commission has approved.
All TANQ data files are organized into a single format feed where bars are ordered by the time. The entire trading session includes market hours from 9:30:00 to 16:15:00 ET (and a curb session from 16:15:00 to 17:00:00 for a list of index options).
OPRA is a securities information processor that disseminates, on a current and continuous basis, information about transactions that occurred on the options markets.
Each trade that is executed on an options exchange, as well as each price change quoted on an options exchange is reported to OPRA. Also, OPRA calculates and identifies the National Best Bid and Best Offer (NBBO – highest bid and lowest offer). OPRA consolidates this information and disseminates it via computer-to-computer linkages to the financial community in the U.S. and abroad.
algoseek provides Options market data in plain-text CSV files. Data files have fixed headers on top and rows of data corresponding to individual events. Data is organized with one file per option contract per trading day, so for example, all trade and quote events for AAPL call options @325 strike on the expiration date March 3, 2020, for trading date February 27, 2020, are consolidated in one file. Due to the large dataset size, each CSV file is gzip-compressed, so the uncompressed data is on average 7 times larger than compressed. Also, option contracts for the same expiration are organized into one TAR file.
Table 1 (below) provides the name, description, and data type for each data field (column) in Options TANQ data file.
Table 1: CSV File Fields Schema
Field | Type (Format) | Description |
Date | string (yyyymmdd) | Trading date in yyyymmdd format |
Timestamp | string (HHMMSS.mmm) | Event timestamp in milliseconds
|
CallPut | string | Option type (Call or Put) displayed as “C” or “P” |
StrikePrice | decimal | Fixed price for buying or selling an option contract |
ExpirationDate | string (yyyymmdd) | Expiration date of option contract in yyyymmdd format |
EventType | string | Byte code. See “EventType” section for details |
Side | string | B (Bid) or A (Ask) of the book. Empty field for trade events |
Action | string | EventType and Side as text. See “Action” section for details |
Price | decimal | Option contract pricing |
Quantity | integer | Underlying asset quantity |
Exchange | string | Exchange code. See “Exchanges” section for details |
Conditions | string | Single letter for trade or quote condition |
UnderBidPrice | decimal | The bid price of the underlying security |
UnderAskPrice | decimal | The ask price of the underlying security |
Event timestamp is in milliseconds, ET. Field format: HHMMSS.mmm where
HH: Hour
MM: Minute
SS: Seconds
mmm: Milliseconds
For example, 093101723
The table below shows the list of exchange codes and matching exchange names.
Table 2: Exchange Codes
Exchange Code | Exchange Name |
AM | AMEX |
AR | ARCA |
BA | BATS |
BY | BATS_Y |
BO | BOSTON |
C2 | C2 |
CB | CBOE |
CS | CSE |
EA | EDGA |
EX | EDGX |
FI | FINRA |
IE | IEX |
IS | ISE |
IG | ISE_GEMINI |
IM | ISE_MERCURY |
LT | LTSE |
MI | MIAX |
MP | MIAX_PEARL |
ME | MIAX_EMERALD |
MS | MIAX_SAPPHIRE |
MX | MEMX |
NA | NASDAQ |
NB | NASDAQ_BX |
NP | NASDAQ_PSX |
NS | NSE |
NY | NYSE |
OP | OPRA |
SI | SIAC |
TH | THOMSON |
UN | UNKNOWN |
Table 3 lists the action codes and matching EventType. It is possible for multiple action codes to occur. For example, TI NB: Trade Interest NBBO.
Table 3: Action Codes
Action | EventType |
T | Trade |
C | Trade Cancel |
OI | OpenInterest |
TI | TradeInterest |
FQ | FirmQuote |
NFQ | NonFirmQuote |
R | Rotation |
H | Halted |
NQ | NoQuote |
US | UnderlyingValueSale |
UQ | UnderlyingValueQuote |
I | Indicative Value |
IN | Invalid |
* NB | NBBO |
Conditions are displayed as a single character to represent a normal trade or quote. Table 4 lists Category a (Equity and Index Last Sale) messages and their descriptions.
Table 4. Trade Message Types
Code | Type | Value | Description |
Space Filled | Regular | Indicates that the transaction was a regular sale and was made without stated conditions. | |
A | CANC | Transaction previously reported (other than as the last or opening report for the particular option contract) is now to be canceled. | |
B | OSEQ | Transaction is being reported late and is out of sequence. (i.e., later transactions have been reported for the particular option contract) | |
C | CNCL | Transaction is the last reported for the particular option contract and is now canceled. | |
D | LATE | Transaction is being reported late, but is in the correct sequence. (i.e., no later transactions have been reported for the particular option contract) | |
E | CNCO | Transaction was the first one (opening) reported this day for the particular option contract. Although later transactions have been reported, this transaction is now to be canceled. | |
F | OPEN | Transaction is a late report of the opening trade and is out of sequence. (i.e., other transactions have been reported for the particular option contract) | |
G | CNOL | Transaction was the only one reported this day for the particular option contract and is now to be canceled. | |
H | OPNL | Transaction is a late report of the opening trade, but is in the correct sequence. (i.e., no other transactions have been reported for the particular option contract) | |
I | AUTO | Transaction was executed electronically. Prefix appears solely for information; process as a regular transaction. | |
J | REOP | Transaction is a reopening of an option contract in which trading has been previously halted. Prefix appears solely for information; process as a regular transaction. | |
S | ISOI | Transaction was the execution of an order identified as an Intermarket Sweep Order. Process like normal transaction. | |
a | SLAN | Single Leg Auction Non-ISO | Transaction was the execution of an electronic order which was stopped at a price and traded in a two-sided auction mechanism that goes through an exposure period. Such auction mechanisms include and are not limited to price improvement, facilitation, or solicitation mechanism. |
b | SLAI | Single Leg Auction ISO | Transaction was the execution of an Intermarket Sweep electronic order which was stopped at a price and traded in a two-sided auction mechanism that goes through an exposure period. Such auction mechanisms include and are not limited to price improvement facilitation or solicitation mechanisms marked as ISO. |
c | SLCN | Single Leg Cross Non-ISO | Transaction was the execution of an electronic order which was stopped at a price and traded in a two-sided crossing mechanism that does not go through an exposure period. Such crossing mechanisms include and are not limited to Customer to Customer Cross and QCC with a single option leg. |
d | SCLI | Single Leg Cross ISO | Transaction was the execution of an Intermarket Sweep electronic order which was stopped at a price and traded in a two-sided crossing mechanism that does not go through an exposure period. Such crossing mechanisms include and are not limited to Customer to Customer Cross. |
e | SLFT | Single Leg Floor Trade | Transaction represents a non-electronic trade executed on a trading floor. Execution of paired and unpaired auctions and cross orders on an exchange floor are also included in this category. |
f | MLET | Multi-Leg Auto-Electronic Trade | Transaction represents an electronic execution of a multi-leg order traded in a complex order book. |
g | MLAT | Multi-Leg Auction | Transaction was the execution of an electronic multi-leg order which was “stopped” at a price and traded in a two-sided auction mechanism that goes through an exposure period in a complex order book. Such auction mechanisms include and are not limited to price improvement, facilitation or solicitation mechanism. |
h | MLCT | Multi-Leg Cross | Transaction was the execution of an electronic multi-leg order which was stopped at a price and traded in a two-sided crossing mechanism that does not go through an exposure period. Such crossing mechanisms include and are not limited to customer to customer cross and QCC with two or more options legs. |
i | MLFT | Multi-Leg Floor Trade | Transaction represents a non-electronic multi-leg order trade executed against other multi-leg order(s) on a trading floor. Execution of paired and unpaired auctions and cross orders on an exchange floor are also included in this category. |
j | MESL | Multi-Leg Auto-Electronic Trade against Single Leg(s) | Transaction represents an electronic execution of a multi-leg order traded against single-leg orders/quotes. |
k | TLAT | Stock Options Auction | Transaction was the execution of an electronic multi-leg stock/options order which was stopped at a price and traded in a two-sided auction mechanism that goes through an exposure period in a complex order book. Such auction mechanisms include and are not limited to price improvement, facilitation or solicitation mechanism. |
l | MASL | Multi-Leg Auction against Single Leg(s) | Transaction was the execution of an electronic multi-leg order which was stopped at a price and traded in a two-sided auction mechanism that goes through an exposure period and trades against single-leg orders/ quotes. Such auction mechanisms include and are not limited to price improvement, facilitation or solicitation mechanism. |
m | MFSL | Multi-Leg Floor Trade against Single Leg(s) | Transaction represents a non-electronic multi-leg order trade executed on a trading floor against single-leg orders/quotes. Execution of paired and unpaired auctions on an exchange floor is also included in this category. |
n | TLET | Stock Options Auto-Electronic Trade | Transaction represents an electronic execution of a multi-leg stock/options order traded in a complex order book. |
o | TLCT | Stock Options Cross | Transaction was the execution of an electronic multi-leg stock/options order which was “stopped” at a price and traded in a two-sided crossing mechanism that does not go through an exposure period. Such crossing mechanisms include and are not limited to customer to customer cross. |
p | TLFT | Stock Options Floor Trade | Transaction represents a non-electronic multi-leg order stock/options trade executed on a trading floor in a Complex order book. Execution of paired and unpaired auctions and cross orders on an exchange floor are also included in this category. |
q | TESL | Stock Options Auto-Electronic Trade against Single Leg(s) | Transaction represents an electronic execution of a multi-leg stock/options order traded against single leg orders/quotes. |
r | TASL | Stock Options Auction against Single Leg(s) | Transaction was the execution of an electronic multi-leg stock/options order which was stopped at a price and traded in a two-sided auction mechanism that goes through an exposure period and trades against single-leg orders/quotes. Such auction mechanisms include and are not limited to price improvement, facilitation, or solicitation mechanism. |
s | TFSL | Stock Options Floor Trade against Single Leg(s) | Transaction represents a non-electronic multi-leg stock/options order trade executed on a trading floor against single-leg orders/quotes. Execution of paired and unpaired auctions on an exchange floor is also included in this category. |
t | CBMO | Multi-Leg Floor Trade of Proprietary Products | Transaction represents the execution of a proprietary product non-electronic multi-leg order with at least 3 legs. The trade price may be outside the current NBBO. |
u | MCTP | Multilateral Compression Trade of Proprietary Products | Transaction represents an execution in a proprietary product done as part of a multilateral compression. Trades are executed outside of regular trading hours at prices derived from end of day markets. Trades do not update Open, High, Low, and Closing Prices. |
v | EXHT | Extended Hours Trade | Transaction represents a trade that was executed outside of regular market hours. Trades do not update Open, High, Low, and Closing Prices. |
The Message Type character for the following categories is Space
Category C (Administrative)
Category f (Equity and Index End of Day Summary)
Category d (Open Interest)
For other categories, refer to Table 5.
Table 5: Quote Message Types
Code | Value | Description |
Category H (Control) | ||
A | Start of test cycle | transmitted to signal the start of the transmission of a Test Cycle |
B | End of test cycle | transmitted to signal the end of the transmission of a Test Cycle message |
C | Start of day | signals the start of normal data recipient processing of messages received over a line |
D | Good morning | transmitted by a Participant to signal the beginning of transaction processing by that Participant |
E | Start of summary | transmitted by a Participant to signal the beginning of transmission of one or more End of Day Summary messages by that Participant |
F | End of summary | transmitted by a Participant to signal the end of transmission of one or more End of Day Summary messages by that Participant |
G | Early market close | transmitted by a Participant to signal that the Participant originating the message is closing prior to normal market close time |
H | End of transaction reporting | transmitted by a Participant to signify that the Participant has terminated reporting of transactions |
I | Good night | transmitted by a Participant to advise all data recipients that there are no further messages of any type transmitted for the day by that Participant |
J | End of day | signals the end of transmission of original data over the lines |
K | Reset block sequence number | transmitted when the block sequence number requires resetting |
L | Start of open interest | signals the beginning of transmission of a series of one or more Open Interest messages |
M | End of open interest | signals the end of transmission of a series of one or more Open Interest messages |
N | Line integrity | Generated automatically at intervals of approximately one minute to verify continued integrity of multicast transmission |
P | Disaster recovery data center | disseminated from the Disaster Recovery site to signify that OPRA has switched processing from the Primary Data Center to the Disaster Recovery Center |
Category k (Long Equity and Index Quote) and Category q (Short Equity and Index Quote) | ||
Space | Regular trading | |
F | Non-firm quote | |
I | Indicative value | |
R | Rotation | |
T | Trading halted | |
A | Eligible for automatic execution | |
B | Bid contains customer trading interest | |
O | Offer contains customer trading interest | |
C | Both bid and offer contain customer trading interest | |
X | Offer side of quote not firm; bid side firm | |
Y | Bid side of quote not firm; offer side firm | |
Category Y (Underlying Value) | ||
Space | Index based on last sale | |
I | Index based on bid and offer | |
Event types are represented by a one-byte (8 bits) mask. The “EventType” column has the event as a byte, and the corresponding text is in the Action column. The bit position 0 corresponds to the rightmost bit and 7 is the leftmost bit. Tables 6 and 7 summarize Event Type codes their descriptions.
Note: Most clients do not need to concern themselves with the “EventType” field, as it is translated into text in the Action column.
Table 6: EventType Flags
Bit Position | Description |
0-3 | Message type (integer 3-bit value). See Message Type Table |
4 | Set if the previous trade/quote canceled |
5 | Option type: 1 for call, 0 for put |
6 | Indicates NBBO |
7 | Indicates buy or sell side. Buy side if set and sell side otherwise |
Table 7: Message Type (Bits 0-3)
Value | Message | Value | Message |
0 | Heartbeat (not in use) | 6 | Rotation |
1 | Trade | 7 | Halted |
2 | OpenInterest | 8 | NoQuote |
3 | TradeInterest | 9 | SessionEnd (not in use) |
4 | FirmQuote | 10 | UnderlyingValueSell |
5 | NonFirmQuote | 11 | UnderlyingValueQuote |