US Options Trade and Quote Daily Bar
One row per option contract per trading day with the time, price and size of the daily open, high, low and close for NBBO bid, NBBO ask and trades, plus day volume and open interest. Includes Curb-session closing quotes for a few index options and Cboe/MIAX 16:00 indicative marking values.
How to use it
Identify a contract by underlying, expiration, strike and call/put. Most options tick files carry no underlying/root column: the underlying comes from the file path or API identifier, so keep it alongside every row you land. Strikes and prices are plain decimals (not scaled). EventType is a bit field: low 4 bits message type, 16 cancel, 32 call, 64 NBBO, 128 buy/bid side. Check OCC special settlements before comparing prices across a corporate action.
Typical use
Options pricing, volatility, and flow research on US-listed equity and index options.
Limitations
Delivered as recorded from the source feed: AlgoSeek does not remove crossed or locked quotes, bad prints, or out-of-sequence packets unless contracted to. Consumers own cleaning. Contract identity per row = Ticker + CallPut + Strike + ExpirationDate (no OSI/OCC symbol column). Strike is USD per share (4 decimals in sample); ExpirationDate is yyyymmdd (sample column holds yyyymmdd despite the guide's typed format). Open/High/Low/Close are session aggregates of NBBO bid, NBBO ask and trades, each with its own time, price and size. Close quotes are the last NBBO of the regular session (sample shows 15:59:58-15:59:59, not exactly 16:00). Quotes are NBBO from Firm Quote and Customer Trade Interest; Open Interest, Rotation and Trade Interest events are excluded. Trades with condition codes A, B, C, F, G, N, O, T are excluded. Volume = contracts traded 'during market hours'; whether Curb-session trades are included is not stated. No Curb trade or OHLC fields exist, only Curb closing bid/ask.
Coverage
US listed options from the OPRA consolidated feed (all 16 options exchanges); guide intro names options on equities, ETFs, ETNs and ADRs, page also covers Cboe proprietary index options. History start date is not stated; Curb data from 2022-04-25, Cboe indicative values from 2020-10-26, MIAX SPIKE indicative values from 2021-04-16.
Venues (1)
- OPRA consolidated feed (16 options exchanges; individual venues not named)
Usage constraints
- Licensed vendor data: never export raw rows to a tenant-local destination or include them verbatim in a public artifact; serve only through entitlement-checked platform reads.
- Do not treat the vendor's `Ticker` as a stable identity across time; join on an AlgoSeek security key (SecId or ASID, which are distinct) or the platform symbol mapping.
Known issues (11)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Update cadence and publication latency are not stated in the guide; confirm with AlgoSeek (or GET /v1/meta/datasets/{id}/status).
- Documentation discrepancyBundle/page header: the 'page_name' captured for this dataset is actually the page's subtitle sentence; the product is titled 'US Options Trade and Quote Daily Bar'.
- Documentation discrepancyExpirationDate doc type in guide Table 3 is '(HH:MM:SS.mmm)' (typo); the description and sample are yyyymmdd.
- Documentation discrepancyGuide Table 3 intro says it describes the 'Options TAQ Minute Bar CSV file' (copy-paste from the minute guide).
- Documentation discrepancyProduct page says Curb close data is available for SPX, VIX and XSP; guide says SPX, XSP, VIX and, from 2026-02-09, RUT.
- Documentation discrepancyGuide describes CurbCloseBidSize as 'Size with CurbCloseBidkPrice' (typo for CurbCloseBidPrice).
- Documentation discrepancyGuide TOC lists Appendix A (FAQ) on page 8, but the text on page 8 is the Curb/Indicative sections and no FAQ content exists in the PDF text.
- Documentation discrepancyDate column is named TradeDate here but Date in the minute-bar datasets; no TimeBarStart.
- Documentation discrepancyExcluded quote events differ from the minute guides: this guide lists Open Interest, Rotation Bid, Rotation Ask and Trade Interest (minute guides list Non-Firm Quote instead of Trade Interest).
- Documentation discrepancyGuide columns match the 53-column sample header exactly, in the same order.
53 columns in delivery order · file or table name opt_taq_daily. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| TradeDate | dateyyyymmdd | Key 1 · Partition · Required | Trading date Missing values: Never · Source: vendor guide and sample |
| Ticker | string | Key 2 · Partition · Required | Symbol name; sample shows the underlying/root (AAPL). Root vs underlying for index or adjusted roots is not stated Missing values: Never · Source: vendor guide and sample |
| CallPut | string · enum (2) | Key 3 · Required | Option type, C = Call or P = Put Missing values: Never · Source: vendor guide and sample 2 allowed values
|
| Strike | number | Key 4 · Required | Fixed price at which the option can be exercised, quoted per share of underlying Unit: USD · Missing values: Never · Source: vendor guide and sample |
| ExpirationDate | dateyyyymmdd | Key 5 · Required | Expiration date of the option contract (guide doc type is a typo; sample and text say yyyymmdd) Missing values: Never · Source: vendor guide and sample |
| OpenBidTime | timeHH:MM:SS.mmm | Time of the first NBBO bid of the session Missing values: Blank · Source: vendor guide and sample | |
| OpenBidPrice | number | NBBO price of the first bid of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| OpenBidSize | integeri64 | Size with OpenBidPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| OpenAskTime | timeHH:MM:SS.mmm | Time of the first NBBO ask of the session Missing values: Blank · Source: vendor guide and sample | |
| OpenAskPrice | number | NBBO price of the first ask of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| OpenAskSize | integeri64 | Size with OpenAskPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| OpenTradeTime | timeHH:MM:SS.mmm | Time of the first trade of the session Missing values: Blank · Source: vendor guide and sample | |
| OpenTradePrice | number | Price of the first trade of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| OpenTradeSize | integeri64 | Contracts in the first trade Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| HighBidTime | timeHH:MM:SS.mmm | Time of the highest NBBO bid of the session Missing values: Blank · Source: vendor guide and sample | |
| HighBidPrice | number | Highest NBBO bid price of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| HighBidSize | integeri64 | Size of the highest bid price Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| HighAskTime | timeHH:MM:SS.mmm | Time of the highest NBBO ask of the session Missing values: Blank · Source: vendor guide and sample | |
| HighAskPrice | number | Highest NBBO ask price of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| HighAskSize | integeri64 | Size of the highest ask price Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| HighTradeTime | timeHH:MM:SS.mmm | Time of the highest-priced trade Missing values: Blank · Source: vendor guide and sample | |
| HighTradePrice | number | Price of the highest trade of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| HighTradeSize | integeri64 | Contracts in the highest-priced trade Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| LowBidTime | timeHH:MM:SS.mmm | Time of the lowest NBBO bid of the session Missing values: Blank · Source: vendor guide and sample | |
| LowBidPrice | number | Lowest NBBO bid price of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| LowBidSize | integeri64 | Size of the lowest bid price Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| LowAskTime | timeHH:MM:SS.mmm | Time of the lowest NBBO ask of the session Missing values: Blank · Source: vendor guide and sample | |
| LowAskPrice | number | Lowest NBBO ask price of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| LowAskSize | integeri64 | Size of the lowest ask price Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| LowTradeTime | timeHH:MM:SS.mmm | Time of the lowest-priced trade Missing values: Blank · Source: vendor guide and sample | |
| LowTradePrice | number | Price of the lowest trade of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| LowTradeSize | integeri64 | Contracts in the lowest-priced trade Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| CloseBidTime | timeHH:MM:SS.mmm | Time of the last NBBO bid of the regular session Missing values: Blank · Source: vendor guide and sample | |
| CloseBidPrice | number | NBBO price of the last bid of the regular session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| CloseBidSize | integeri64 | Size with CloseBidPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| CloseAskTime | timeHH:MM:SS.mmm | Time of the last NBBO ask of the regular session Missing values: Blank · Source: vendor guide and sample | |
| CloseAskPrice | number | NBBO price of the last ask of the regular session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| CloseAskSize | integeri64 | Size with CloseAskPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| CloseTradeTime | timeHH:MM:SS.mmm | Time of the last trade of the session Missing values: Blank · Source: vendor guide and sample | |
| CloseTradePrice | number | Price of the last trade of the session Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| CloseTradeSize | integeri64 | Size with CloseTradePrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| Volume | integeri64 | Total contracts traded during market hours Unit: contracts · Missing values: 0 · Source: vendor guide and sample | |
| OpenInterest | integeri64 | Open interest for the contract; as-of date semantics are not stated Unit: contracts · Missing values: 0 · Source: vendor guide and sample | |
| CurbCloseBidTime | timeHH:MM:SS.mmm | Time of the last NBBO bid of the Curb session Missing values: Blank · Source: vendor guide and sample | |
| CurbCloseBidPrice | number | NBBO price of the last bid of the Curb session (17:00 ET) Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| CurbCloseBidSize | integeri64 | Size with CurbCloseBidPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| CurbCloseAskTime | timeHH:MM:SS.mmm | Time of the last NBBO ask of the Curb session Missing values: Blank · Source: vendor guide and sample | |
| CurbCloseAskPrice | number | NBBO price of the last ask of the Curb session (17:00 ET) Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| CurbCloseAskSize | integeri64 | Size with CurbCloseAskPrice Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| IndicatBidTime1600 | timeHH:MM:SS.mmm | Time of the bid indicative value (Cboe proprietary index options; MIAX SPIKE) Missing values: Blank · Source: vendor guide and sample | |
| IndicatBidPrice1600 | number | Indicative bid value calculated as of 16:00 ET Unit: USD · Missing values: Blank · Source: vendor guide and sample | |
| IndicatAskTime1600 | timeHH:MM:SS.mmm | Time of the ask indicative value (Cboe proprietary index options; MIAX SPIKE) Missing values: Blank · Source: vendor guide and sample | |
| IndicatAskPrice1600 | number | Indicative ask value calculated as of 16:00 ET Unit: USD · Missing values: Blank · Source: vendor guide and sample |
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- errorprimary_key_uniqueuniqueness
The declared primary key is unique within each delivered partition (one file or table snapshot).
duplicateValues (properties: TradeDate, Ticker, CallPut, Strike, ExpirationDate) must be 0
- errortrade_high_ge_lowaccuracy
HighTradePrice is never below LowTradePrice in the same row.
SELECT COUNT(*) FROM {object} WHERE HighTradePrice IS NOT NULL AND LowTradePrice IS NOT NULL AND HighTradePrice < LowTradePrice - errorbid_high_ge_lowaccuracy
HighBidPrice is never below LowBidPrice in the same row.
SELECT COUNT(*) FROM {object} WHERE HighBidPrice IS NOT NULL AND LowBidPrice IS NOT NULL AND HighBidPrice < LowBidPrice - errorask_high_ge_lowaccuracy
HighAskPrice is never below LowAskPrice in the same row.
SELECT COUNT(*) FROM {object} WHERE HighAskPrice IS NOT NULL AND LowAskPrice IS NOT NULL AND HighAskPrice < LowAskPrice - errorCloseAskSize_non_negativeaccuracy
CloseAskSize is never negative.
SELECT COUNT(*) FROM {object} WHERE CloseAskSize < 0 - errorCloseBidSize_non_negativeaccuracy
CloseBidSize is never negative.
SELECT COUNT(*) FROM {object} WHERE CloseBidSize < 0 - errorCloseTradeSize_non_negativeaccuracy
CloseTradeSize is never negative.
SELECT COUNT(*) FROM {object} WHERE CloseTradeSize < 0 - errorCurbCloseAskSize_non_negativeaccuracy
CurbCloseAskSize is never negative.
SELECT COUNT(*) FROM {object} WHERE CurbCloseAskSize < 0 - errorCurbCloseBidSize_non_negativeaccuracy
CurbCloseBidSize is never negative.
SELECT COUNT(*) FROM {object} WHERE CurbCloseBidSize < 0 - errorHighAskSize_non_negativeaccuracy
HighAskSize is never negative.
SELECT COUNT(*) FROM {object} WHERE HighAskSize < 0 - errorHighBidSize_non_negativeaccuracy
HighBidSize is never negative.
SELECT COUNT(*) FROM {object} WHERE HighBidSize < 0 - errorHighTradeSize_non_negativeaccuracy
HighTradeSize is never negative.
SELECT COUNT(*) FROM {object} WHERE HighTradeSize < 0 - errorLowAskSize_non_negativeaccuracy
LowAskSize is never negative.
SELECT COUNT(*) FROM {object} WHERE LowAskSize < 0 - errorLowBidSize_non_negativeaccuracy
LowBidSize is never negative.
SELECT COUNT(*) FROM {object} WHERE LowBidSize < 0 - errorLowTradeSize_non_negativeaccuracy
LowTradeSize is never negative.
SELECT COUNT(*) FROM {object} WHERE LowTradeSize < 0 - errorOpenAskSize_non_negativeaccuracy
OpenAskSize is never negative.
SELECT COUNT(*) FROM {object} WHERE OpenAskSize < 0 - errorOpenBidSize_non_negativeaccuracy
OpenBidSize is never negative.
SELECT COUNT(*) FROM {object} WHERE OpenBidSize < 0 - errorOpenInterest_non_negativeaccuracy
OpenInterest is never negative.
SELECT COUNT(*) FROM {object} WHERE OpenInterest < 0 - errorOpenTradeSize_non_negativeaccuracy
OpenTradeSize is never negative.
SELECT COUNT(*) FROM {object} WHERE OpenTradeSize < 0 - errorVolume_non_negativeaccuracy
Volume is never negative.
SELECT COUNT(*) FROM {object} WHERE Volume < 0 - warningclose_quote_not_crossedaccuracy
Closing NBBO is rarely crossed; AlgoSeek ships crossed quotes as-is, so this only warns.
SELECT COUNT(*) FROM {object} WHERE CloseBidPrice > 0 AND CloseAskPrice > 0 AND CloseBidPrice > CloseAskPrice
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with fixed header. One file per underlying ticker per trading day containing all option contracts of that underlying (all expirations, strikes, calls and puts). Compression and bucket/path naming not stated in this guide.
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
Service levels
- Retention
- Bounded by the license term
- Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
- History starts
- Not stated in the vendor documentation
Service levels describe the vendor feed as documented. They are draft values, not a commitment by AlphaSwarm.
Data Contract Editor · read-only preview — edits are not saved
Open-source Data Contract Editor (MIT). Changes stay in this browser tab: Cancel restores the published contract, and Download copy saves your edited YAML to your device only.
Contracts follow the Open Data Contract Standard (Bitol, LF AI & Data).
Vendor names are trademarks of their owners.