US Future Options Trade and Quote
Tick-level trades and best bid/ask quote updates for CME-listed options on futures, with UTC and Chicago timestamps, an aggressor-side event type and flags; used for microstructure, execution research and backtesting.
How to use it
UTCDate/UTCTime are the event time in UTC and files cover UTC calendar days; LocalDate/LocalTime are Chicago clock time. The ticker is '<futures contract> <C|P><strike>' (e.g. 'ESU3 P4450'); the underlying is that futures contract month, not the spot index.
Typical use
Options-on-futures pricing and flow research on CME Group venues.
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. Row grain is one exchange event for one contract; there is no sequence-number column, so ties within the same millisecond are only ordered by file position. In the 100-row sample (UTCDate, UTCTime, Ticker, TypeMask) repeats; adding Price, Quantity, Orders and Flags makes the sample rows unique, but uniqueness is not guaranteed in full files. UTCDate/UTCTime are the event time in UTC and the daily file is cut at UTC midnight, so a CME overnight session spans two files. LocalDate is a Chicago calendar date: the TAQ and minute-bar samples keep the same LocalDate from 17:00 CT onward (no roll to the next CME trade date). Evening activity that crosses 00:00 UTC (e.g. Sunday 18:00 CST = Monday 00:00 UTC) appears under the next UTCDate with the earlier LocalDate. Aggressor side comes from TypeMask bits 7 (buyer-initiated) and 6 (seller-initiated) and the matching Type label; plain TRADE (mask 34 in samples) means the initiator is unknown. For quotes the same bits denote bid (bit 7) or offer (bit 6). Flags 2 (SHFlag) and 4 (SLFlag) mark session high/low prices; guide Table 6 shows such a row with Quantity 0 and Orders 0, and this dataset's sample has them as TRADE (mask 34) rows with Quantity 0 and Orders 0. Filter on Quantity > 0 when counting trades or summing volume. Flag 8 (calculated price, no contracts) must be excluded when building bars.
Coverage
Page: all CME-traded future options contracts; tick-level history plus daily automated updates. Guide: Futures, Spreads and Future Options datasets cover securities listed on US exchanges; products are on cmegroup.com. Start of history not stated.
Venues (1)
- CME
Answers to common questions
- What time zone are the timestamps in?
- UTC, with LocalDate/LocalTime fields in US Central (Chicago) time.
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 (10)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyGuide field table lists TypeMask as 'Not in use' (integer), yet every sample row populates it and Appendix A defines its 8-bit encoding; treat TypeMask as live.
- Documentation discrepancyGuide field table describes UTCTime/LocalTime as nanosecond timestamps (milliseconds before 2016) in HH:MM:SS.mmm[iiinnn] form; the Timestamps section says HHMMSSZZZ (3-digit ms) and every sample value is a 9-digit HHMMSSmmm string with ms precision.
- Documentation discrepancyGuide calls UTCDate and LocalDate the 'trading date'; its Daily File rule is UTC 00:00-24:00 and LocalDate is the Chicago calendar date of the event (guide Table 1 shows LocalDate 20200127 at 18:00 local, i.e. 00:00 UTC on 2020-01-28; the family's future-options trade-only sample has UTCDate 20230802 with LocalDate 20230801 at 00:01 UTC).
- Documentation discrepancyGuide describes the ticker scheme as ZZZMY/ZZZMY.SXXXX, but its own example (ESZ5 P3600) and the options samples (ESU3 P4450, ESH4 P4600) separate the futures code and option code/strike with a space, not a dot; the year is a single digit.
- Documentation discrepancySecurityID: this guide says 'internal security ID used by algoseek'; the Multiple Depth guide calls the same-named column a 'CME security identifier'. This sample has SecurityID 634394 for ESU3 P4450; other family samples show a 4-digit value (ESU3 = 3445) and 6-digit values, so the scheme is not confirmed as the exchange's.
- Documentation discrepancyGuide Table 6 (GCQ7 maintenance example) shows TypeMask 2, 12, 7 and 5 (aggressor trades carry mask 2), which do not follow the Appendix A encoding (final bit 32, side bits 64/128); Table 1 and the 2023 samples use 161/97/162/98.
- Documentation discrepancyGuide example ZSX3-ZSF3 is described as a Nov 2023 vs Jan 2023 soybean spread, an implausible pairing, which shows the single year digit is ambiguous in tickers.
- Documentation discrepancyProduct page says Flags carry 'exchange condition codes'; the guide's Flags are implied, session-high/low, calculated-price and opening markers (0/1/2/4/8/16).
- Documentation discrepancyProduct page speaks of bid/ask quotes; the Type label for the ask side is QUOTE SELL (no 'QUOTE ASK' value exists in the guide or samples).
16 columns in delivery order · file or table name fut_opt_taq. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| UTCDate | dateyyyymmdd | Key 1 · Partition · Required | UTC calendar date of the event; the daily file is one UTC day (00:00-24:00). Guide wording: trading date (UTC). Source: vendor guide and sample |
| UTCTime | timeHHMMSSmmm | Key 2 · Required | Event time in UTC, 9 digits HHMMSSmmm with no separators (ms precision in samples), e.g. 220000003 = 22:00:00.003. Unit: ms · Source: vendor guide and sample |
| LocalDate | dateyyyymmdd | Chicago (CT) calendar date of the event; can differ from UTCDate and does not roll at the 17:00 CT session start. Source: vendor guide and sample | |
| LocalTime | timeHHMMSSmmm | Event time in Chicago local time (UTC-6 winter, UTC-5 during DST), same 9-digit HHMMSSmmm layout. Unit: ms · Source: vendor guide and sample | |
| Ticker | string | Key 3 · Partition · Required | Option ticker: futures-style code (base symbol + month code + year digit), a space, then C/P and strike, e.g. 'ESU3 P4450'. Max 20 chars. Source: vendor guide and sample |
| CallPut | string · enum (2) | Option type, C (call) or P (put). Guide: available only in the Future Options dataset. Source: vendor guide and sample 2 allowed values
| |
| Strike | integeri64 | Option strike: fixed price for buying or selling the underlying outright future, in the future's price units (e.g. 4450). Source: vendor guide and sample | |
| Month | string · enum (12)single-letter CME month code | Option expiration month as a single-letter code (CME month codes, per the cmegroup.com table the guide links). Source: vendor guide and sample 12 allowed values
| |
| ExpirationYear | integeri64 | Option expiration year as a four-digit number (e.g. 2023). Source: vendor guide and sample | |
| SecurityID | stringnumeric string | Instrument identifier. Guide calls it an internal algoseek security ID (the Multiple Depth guide calls it a CME ID). Sample values: 3445, 314863, 634394. Source: vendor guide and sample | |
| TypeMask | integeri64 | Key 4 · Required | Event type as an 8-bit mask: bits 0-4 message type, bit 5 final, bit 6 sell/offer side, bit 7 buy/bid side. Guide's field table says 'Not in use' but Appendix A defines it. Source: vendor guide and sample |
| Type | string · enum (14) | Event type label: quote side, trade with aggressor side, or statistic (opening/settlement/volume/open interest/empty book). Any label may carry an IMPLIED prefix. Source: vendor guide and sample 14 allowed values
| |
| Price | number | Key 5 · Required | Opening, trade, bid/ask or settlement price by event type, 6-decimal string; 0.000000 on empty-book, trade-volume and open-interest rows (sample). Source: vendor guide and sample |
| Quantity | integeri64 | Key 6 · Required | Contracts traded or quoted at this price. SETTLEMENT PRICE rows carry the referenced trade date (yyyymmdd); TRADE VOLUME and OPEN INTEREST rows carry the count (sample). Unit: contracts · Source: vendor guide and sample |
| Orders | integeri64 | Key 7 · Required | Customer orders at the price level. Guide says to ignore it for trades (zero before 2015-11-22, when the feed moved from FAST/FIX to MDP). Unit: count · Source: vendor guide and sample |
| Flags | integer · enum (6)i64 | Key 8 · Required | Condition flag for the event. 2 and 4 mark session high/low rows (Quantity 0 in samples); 8 = calculated price with no contracts; 1 = implied; 16 = opening. Source: vendor guide and sample 6 allowed values
|
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- warningprimary_key_uniqueuniqueness
Best-effort key for an event stream: same-timestamp events from one venue can repeat, so duplicates are reported, not rejected.
duplicateValues (properties: UTCDate, UTCTime, Ticker, TypeMask, Price, Quantity, Orders, Flags) must be 0
- errorQuantity_non_negativeaccuracy
Quantity is never negative.
SELECT COUNT(*) FROM {object} WHERE Quantity < 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with a fixed header row, one row per event. By default one file per symbol (contract) per trading day, gzip-compressed (.csv.gz, about 8:1 ratio). Guide example: all events for ESH0 on 2020-01-28 are in one file. A trading day is UTC 00:00-24:00. The guide gives no bucket, path or file-name pattern.
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
Service levels
- Update frequency
- Daily
- 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.