# 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-equities-trade-and-quote-extended-minute-bar
name: AlgoSeek US Equities Trade and Quote Extended Minute Bar
version: 0.1.0
status: draft
domain: market-data
tags:
- algoseek
- licensed-data
- equity
- us
- bar
description:
  purpose: 'One row per ticker per trading minute with 89 columns: everything in the standard TAQ minute
    bar plus trade counts per bid/mid/ask bucket, odd-lot and prior-reference-price counts, exchange vs
    FINRA/TRF splits, time-weighted spread and sizes, relative spread, a trade distribution relative to
    the bid and TRF-based retail buy/sell estimates.'
  usage: Backtesting, execution and microstructure research, feature engineering for US equities.
  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 half-open [TimeBarStart, next bar start): OpenBarTime equals the bar start (.000000000) and CloseBarTime
    is the last nanosecond of the bar (.999999999). The guide''s wording (''greater than start'') is looser
    than this. Continuous minute bars: a row exists for every minute from 04:00 ET until the last exchange
    closes. With no NBBO change the prior bar''s NBBO is carried forward, NBBOQuoteCount is 0 and the
    High/Low bid/ask times equal OpenBarTime (confirmed in the sample). Single-event bars: with only one
    trade, one NBBO bid or one NBBO ask in the bar, open/high/low/close price, size and time are identical
    for that side. A bar can have bid/ask OHLC but no trade OHLC. ''Blank'' means an empty CSV field (no
    NULL token). Trade-derived price/time/size fields are blank when the bar has no qualifying trade;
    share-volume counters are 0 per the guide (see discrepancies for sample deviations).'
  authoritativeDefinitions:
  - type: businessDefinition
    url: https://algoseek.com/dataset/us-equities-trade-and-quote-extended-minute-bar/
  - type: implementation
    url: https://algoseek.com/data-docs/equity-market-data/algoseek.US.Equity.TAQ.Minute.Bars.Ext.pdf
  - type: implementation
    url: https://algoseek.com/docs/rest-api/reference
context:
  instructions: Times are local US Eastern clock times (DST-aware), not UTC. Treat TRADE NB / NBBO-flagged
    rows as the backtest-grade subset. Cancellations reference earlier trades and can arrive hours later,
    so aggregate only after the session closes. Prices are unadjusted unless the dataset name says Adjusted;
    join us-equities-*-adjustment-factors on SecId for adjustment.
  verifiedStatements:
  - id: vs1
    question: What time zone are the timestamps in?
    answer: US Eastern local time with daylight saving (the guides label it EST/ET).
  - id: vs2
    question: Are prices adjusted for splits and dividends?
    answer: Only in datasets whose name contains Adjusted; all others are as traded.
  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_EQ_TAQ_1MIN_EXT}/
  format: csv
  encoding: UTF-8
  customProperties:
  - property: layout
    value: Plain-text CSV with a fixed header row and one data row per bar. One file per symbol per trading
      day (e.g. all AAPL bars for 3 Mar 2020 in one file), arranged as a flat-file database by date and
      then by ticker. Files are gzip-compressed (.csv.gz, roughly 8:1). The guide gives no bucket or path
      naming pattern.
  - 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/taq-1min-ext/: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_equities_trade_and_quote_extended_minute_bar
  physicalName: eq_taq_1min_ext
  physicalType: file
  logicalType: object
  businessName: US Equities Trade and Quote Extended Minute Bar
  description: 'One row per ticker per trading minute with 89 columns: everything in the standard TAQ
    minute bar plus trade counts per bid/mid/ask bucket, odd-lot and prior-reference-price counts, exchange
    vs FINRA/TRF splits, time-weighted spread and sizes, relative spread, a trade distribution relative
    to the bid and TRF-based retail buy/sell estimates.'
  dataGranularityDescription: 'one ticker x one trading minute (continuous: a row for every minute from
    04:00 ET until the last exchange closes, even with no events)'
  properties:
  - name: Date
    logicalType: date
    logicalTypeOptions:
      format: yyyymmdd
    physicalType: string (yyyymmdd) (csv text)
    description: Trading date of the bar (yyyymmdd); also the trading day of the file the row came from.
    primaryKey: true
    primaryKeyPosition: 1
    required: true
    partitioned: true
    partitionKeyPosition: 1
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Ticker
    logicalType: string
    physicalType: string (csv text)
    description: Symbol name of the security. The guide documents no other identifier or symbology for
      these files.
    primaryKey: true
    primaryKeyPosition: 2
    required: true
    partitioned: true
    partitionKeyPosition: 2
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: TimeBarStart
    logicalType: time
    logicalTypeOptions:
      format: HH:MM
    physicalType: string (time) (csv text)
    description: Bar start time in ET; HH:MM for a minute bar (Table 1).
    primaryKey: true
    primaryKeyPosition: 3
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenBarTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the bar open, i.e. the bar start (e.g. 11:03:00.000000000 for
      a minute bar).
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO bid price in force at bar open (the price as of bar start, carried over from the
      prior bar).
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges quoting the NBBO bid price at bar open.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO ask price in force at bar open (the price as of bar start, carried over from the
      prior bar).
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges quoting the NBBO ask price at bar open.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: FirstTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the first trade in the bar; blank when the bar has no trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: FirstTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the first trade in the bar; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: FirstTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of shares in the first trade of the bar; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp at which the highest NBBO bid of the bar was set.
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Highest NBBO bid price during the bar.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges at the highest NBBO bid price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp at which the highest NBBO ask of the bar was set.
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Highest NBBO ask price during the bar.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges at the highest NBBO ask price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the highest-priced trade in the bar; blank when the bar has no
      trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: HighTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the highest-priced trade in the bar; blank when the bar has no trade.
    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: Number of shares in the highest-priced trade; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp at which the lowest NBBO bid of the bar was set.
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest NBBO bid price during the bar.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges at the lowest NBBO bid price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowAskTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp at which the lowest NBBO ask of the bar was set.
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Lowest NBBO ask price during the bar.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges at the lowest NBBO ask price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the lowest-priced trade in the bar; blank when the bar has no
      trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LowTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the lowest-priced trade in the bar; blank when the bar has no trade.
    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: Number of shares in the lowest-priced trade; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBarTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the bar close, the last nanosecond of the bar (e.g. 11:03:59.999999999
      for a minute bar).
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CloseBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO bid price at bar close.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CloseBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Aggregate size across all exchanges at the closing NBBO bid price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CloseAskPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO ask price at bar close.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CloseAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: decimal (csv text)
    description: Aggregate size across all exchanges at the closing NBBO ask price (typed decimal in the
      guide; values are whole shares).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LastTradeTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmmuuunnn
    physicalType: string (timestamp) (csv text)
    description: Nanosecond timestamp of the last trade in the bar; blank when the bar has no trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LastTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the last trade in the bar; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: LastTradeSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of shares in the last trade of the bar; blank when the bar has no trade.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: MinSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Smallest NBBO bid-ask spread in the bar; a crossed market or negative back-quote spread
      is floored to 0.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: MaxSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: Largest NBBO bid-ask spread seen in the bar.
    required: true
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CancelSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total shares in trade-cancel events within the bar; blank when none.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average trade price for the bar, excluding FINRA/TRF-reported trades;
      blank when there are no such trades.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: FinraVolumeWeightPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average price of the bar's FINRA/TRF-reported trades only; blank when
      there are none.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TotalVolumeWeightPrice
    logicalType: number
    physicalType: integer (csv text)
    description: Volume-weighted average price over all trades in the bar, exchange plus FINRA/TRF (typed
      integer in the guide; values are decimals).
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightPriceExcludePRP
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average trade price excluding trades flagged tPriorReferencePrice.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: 'Bid-ask spread averaged with weights equal to shares traded at each spread: sum(spread
      x shares) / total volume.'
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: VolumeWeightSpreadExcludePRP
    logicalType: number
    physicalType: decimal (csv text)
    description: Same as VolumeWeightSpread but excluding trades flagged tPriorReferencePrice.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtBid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded at or below the prevailing NBBO bid (late-reported prints can fall below
      the bid).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtBidCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades at or below the prevailing NBBO bid; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtBidMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded strictly between the NBBO bid and the NBBO midpoint.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtBidMidCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades strictly between the NBBO bid and midpoint; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded exactly at the NBBO midpoint.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtMidCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades exactly at the NBBO midpoint; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtMidAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded strictly between the NBBO midpoint and the NBBO ask.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtMidAskCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades strictly between the NBBO midpoint and ask; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded at or above the prevailing NBBO ask.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtAskCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades at or above the prevailing NBBO ask; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeAtCrossOrLocked
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded while the NBBO was locked (bid = ask) or crossed (bid > ask).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtCrossOrLockedCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades executed while the NBBO was locked or crossed; blank when zero.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: Volume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded in the bar excluding FINRA/TRF-reported trades; total volume = Volume +
      FinraVolume. 0 when no trades.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: FinraVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares in FINRA/TRF-reported trades (dark pools, broker-dealer internalization, OTC);
      0 when none.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TotalVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total shares traded in the bar across public exchanges and FINRA/TRF (Volume + FinraVolume).
    customProperties:
    - property: unit
      value: shares
    - 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 during the bar; 0 when there were none.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TotalQuoteCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total count of top-of-book bid and ask updates from public exchanges during the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: ExchangesBidCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of times the top-of-book bid changed across public exchanges during the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: ExchangesAskCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of times the top-of-book ask changed across public exchanges during the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: ExchangeTradeCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades on public exchanges in the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: FinraTradeCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of FINRA/TRF-reported trades in the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TotalTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total number of trades in the bar (exchange plus FINRA/TRF where the dataset carries
      both).
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: OddLotTradeCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of odd-lot (under 100 shares) trades during the bar.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OddLotTotalShares
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Total shares traded in odd-lot trades during the bar.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: PriorReferencePriceTradeCount
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: Integer (csv text)
    description: Number of trades in the bar carrying the tPriorReferencePrice condition (priced from
      an earlier point in time).
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: PriorReferencePriceTradeShares
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares in trades flagged tPriorReferencePrice (guide text repeats the Count description
      verbatim, likely copy/paste).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: UptickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded on trades priced above the previous trade price (uptick).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: DowntickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded on trades priced below the previous trade price (downtick).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: RepeatUptickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded at the same price as the previous trade when the last price change was
      up.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: RepeatDowntickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded at the same price as the previous trade when the last price change was
      down.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: UnknownTickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Volume of the first trade after 04:00, whose tick direction is unknown; seeds the tick-direction
      volumes.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeToMidVolWeight
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted mean of (trade price - NBBO midpoint at trade time) over exchange trades;
      sign shows buy/sell pressure. Blank if no trades.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeToMidVolWeightRelative
    logicalType: number
    physicalType: decimal (csv text)
    description: As TradeToMidVolWeight but each term scaled by max(1, NBBO spread in pennies); sign shows
      buy/sell pressure. Blank if no trades.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightSpread
    logicalType: number
    physicalType: decimal (csv text)
    description: 'NBBO spread weighted by how long each spread lasted: sum(spread x duration) / bar duration;
      invalid spreads excluded.'
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightBid
    logicalType: number
    physicalType: decimal (csv text)
    description: Time-weighted average NBBO bid price over the bar; the price at bar open counts from
      bar start.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightBidSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: decimal (csv text)
    description: Time-weighted average size of the NBBO bid over the bar.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: TimeWeightAsk
    logicalType: number
    physicalType: decimal (csv text)
    description: Time-weighted average NBBO ask price over the bar; the price at bar open counts from
      bar start.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightAskSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: decimal (csv text)
    description: Time-weighted average size of the NBBO ask over the bar.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: SpreadValidTime
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Milliseconds of the bar during which the NBBO spread met the validity rules used by spread-based
      fields.
    customProperties:
    - property: unit
      value: ms
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: RelativeSpreadAverage
    logicalType: number
    physicalType: decimal (csv text)
    description: Mean over the bar's trades of max(ask - bid, 0) / midpoint, using the last NBBO before
      each trade (unitless fraction).
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeCumulDistributionToBid
    logicalType: string
    logicalTypeOptions:
      format: 10 colon-separated cumulative integers (thresholds 0:0.05:0.1:0.2:0.4:0.6:0.8:0.9:0.95:1)
    physicalType: string (csv text)
    description: Ten colon-separated cumulative share totals by trade position from bid (0) to ask (1)
      at thresholds 0, .05, .1, .2, .4, .6, .8, .9, .95, 1.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: RetailTRFBuySize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: 'Estimated retail buy shares: TRF trades priced just below a round penny (sub-penny fraction
      in (0.6, 1)); blank when none.'
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: RetailTRFSellSize
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: 'Estimated retail sell shares: TRF trades priced just above a round penny (sub-penny
      fraction in (0, 0.4)); blank when none.'
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Blank
    - 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
      - Ticker
      - TimeBarStart
    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: open_close_within_range
    type: sql
    description: 'Open and close usually sit inside the high-low range. Only a warning: some AlgoSeek
      aggregations take open/close from a different event set than high/low (seen in the Daily OHLC sample).'
    query: SELECT COUNT(*) FROM {object} WHERE FirstTradePrice > HighTradePrice OR FirstTradePrice < LowTradePrice
      OR LastTradePrice > HighTradePrice OR LastTradePrice < LowTradePrice
    mustBe: 0
    dimension: accuracy
    severity: warning
  - 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: DowntickVolume_non_negative
    type: sql
    description: DowntickVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE DowntickVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: ExchangeTradeCount_non_negative
    type: sql
    description: ExchangeTradeCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE ExchangeTradeCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: ExchangesAskCount_non_negative
    type: sql
    description: ExchangesAskCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE ExchangesAskCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: ExchangesBidCount_non_negative
    type: sql
    description: ExchangesBidCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE ExchangesBidCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: FinraTradeCount_non_negative
    type: sql
    description: FinraTradeCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE FinraTradeCount < 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: FirstTradeSize_non_negative
    type: sql
    description: FirstTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE FirstTradeSize < 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: LastTradeSize_non_negative
    type: sql
    description: LastTradeSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE LastTradeSize < 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: OddLotTradeCount_non_negative
    type: sql
    description: OddLotTradeCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE OddLotTradeCount < 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: PriorReferencePriceTradeCount_non_negative
    type: sql
    description: PriorReferencePriceTradeCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE PriorReferencePriceTradeCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: RepeatDowntickVolume_non_negative
    type: sql
    description: RepeatDowntickVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE RepeatDowntickVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: RepeatUptickVolume_non_negative
    type: sql
    description: RepeatUptickVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE RepeatUptickVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: RetailTRFBuySize_non_negative
    type: sql
    description: RetailTRFBuySize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE RetailTRFBuySize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: RetailTRFSellSize_non_negative
    type: sql
    description: RetailTRFSellSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE RetailTRFSellSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TimeWeightAskSize_non_negative
    type: sql
    description: TimeWeightAskSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TimeWeightAskSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TimeWeightBidSize_non_negative
    type: sql
    description: TimeWeightBidSize is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TimeWeightBidSize < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TotalQuoteCount_non_negative
    type: sql
    description: TotalQuoteCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TotalQuoteCount < 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: TotalVolume_non_negative
    type: sql
    description: TotalVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TotalVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtAskCount_non_negative
    type: sql
    description: TradeAtAskCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtAskCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtBidCount_non_negative
    type: sql
    description: TradeAtBidCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtBidCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtBidMidCount_non_negative
    type: sql
    description: TradeAtBidMidCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtBidMidCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtCrossOrLockedCount_non_negative
    type: sql
    description: TradeAtCrossOrLockedCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtCrossOrLockedCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtMidAskCount_non_negative
    type: sql
    description: TradeAtMidAskCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtMidAskCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: TradeAtMidCount_non_negative
    type: sql
    description: TradeAtMidCount is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE TradeAtMidCount < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: UnknownTickVolume_non_negative
    type: sql
    description: UnknownTickVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE UnknownTickVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: UptickVolume_non_negative
    type: sql
    description: UptickVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE UptickVolume < 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-equity
- property: vendorDatasetTextId
  value: eq_taq_1min_ext
- property: vendorSampleUrl
  value: https://as-metadata-services-assets.s3.amazonaws.com/sample_data/cloud_storage/eq_taq_1min_ext.csv
- property: assetClass
  value: equity
- property: venues
  value:
  - NASDAQ
  - BATS
  - NYSE
  - ARCA
  - FINRA TRF
- property: coverage
  value: 'Top-of-book quotes and trades from 15+ US exchanges and marketplaces via the consolidated SIP
    (CTA Tape A/B, UTP Tape C); venue names in ''venues'' are only the examples the guide gives. Guide
    scope: all listed stocks, ETNs, ETFs, ADRs and funds; the product page lists common and preferred
    stocks, ETFs, ETNs, ADRs, warrants and units. Includes trades reported to the FINRA Trade Reporting
    Facilities. Page: full historical archive plus daily updates; history start not stated.'
- property: timezone
  value: America/New_York
- property: timestampFormat
  value: 'Time-of-day strings with no date or zone (combine with Date). TimeBarStart is HH:MM for minute
    bars; all other timestamps are HH:MM:SS.mmmuuunnn (9 fractional digits, nanosecond resolution). Guide:
    events before 2016 carry millisecond HH:MM:SS.mmm stamps.'
- property: sessionHours
  value: 04:00-20:00 ET. Pre-market 04:00:00 to 09:30:00 (excl.), regular 09:30:00 to 16:00:00 (excl.),
    post-market 16:00:00 to 20:00:00. Minute bars occasionally run several minutes past 20:00. Early closes
    at 13:00:00 on the day before some holidays.
- property: priceAdjustment
  value: 'unadjusted (inferred: bars are built from ''as-is'' SIP tick data and the guide never mentions
    corporate-action adjustment)'
- 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: Product page says ''approx. 90'' metrics; the guide intro, Table 1 and the sample
    header all give 89 columns (the counts agree).'
  - 'Doc discrepancy: CloseAskSize is typed ''decimal'' in Table 1 while all other sizes are ''integer'';
    sample values are whole numbers, so it is typed integer here. TotalVolumeWeightPrice is typed ''integer''
    in Table 1 although it is a VWAP price and sample values are decimals, so it is typed decimal here.'
  - 'Doc discrepancy: Table 1 row order differs from the CSV header order (e.g. OddLotTradeCount, TotalVolume,
    TotalQuoteCount, TimeWeightSpread, SpreadValidTime, the *Count fields and the *ExcludePRP fields appear
    after TimeWeightAsk in Table 1 but are interleaved with the volume/trade fields in the header); the
    sample header order is used.'
  - 'Doc discrepancy: TimeBarStart: sample and Table 1 agree on HH:MM for minute bars. The FAQ says TimeBarStart
    can be HHMMSSmmm (millisecond) or HHMMSSmmmiiinnn (nanosecond), which matches neither Table 1 (HH:MM
    / HH:MM:SS) nor any sample; Table 1 is treated as authoritative.'
  - 'Doc discrepancy: Bar Notes describe a minute bar as ''greater than 11:04 to less than 11:05'', but
    OpenBarTime is exactly HH:MM:00.000000000; bars are treated as half-open [start, next start).'
  - 'Doc discrepancy: Carry-forward description ''OpenBarTime = HighBidTime = LowBidTime = CloseBarTime''
    cannot hold literally because CloseBarTime is the last nanosecond of the bar; in carry-forward bars
    of the samples the High/Low bid/ask times equal OpenBarTime.'
  - 'Doc discrepancy: The intro says all behaviour is described for 1-minute bars and ''applies to other
    resolutions (for example, 1-second) as well'', but the Extended Second Bar guide describes event-based
    second bars with no carry-forward or continuous timeline.'
  - 'Doc discrepancy: Appendix B lists tPriorReferencePrice (bit 25) among the trade flags excluded from
    bar calculations, yet Table 1 defines PriorReferencePriceTradeCount/Shares and the *ExcludePRP fields
    (implying such trades can be in the bars). In the sample the two PRP count fields are blank in all
    100 rows, and VolumeWeightPriceExcludePRP / VolumeWeightSpreadExcludePRP equal TotalVolumeWeightPr…'
  - 'Doc discrepancy: PriorReferencePriceTradeShares reuses the PriorReferencePriceTradeCount description
    verbatim (''Number of trades during bar period with condition flag...''), likely copy/paste; shares
    assumed from the name and Trade-X base event.'
  - 'Doc discrepancy: Table 1 gives ''Never'' as the Missing value for Open bid/ask price and size, but
    the first sampled bar (04:00) has all four blank (no earlier NBBO to carry forward).'
  - 'Doc discrepancy: Minor guide typos: ''NNBO'' in the NBBOQuoteCount description, ''rade'' in HighTradeTime,
    PriorReferencePriceTradeCount typed ''Integer'' with a capital I.'
contractCreatedTs: '2026-11-02T00:00:00Z'
