# 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-futures-trade-and-quote-minute-bar
name: AlgoSeek US Futures Trade and Quote Minute Bar
version: 0.1.0
status: draft
domain: market-data
tags:
- algoseek
- licensed-data
- futures
- cme-group
- bar
description:
  purpose: 'One-minute event-based bars for CME-listed 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: Futures backtesting, roll research, and intraday microstructure 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-futures-trade-and-quote-minute-bar/
  - type: implementation
    url: https://algoseek.com/data-docs/futures-market-data/algoseek.US.Futures.TAQ.Minute.Bars.pdf
  - type: implementation
    url: https://algoseek.com/docs/rest-api/reference
context:
  instructions: UTCDate/UTCTime are the event time in UTC and files cover UTC calendar days, so one CME
    overnight session spans two files and Sunday-evening trading lands under Monday's UTCDate. LocalDate/LocalTime
    are Chicago clock time and do not roll at the 17:00 CT session open; derive the exchange trade date
    yourself. The ticker is one contract month (e.g. ESZ3), not a continuous series; roll explicitly.
    Aggressor side comes from TypeMask bits 7 (buy) and 6 (sell); a plain TRADE means the initiator is
    unknown. Rows flagged as calculated (Flags 8) are not trades.
  verifiedStatements:
  - id: vs1
    question: What time zone are the timestamps in?
    answer: UTC, with LocalDate/LocalTime fields in US Central (Chicago) time.
  - id: vs2
    question: Which file holds a Sunday-evening CME session?
    answer: The Monday UTCDate file; files are UTC calendar days.
  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_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.
- 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-futures/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_futures_trade_and_quote_minute_bar
  physicalName: fut_taq_1min
  physicalType: file
  logicalType: object
  businessName: US Futures Trade and Quote Minute Bar
  description: 'One-minute event-based bars for CME-listed 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: 'Contract symbol: base symbol + month code + last digit of expiry year (e.g. ESZ3).'
    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: 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_taq_1min
- property: vendorSampleUrl
  value: https://as-metadata-services-assets.s3.amazonaws.com/sample_data/cloud_storage/fut_taq_1min.csv
- property: assetClass
  value: future
- property: venues
  value:
  - CME
- property: coverage
  value: 'Page: CME-listed futures 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 the 10 sample bars that have trades, the aggressor columns for sides with no
    trades are blank, not 0 as the guide''s Missing column states.'
  - '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.003 s to 59.961 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 2 sample bars (UTCTimeBarStart 23:14:00, 23:30: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 and ExpirationYear as options-only fields;
    they are absent from this futures sample header and are not included in columns.'
  - '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
    4 to 136).'
contractCreatedTs: '2026-11-02T00:00:00Z'
