# 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-options-trade-and-quote-minute-bar
name: AlgoSeek US Options Trade and Quote Minute Bar
version: 0.1.0
status: draft
domain: market-data
tags:
- algoseek
- licensed-data
- options
- opra
- us
- bar
description:
  purpose: One row per option contract per one-minute interval in which at least one NBBO bid, NBBO ask
    or trade occurred, giving open/high/low/close of bid, ask and trade (time, price, size), underlying
    NBBO at the first and last event, spread statistics, trade-versus-NBBO volume buckets and volume.
    Built from OPRA consolidated trades and top-of-book quotes.
  usage: 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, no contract
    id). Strike is a decimal in USD per share (4 decimals in sample); ExpirationDate is yyyymmdd. Event-based
    bars: a bar exists only if the contract had at least one bid, ask or trade in that minute. Missing
    bars mean no events, not zero activity; build a time grid and forward-fill yourself, or use the Continuous
    variant. Bid, ask and trade OHLC are independent: a bar can have quote fields but no trade fields
    (trade fields blank, Volume = 0). With a single event, open/high/low/close price, size and time are
    equal. Quotes are the NBBO built from Firm Quote and Customer Trade Interest bids/asks; Open Interest,
    Rotation and Non-Firm quote events are excluded. Trades with condition codes A, B, C, F, G, N, O,
    T are excluded.'
  authoritativeDefinitions:
  - type: businessDefinition
    url: https://algoseek.com/dataset/us-options-trade-and-quote-minute-bar/
  - type: implementation
    url: https://algoseek.com/data-docs/options-market-data/algoseek.US.Options.TAQ.Minute.Bars.pdf
  - type: implementation
    url: https://algoseek.com/docs/rest-api/reference
context:
  instructions: '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.'
  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_OPT_TAQ_1MIN}/
  format: csv
  encoding: UTF-8
  customProperties:
  - property: layout
    value: Plain-text CSV with fixed header, gzip-compressed (uncompressed about 7x larger). One file
      per underlying ticker per trading day per option chain (ticker + expiration date), containing all
      calls and puts and strikes of that chain. Bars ordered by time. Bucket/path naming not stated in
      the guide.
  - property: compression
    value: gzip
  - property: header
    value: true
  - property: entitlement
    value: Bucket access is granted per subscription; bucket names arrive with license provisioning.
- server: algoseek-rest-api
  type: api
  environment: vendor
  description: AlgoSeek Datasets REST API (X-API-KEY header; JSON, CSV or gzipped CSV). Returns AlgoSeek's
    normalized API layout, which differs from the flat-file columns in this contract's schema.
  location: https://api.algoseek.com/v1/data/us-equity-opt/taq-1min/:identifier
  customProperties:
  - property: auth
    value: X-API-KEY header issued by AlgoSeek
  - property: columnsEndpoint
    value: https://api.algoseek.com/v1/meta/datasets/{dataset_id}/columns
  - property: statusEndpoint
    value: https://api.algoseek.com/v1/meta/datasets/{dataset_id}/status
  - property: responseFormats
    value:
    - json
    - csv
    - csv_gzip
  - property: pagination
    value: offset + limit; tick endpoints take trade_date and identifier (Ticker or ASID) in the path
schema:
- name: us_options_trade_and_quote_minute_bar
  physicalName: opt_taq_1min
  physicalType: file
  logicalType: object
  businessName: US Options Trade and Quote Minute Bar
  description: One row per option contract per one-minute interval in which at least one NBBO bid, NBBO
    ask or trade occurred, giving open/high/low/close of bid, ask and trade (time, price, size), underlying
    NBBO at the first and last event, spread statistics, trade-versus-NBBO volume buckets and volume.
    Built from OPRA consolidated trades and top-of-book quotes.
  dataGranularityDescription: one option contract (Ticker x CallPut x Strike x ExpirationDate) x one 1-minute
    bar (TimeBarStart) on one trading Date; a row exists only if the contract had at least one bid, ask
    or trade event in that minute
  properties:
  - name: Date
    logicalType: date
    logicalTypeOptions:
      format: yyyymmdd
    physicalType: string (yyyymmdd) (csv text)
    description: Trading date of the bar
    primaryKey: true
    primaryKeyPosition: 1
    required: true
    partitioned: true
    partitionKeyPosition: 1
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: TimeBarStart
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS
    physicalType: string (HH:MM) (csv text)
    description: Start of the one-minute bar; guide says HH:MM, sample delivers HH:MM:SS (09:30:00)
    primaryKey: true
    primaryKeyPosition: 2
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Ticker
    logicalType: string
    physicalType: string (csv text)
    description: Symbol name; sample shows the underlying/root (AAPL). Root vs underlying for index or
      adjusted roots is not stated
    primaryKey: true
    primaryKeyPosition: 3
    required: true
    partitioned: true
    partitionKeyPosition: 2
    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
    primaryKey: true
    primaryKeyPosition: 4
    required: true
    enum:
    - value: C
      label: Call
    - value: P
      label: Put
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Strike
    logicalType: number
    physicalType: decimal (csv text)
    description: Fixed price at which the option can be exercised, quoted per share of underlying
    primaryKey: true
    primaryKeyPosition: 5
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: ExpirationDate
    logicalType: date
    logicalTypeOptions:
      format: yyyymmdd
    physicalType: string (yyyymmdd) (csv text)
    description: Expiration date of the option contract
    primaryKey: true
    primaryKeyPosition: 6
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time of the first NBBO bid in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO price of the first bid in the bar
    customProperties:
    - property: unit
      value: USD
    - 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 NBBO bid 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
    physicalType: string (timestamp) (csv text)
    description: Time of the first NBBO ask in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO price of the first ask in the bar
    customProperties:
    - property: unit
      value: USD
    - 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 NBBO ask 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
    physicalType: string (timestamp) (csv text)
    description: 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: unit
      value: USD
    - 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 in 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
    physicalType: string (timestamp) (csv text)
    description: Time of the highest NBBO 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 NBBO bid price in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size at the highest NBBO bid
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time of the highest NBBO 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 NBBO ask price in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size at the highest NBBO ask
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: 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: unit
      value: USD
    - 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
    physicalType: string (timestamp) (csv text)
    description: Time of the lowest NBBO bid in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest NBBO bid price in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size at the lowest NBBO bid
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time of the lowest NBBO ask in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest NBBO ask price in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Size at the lowest NBBO ask
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: 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: unit
      value: USD
    - 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
    physicalType: string (timestamp) (csv text)
    description: Time of the last NBBO bid in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO price of the last bid in the bar
    customProperties:
    - property: unit
      value: USD
    - 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 NBBO bid
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time of the last NBBO ask in the bar
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO price of the last ask in the bar
    customProperties:
    - property: unit
      value: USD
    - 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 NBBO ask
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: 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: unit
      value: USD
    - 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 in the bar
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: UnderOpenBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Underlying NBBO bid at the millisecond of the first option bid, ask or trade event in
      the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: UnderOpenAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Underlying NBBO ask at the millisecond of the first option bid, ask or trade event in
      the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: UnderCloseBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Underlying NBBO bid at the millisecond of the last option bid, ask or trade event in
      the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: UnderCloseAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Underlying NBBO ask at the millisecond of the last option bid, ask or trade event in
      the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: MinSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Minimum bid-ask spread in the bar; can be 0 if crossed; needs both a bid and an ask in
      the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: MaxSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Maximum bid-ask spread in the bar; needs both a bid and an ask in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CancelSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts of trades canceled during this bar; the canceled trades may have occurred any
      time since the open
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average trade price in the bar
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: NBBOQuoteCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of NBBO bid and ask quote updates in the bar
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtBid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded at or below the NBBO bid (late prints can be below the bid)
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtBidMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded strictly between the NBBO bid and the mid-point
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded exactly at the NBBO mid-point
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtMidAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded strictly between the NBBO mid-point and the ask
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded at or above the NBBO ask
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtCrossOrLocked
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded while the NBBO was locked (bid = ask) or crossed (bid > ask)
    customProperties:
    - property: unit
      value: contracts
    - property: nullMeaning
      value: Blank
    - 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
  - name: FinraVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Contracts traded off the public exchanges and reported as FINRA; relation to Volume not
      stated
    customProperties:
    - property: unit
      value: contracts
    - 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:
      - Date
      - TimeBarStart
      - Ticker
      - CallPut
      - Strike
      - ExpirationDate
    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: CancelSize_non_negative
    type: sql
    description: CancelSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE CancelSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - 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: FinraVolume_non_negative
    type: sql
    description: FinraVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE FinraVolume < 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: NBBOQuoteCount_non_negative
    type: sql
    description: NBBOQuoteCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE NBBOQuoteCount < 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: 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-equity-opt
- property: vendorDatasetTextId
  value: opt_taq_1min
- property: vendorSampleUrl
  value: https://as-metadata-services-assets.s3.amazonaws.com/sample_data/cloud_storage/opt_taq_1min.csv
- property: assetClass
  value: option
- property: venues
  value:
  - OPRA consolidated feed (16 options exchanges; individual venues not named)
- property: coverage
  value: US listed options from the OPRA consolidated feed (16 SEC-approved options exchanges); guide
    intro names options on equities, ETFs, ETNs and ADRs, while its Time Range section and the product
    page also cover index options. History start date is not stated.
- property: timezone
  value: America/New_York
- property: timestampFormat
  value: Event times HH:MM:SS.mmm (millisecond, no date part); TimeBarStart HH:MM:SS in sample (guide
    says HH:MM)
- property: sessionHours
  value: 09:30:00-16:15:00 ET per guide (most options stop at 16:00, some index options trade to 16:15).
    Product page adds a Curb session to 17:00 ET 'if available'; the guide (v1.5, Apr 2022) does not mention
    Curb.
- property: priceAdjustment
  value: unadjusted
- property: licensedData
  value: true
- property: evidenceGrade
  value: vendor-doc
- property: knownIssues
  value:
  - 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).
  - 'Doc discrepancy: TimeBarStart: guide says HH:MM for minute bars (second bars HH:MM:SS); the published
    sample delivers HH:MM:SS (''09:30:00'') in all rows.'
  - 'Doc discrepancy: Product page says the data covers the regular session 09:30-16:15 ET plus a Curb
    session to 17:00 ET where available; the guide (v1.5, Apr 2022) only states 09:30:00-16:15:00 ET and
    never mentions Curb (Curb began 2022-04-25 per the Daily TAQ guide, after this guide''s date).'
  - 'Doc discrepancy: Guide intro limits scope to options on equities, ETFs, ETNs and ADRs, but its Time
    Range section says some indexes trade to 16:15 and the page says all US listed options.'
  - 'Doc discrepancy: Guide TOC lists Appendix A (FAQ) on page 12 but the PDF text ends on page 10; no
    FAQ content available.'
  - 'Doc discrepancy: Guide wording of the file layout (''one file per ticker per trading day per ticker
    and per option chain'') is garbled; interpreted as per underlying ticker, per day, per chain.'
  - 'Doc discrepancy: Guide field table wraps across pages; columns were reassembled with a table-mode
    text extraction and match the 60-column sample header exactly, in the same order.'
contractCreatedTs: '2026-11-02T00:00:00Z'
