# Generated by tools/build_contracts.py from tools/algoseek_catalog.py -- do not edit by hand.
# Open Data Contract Standard v3.2.0 (https://bitol-io.github.io/open-data-contract-standard/).
apiVersion: v3.2.0
kind: DataContract
id: urn:alphaswarm:datacontract:algoseek:us-future-options-trade-and-quote-minute-bar
name: AlgoSeek US Future Options Trade and Quote Minute Bar
version: 0.1.0
status: draft
domain: market-data
tags:
- algoseek
- licensed-data
- options-on-futures
- cme-group
- bar
description:
  purpose: 'One-minute event-based bars for CME-listed options on futures combining quote and trade activity:
    bid/ask/trade open-high-low-close with times and sizes, spreads, VWAP and aggressor-side trade counts.'
  usage: 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. Bars
    are event-based: a row exists only for a minute with at least one regular quote or trade. TAQ bars
    can therefore have Volume 0 and TotalTrades 0 with all trade fields blank (most sample rows); do not
    assume a row for every minute, and do not forward-fill without stating it. Bar window: UTCTimeBarStart
    is the UTC minute start; all Open/High/Low/Close time columns are UTC and fall inside that minute
    in the sample. Local fields are Chicago time, so LocalDate can differ from UTCDate (guide example:
    UTC 2017-08-15 01:30 = local 2017-08-14 20:30). Open/High/Low/Close are computed separately for bids,
    asks and trades: High/Low are by price, each with its own time and size; Open/Close are first/last
    event in the bar. If a bar has only one event of a kind, Open=High=Low=Close for price, size and time.
    Implied bid/ask quotes (e.g. crude oil spread-implied) are ignored when building bars, and calculated
    trade prices that are not real trades are excluded; only real quotes and actual trades count.'
  authoritativeDefinitions:
  - type: businessDefinition
    url: https://algoseek.com/dataset/us-future-options-trade-and-quote-minute-bar/
  - type: implementation
    url: https://algoseek.com/data-docs/futures-market-data/algoseek.US.Futures.TAQ.Minute.Bars.pdf
context:
  instructions: 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.
  verifiedStatements:
  - id: vs1
    question: What time zone are the timestamps in?
    answer: UTC, with LocalDate/LocalTime fields in US Central (Chicago) time.
  constraints:
  - id: c1
    constraint: '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.'
  - id: c3
    constraint: 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.
servers:
- server: algoseek-s3
  type: s3
  environment: vendor
  description: AlgoSeek flat-file delivery (the layout the schema below describes).
  location: s3://${ALGOSEEK_S3_BUCKET_FUT_OPT_TAQ_1MIN}/
  format: csv
  encoding: UTF-8
  customProperties:
  - property: layout
    value: 'Plain-text CSV with a fixed header row, gzip-compressed (.csv.gz, about 8:1). By default one
      file per symbol (contract) per trading day (guide example: ESH0 on 2020-01-28). A file exists only
      if the contract had enough activity that day; no bucket, path or file-name pattern is given.'
  - property: compression
    value: gzip
  - property: header
    value: true
  - property: entitlement
    value: Bucket access is granted per subscription; bucket names arrive with license provisioning.
schema:
- name: us_future_options_trade_and_quote_minute_bar
  physicalName: fut_opt_taq_1min
  physicalType: file
  logicalType: object
  businessName: US Future Options Trade and Quote Minute Bar
  description: 'One-minute event-based bars for CME-listed options on futures combining quote and trade
    activity: bid/ask/trade open-high-low-close with times and sizes, spreads, VWAP and aggressor-side
    trade counts.'
  dataGranularityDescription: One contract x one UTC minute that had at least one regular quote or trade.
  properties:
  - name: Ticker
    logicalType: string
    physicalType: string (csv text)
    description: 'Option ticker: futures-style code, a space, then C/P and strike (e.g. ''ESH4 C4800'').'
    primaryKey: true
    primaryKeyPosition: 1
    required: true
    partitioned: true
    partitionKeyPosition: 2
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: UTCDate
    logicalType: date
    logicalTypeOptions:
      format: yyyymmdd
    physicalType: string (yyyymmdd) (csv text)
    description: UTC trade date of the bar (the UTC calendar day of the bar start).
    primaryKey: true
    primaryKeyPosition: 2
    required: true
    partitioned: true
    partitionKeyPosition: 1
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CallPut
    logicalType: string
    physicalType: string (csv text)
    description: 'Option type, C (call) or P (put). Guide: available only in the Future Options dataset.'
    enum:
    - value: C
      label: Call
    - value: P
      label: Put
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Strike
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: 'Option strike: fixed price for buying or selling the underlying outright future, in
      the future''s price units.'
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Month
    logicalType: string
    logicalTypeOptions:
      format: single-letter CME month code
    physicalType: string (csv text)
    description: Option expiration month as a single-letter code (CME month codes, per the table the guide
      links).
    enum:
    - value: F
      label: January
    - value: G
      label: February
    - value: H
      label: March
    - value: J
      label: April
    - value: K
      label: May
    - value: M
      label: June
    - value: N
      label: July
    - value: Q
      label: August
    - value: U
      label: September
    - value: V
      label: October
    - value: X
      label: November
    - value: Z
      label: December
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: ExpirationYear
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Option expiration year as a four-digit number.
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: UTCTimeBarStart
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS (sample); guide says HH:MM for minute bars
    physicalType: string (time) (csv text)
    description: UTC start of the one-minute bar, HH:MM:SS in the sample (guide says HH:MM for minute
      bars). Sample events fall in [start, start+60 s).
    primaryKey: true
    primaryKeyPosition: 3
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LocalDate
    logicalType: date
    logicalTypeOptions:
      format: yyyymmdd
    physicalType: string (yyyymmdd) (csv text)
    description: 'Chicago calendar date of the bar start (guide: local trade date); differs from UTCDate
      when UTC is 5-6 h ahead of the date.'
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LocalTimeBarStart
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS (sample); guide says HH:MM for minute bars
    physicalType: string (time) (csv text)
    description: Chicago local start time of the bar (DST-aware), same layout as UTCTimeBarStart.
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the first bid quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the first bid quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size of the first bid quote in the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the first ask quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the first ask quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size of the first ask quote in the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the first trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the first trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts in the first trade of the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the highest bid price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Highest bid price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Bid size at the highest bid price.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the highest ask price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Highest ask price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Ask size at the highest ask price.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the highest-priced trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the highest trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts in the highest-priced trade.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the lowest bid price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest bid price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Bid size at the lowest bid price.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the lowest ask price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest ask price in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Ask size at the lowest ask price.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the lowest-priced trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the lowest trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts in the lowest-priced trade.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the last bid quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the last bid quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size of the last bid quote in the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the last ask quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the last ask quote in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size of the last ask quote in the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm (UTC)
    physicalType: string (timestamp) (csv text)
    description: UTC time of the last trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the last trade in the bar.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts in the last trade of the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: MinSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Smallest bid-ask spread in the bar; needs both a bid and an ask in the minute; a negative
      spread is reported as 0.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: MaxSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Largest bid-ask spread in the bar; needs both a bid and an ask in the minute.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: 'Trade volume-weighted average price: sum(size x price) / total contracts traded in the
      bar.'
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TotalRegularQuotes
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Count of regular bid/ask quotes in the bar; implied quotes are ignored; blank if the
      bar has no bid or ask events.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: BuyAggressorTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades in the bar typed 'Trade Aggressor at Buy'.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: SellAggressorTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades in the bar typed 'Trade Aggressor at Sell'.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: NoAggressorTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades where the exchange does not publish the aggressor side.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: BuyAggressorQuantity
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Sum of contracts in trades typed 'Trade Aggressor at Buy'.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: SellAggressorQuantity
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Sum of contracts in trades typed 'Trade Aggressor at Sell'.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: NoAggressorQuantity
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Sum of contracts in trades where the aggressor side is not published.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: Volume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total contracts traded in the bar.
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TotalTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total number of trades in the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  quality:
  - id: row_count_positive
    metric: rowCount
    mustBeGreaterThan: 0
    dimension: completeness
    severity: error
    description: Every delivered partition (trade date, or snapshot) carries at least one row.
  - id: primary_key_unique
    metric: duplicateValues
    mustBe: 0
    arguments:
      properties:
      - Ticker
      - UTCDate
      - UTCTimeBarStart
    dimension: uniqueness
    severity: error
    description: The declared primary key is unique within each delivered partition (one file or table
      snapshot).
  - id: trade_high_ge_low
    type: sql
    description: HighTradePrice is never below LowTradePrice in the same row.
    query: SELECT COUNT(*) FROM {object} WHERE HighTradePrice IS NOT NULL AND LowTradePrice IS NOT NULL
      AND HighTradePrice < LowTradePrice
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: bid_high_ge_low
    type: sql
    description: HighBidPrice is never below LowBidPrice in the same row.
    query: SELECT COUNT(*) FROM {object} WHERE HighBidPrice IS NOT NULL AND LowBidPrice IS NOT NULL AND
      HighBidPrice < LowBidPrice
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: ask_high_ge_low
    type: sql
    description: HighAskPrice is never below LowAskPrice in the same row.
    query: SELECT COUNT(*) FROM {object} WHERE HighAskPrice IS NOT NULL AND LowAskPrice IS NOT NULL AND
      HighAskPrice < LowAskPrice
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: vwap_within_range
    type: sql
    description: VWAP (sum(price*shares)/sum(shares)) lies within the bar's trade range.
    query: SELECT COUNT(*) FROM {object} WHERE VolumeWeightPrice > HighTradePrice OR VolumeWeightPrice
      < LowTradePrice
    mustBe: 0
    dimension: accuracy
    severity: warning
  - id: CloseAskSize_non_negative
    type: sql
    description: CloseAskSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE CloseAskSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: CloseBidSize_non_negative
    type: sql
    description: CloseBidSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE CloseBidSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: CloseTradeSize_non_negative
    type: sql
    description: CloseTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE CloseTradeSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: HighAskSize_non_negative
    type: sql
    description: HighAskSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE HighAskSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: HighBidSize_non_negative
    type: sql
    description: HighBidSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE HighBidSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: HighTradeSize_non_negative
    type: sql
    description: HighTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE HighTradeSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: LowAskSize_non_negative
    type: sql
    description: LowAskSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE LowAskSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: LowBidSize_non_negative
    type: sql
    description: LowBidSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE LowBidSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: LowTradeSize_non_negative
    type: sql
    description: LowTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE LowTradeSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: OpenAskSize_non_negative
    type: sql
    description: OpenAskSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE OpenAskSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: OpenBidSize_non_negative
    type: sql
    description: OpenBidSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE OpenBidSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: OpenTradeSize_non_negative
    type: sql
    description: OpenTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE OpenTradeSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TotalTrades_non_negative
    type: sql
    description: TotalTrades is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TotalTrades < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: Volume_non_negative
    type: sql
    description: Volume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE Volume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: close_quote_not_crossed
    type: sql
    description: Closing NBBO is rarely crossed; AlgoSeek ships crossed quotes as-is, so this only warns.
    query: SELECT COUNT(*) FROM {object} WHERE CloseBidPrice > 0 AND CloseAskPrice > 0 AND CloseBidPrice
      > CloseAskPrice
    mustBe: 0
    dimension: accuracy
    severity: warning
support:
- channel: algoseek-support
  tool: email
  url: mailto:support@algoseek.com
  scope: issues
  description: Vendor support for data defects, missing days, and entitlement problems.
team:
  name: AlphaSwarm data engineering
slaProperties:
- id: update_frequency
  property: frequency
  value: 1
  unit: d
  driver: analytics
- id: retention
  property: retention
  value: license-term
  description: Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
  driver: regulatory
customProperties:
- property: vendor
  value: AlgoSeek
- property: vendorDataGroup
  value: us-futures
- property: vendorDatasetTextId
  value: fut_opt_taq_1min
- property: vendorSampleUrl
  value: https://as-metadata-services-assets.s3.amazonaws.com/sample_data/cloud_storage/fut_opt_taq_1min.csv
- property: assetClass
  value: future_option
- property: venues
  value:
  - CME
- property: coverage
  value: 'Page: CME-listed future options contracts, 50+ fields per bar, full historical archive plus
    daily automated updates. Guide: Futures, Spreads and Futures Options bars for securities listed on
    US exchanges. Start of history not stated.'
- property: timezone
  value: Etc/UTC
- property: timestampFormat
  value: Bar start HH:MM:SS (sample; guide says HH:MM for minute bars); event-time columns HH:MM:SS.mmm
    in UTC (ms precision).
- property: sessionHours
  value: 'Product-specific CME hours and breaks (guide example: Silver daily break 16:00-17:00 CT; bars
    may carry exchange quotes published during the break). Bars are keyed to UTC clock minutes.'
- property: priceAdjustment
  value: n/a
- property: licensedData
  value: true
- property: evidenceGrade
  value: vendor-doc
- property: knownIssues
  value:
  - Primary key is inferred; AlgoSeek's guide does not name one.
  - 'Doc discrepancy: Guide says UTCTimeBarStart/LocalTimeBarStart are HH:MM for minute bars (HH:MM:SS
    for second bars); the minute-bar sample shows HH:MM:SS (e.g. 22:00:00).'
  - 'Doc discrepancy: In this sample no bar has a trade (Volume and TotalTrades are 0), and all six aggressor
    columns are blank in all 100 bars, whereas the guide''s Missing column says 0.'
  - 'Doc discrepancy: Guide''s note says a one-minute bar 11:04 covers times greater than 11:04 to less
    than 11:05, and a one-second bar 13:03:02 covers times greater than 13:03:01 up to 13:03:02 (end-labelled),
    which conflicts with the column name BarStart; in the sample every event time lies in [start, start+60
    s) (offsets 0.019 s to 59.974 s), i.e. a start-labelled window.'
  - 'Doc discrepancy: Guide VolumeWeightPrice note speaks of shares and ''TotalShares'' (equity wording);
    for futures the weights are contracts.'
  - 'Doc discrepancy: MinSpread/MaxSpread are blank in 3 sample bars (UTCTimeBarStart 22:38:00, 22:43:00,
    22:47:00) that do have both an open bid and an open ask, although the guide only says a bid and an
    ask are required and negative spreads become 0; the exact rule is undocumented.'
  - 'Doc discrepancy: Guide Table 1 lists CallPut/Strike/Month/ExpirationYear after LocalTimeBarStart;
    this sample places them right after UTCDate (before UTCTimeBarStart), as in the trade-only minute-bar
    guide. Sample header order was followed.'
  - 'Doc discrepancy: Guide intro says ''bar file'' is created if there are 3 or more quotes or 1 or more
    trades within 24 hours, while elsewhere saying a bar is created whenever a trade or quote event occurs
    in the minute; the per-bar minimum is therefore not precisely stated (sample quote counts range from
    2 to 59).'
contractCreatedTs: '2026-11-02T00:00:00Z'
