# 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-daily-bar
name: AlgoSeek US Equities Trade and Quote Daily Bar
version: 0.1.0
status: draft
domain: market-data
tags:
- algoseek
- licensed-data
- equity
- us
- daily_bar
description:
  purpose: One row is one security on one trading day, summarising that day's SIP trades and NBBO quotes
    into OHLC-style price points plus spread, quote-count, buy/sell-pressure, listed vs FINRA volume,
    tick-direction volume, VWAP and time-weighted bid/ask metrics. Used for quant research and ML features
    on daily liquidity and order flow.
  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. Sample
    channel: S3 CSV (sample_channel s3/cloud_storage, eq_taq_daily.csv, 100 rows, all for 2023-08-02,
    tickers A..ACMR); no ArdaDB table sample for this dataset. The JSON preview is identical to the CSV.
    Missing-value rule per guide (''Missing'' column): ''Never'' = always present; ''Blank'' = empty string
    when not computable (trade-derived prices/sizes/times and VWAPs when there is no qualifying trade;
    CancelSize when none); ''0'' = counts and volumes default to 0. In the sample, 9 rows have empty OpenTrade*,
    6 empty Close*/High*/Low* trade fields, 97 empty CancelSize, 2 empty TradeToMid* fields; the Quote-based
    fields are never empty. Open/Close trades come from the primary listing exchange''s official auction
    cross (priority in Tables 1-2), not the first/last print, and the primary exchange is determined per
    trade date. Close-related times run past 16:00 (CloseTradeTime up to 16:03:25 in the sample). Quote
    fields use NBBO quotes only, excluding Price 0, Quantity 0 and conditions qClosing/qNewsDissemination/qNewsPending/qTradingRangeIndication/qOrderImbalance/qResume;
    extreme quotes are dropped (bid < 0.05 x 10-day average price, ask > 10 x average; new symbols: min
    0.03, max 19998). The price filter is not applied to trades.'
  authoritativeDefinitions:
  - type: businessDefinition
    url: https://algoseek.com/dataset/us-equities-trade-and-quote-daily-bar/
  - type: implementation
    url: https://algoseek.com/data-docs/equity-market-data/algoseek.US.Equity.Daily.TAQ.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_DAILY}/
  format: csv
  encoding: UTF-8
  customProperties:
  - property: layout
    value: Plain-text CSV with a fixed header row; one file per trading day containing all symbols (rows
      are bars). Compression and bucket/key path are 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/taq-daily/: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_daily_bar
  physicalName: eq_taq_daily
  physicalType: file
  logicalType: object
  businessName: US Equities Trade and Quote Daily Bar
  description: One row is one security on one trading day, summarising that day's SIP trades and NBBO
    quotes into OHLC-style price points plus spread, quote-count, buy/sell-pressure, listed vs FINRA volume,
    tick-direction volume, VWAP and time-weighted bid/ask metrics. Used for quant research and ML features
    on daily liquidity and order flow.
  dataGranularityDescription: one security (SecId/Ticker) x one trading day
  properties:
  - name: TradeDate
    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: SecId
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: algoseek unique security id; stays the same across ticker changes.
    primaryKey: true
    primaryKeyPosition: 2
    required: true
    partitioned: true
    partitionKeyPosition: 2
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Ticker
    logicalType: string
    physicalType: string (csv text)
    description: Symbol name.
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: Name
    logicalType: string
    physicalType: string (csv text)
    description: Name of the equity security.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: PrimaryExchange
    logicalType: string
    physicalType: string (csv text)
    description: 'Primary listing exchange on this trade date (can change over time, e.g. ORCL moved from
      NASDAQ to NYSE in 2013); sample: NYSE, NASDAQ, ARCA, AMEX, BATS.'
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: ISIN
    logicalType: string
    physicalType: string (csv text)
    description: ISIN as of the trade date; optional.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: OpenBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO bid price in force at the bar open.
    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: Total size across exchanges quoting the open NBBO bid price.
    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 the bar open.
    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: Total size across exchanges quoting the open NBBO ask price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: OpenTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: 'Price of the opening trade, picked by priority: official open, opening print, regular
      opening trade, first market-hours trade (Table 1). Blank if no trade.'
    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: Shares in the opening trade; blank if no trade.
    customProperties:
    - property: unit
      value: shares
    - 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 opening trade; blank if no trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - 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: Total size across exchanges at the highest NBBO bid price.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time the highest NBBO bid was reached.
    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: Total size across exchanges at the highest NBBO ask 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.mmm
    physicalType: string (timestamp) (csv text)
    description: Time the highest NBBO ask was reached.
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: HighTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: 'Price of the highest trade (Appendix B: non-FINRA, non-odd-lot, regular-hours, no special-price
      flags). Blank if no qualifying trade.'
    customProperties:
    - property: unit
      value: USD
    - 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 trade; blank if no trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - 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: Total size across exchanges at the lowest NBBO bid price.
    required: true
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowBidTime
    logicalType: time
    logicalTypeOptions:
      format: HH:MM:SS.mmm
    physicalType: string (timestamp) (csv text)
    description: Time the lowest NBBO bid was reached.
    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: Total size across exchanges at the lowest NBBO ask 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.mmm
    physicalType: string (timestamp) (csv text)
    description: Time the lowest NBBO ask was reached.
    required: true
    customProperties:
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: LowTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: Price of the lowest trade (same qualifying-trade rules as the high); blank if no qualifying
      trade.
    customProperties:
    - property: unit
      value: USD
    - 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 trade; blank if no trade.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: CloseBidPrice
    logicalType: number
    physicalType: decimal (csv text)
    description: NBBO bid price at the 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: Total size across 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 the 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: Total size across exchanges at the closing NBBO ask price (guide types it decimal, sample
      shows whole shares).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: Never
    - property: evidence
      value: guide+sample
  - name: CloseTradePrice
    logicalType: number
    physicalType: decimal (csv text)
    description: 'Price of the closing trade, picked by priority: official close, closing print, regular
      close, last trade (Table 2). Blank if no trade.'
    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: Shares in the closing trade; blank if no trade.
    customProperties:
    - property: unit
      value: shares
    - 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 closing trade; blank if no trade.
    customProperties:
    - 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; 0 if the market was crossed (negative spreads
      are 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 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 cancelled trades; empty when none (97 of 100 sample rows).
    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 quotes during 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: Share volume traded at or below the NBBO bid (late-printed trades can sit below the current
      bid).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtBidMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Share volume traded strictly between the NBBO bid and midpoint.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtMid
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Share volume traded exactly at the NBBO midpoint.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtMidAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Share volume traded strictly between the NBBO midpoint and ask.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtAsk
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Share volume traded at or above the NBBO ask.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: TradeAtCrossOrLocked
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Share volume 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: ListedMarketHoursVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded on public listed exchanges during regular market hours only.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: ListedMarketHoursTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of trades on listed exchanges during regular market hours.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: ListedTotalVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares traded on listed exchanges for the whole day (pre, regular, post-market).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: ListedTotalTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of listed-exchange trades for the whole day.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: FinraMarketHoursVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares reported to FINRA/TRF (off-exchange) during regular market hours.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: FinraMarketHoursTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of FINRA/TRF trades during regular market hours.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: FinraTotalVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Shares reported to FINRA/TRF for the whole day.
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: FinraTotalTrades
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: integer (csv text)
    description: Number of FINRA/TRF trades for the whole day.
    customProperties:
    - property: unit
      value: count
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: UptickVolume
    logicalType: integer
    logicalTypeOptions:
      format: i64
    physicalType: Integer (csv text)
    description: Shares traded on upticks (trade price above the previous trade price).
    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 downticks (trade price below the previous trade price).
    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 at an unchanged price whose 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 at an unchanged price whose 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 day's first trade after 4 AM, whose tick direction is unknown (no prior
      trade).
    customProperties:
    - property: unit
      value: shares
    - property: nullMeaning
      value: '0'
    - property: evidence
      value: guide+sample
  - name: MarketVWAP
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average trade price over regular hours plus the opening/closing crosses
      (which may print after 16:00 ET).
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: DailyVWAP
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted average trade price for the whole day including pre- and post-market.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeToMidVolWeight
    logicalType: number
    physicalType: decimal (csv text)
    description: Volume-weighted mean of trade price minus NBBO midpoint; positive hints buying pressure.
      Blank if no trades; FINRA trades excluded; unit unstated (formula uses pennies).
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TradeToMidVolWeightRelative
    logicalType: number
    physicalType: decimal (csv text)
    description: Same measure scaled by the spread (min 1 penny) before volume weighting; blank if no
      trades; FINRA trades excluded.
    customProperties:
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightBid
    logicalType: number
    physicalType: decimal (csv text)
    description: Time-weighted average NBBO bid over the bar, starting from the open bid.
    customProperties:
    - property: unit
      value: USD
    - property: nullMeaning
      value: Blank
    - property: evidence
      value: guide+sample
  - name: TimeWeightAsk
    logicalType: number
    physicalType: decimal (csv text)
    description: Time-weighted average NBBO ask over the bar, starting from the open ask.
    customProperties:
    - property: unit
      value: USD
    - 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:
      - TradeDate
      - SecId
    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: 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: 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: FinraMarketHoursVolume_non_negative
    type: sql
    description: FinraMarketHoursVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE FinraMarketHoursVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: FinraTotalVolume_non_negative
    type: sql
    description: FinraTotalVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE FinraTotalVolume < 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: ListedMarketHoursVolume_non_negative
    type: sql
    description: ListedMarketHoursVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE ListedMarketHoursVolume < 0
    mustBe: 0
    dimension: accuracy
    severity: error
  - id: ListedTotalVolume_non_negative
    type: sql
    description: ListedTotalVolume is never negative.
    query: SELECT COUNT(*) FROM {object} WHERE ListedTotalVolume < 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: 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: 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: 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: 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_daily
- property: vendorSampleUrl
  value: https://as-metadata-services-assets.s3.amazonaws.com/sample_data/cloud_storage/eq_taq_daily.csv
- property: assetClass
  value: equity
- property: venues
  value:
  - NASDAQ
  - BATS
  - NYSE
  - ARCA
  - FINRA TRF
- property: coverage
  value: Built from as-is SIP trades and top-of-book quotes for all listed stocks, ETNs, ETFs, ADRs and
    funds from 16+ US exchanges and marketplaces, incl. FINRA TRF off-exchange trades (page also lists
    common/preferred stocks, warrants and units). Opening/closing prices follow each stock's primary listing
    exchange. History start not stated. The venues listed are only the guide's examples.
- property: timezone
  value: America/New_York
- property: timestampFormat
  value: HH:MM:SS.mmm (millisecond, time-of-day only; the date is TradeDate)
- property: sessionHours
  value: Pre-market 04:00:00-09:30:00 (excl.), market hours 09:30:00-16:00:00 (excl.), post-market 16:00:00-20:00:00
    ET; market hours end 13:00:00 on early-close days; trades occasionally recorded several minutes after
    20:00
- 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.
  - 'Doc discrepancy: Column order: guide Table 3 lists SecId before TradeDate; the sample header starts
    TradeDate, SecId, Ticker.'
  - 'Doc discrepancy: CloseAskSize is typed ''decimal'' in the guide table although every sibling size
    is integer and the sample holds whole shares.'
  - 'Doc discrepancy: OpenTradePrice is described as ''Price of the first trade'' in Table 3, but the
    introduction and Tables 1-2 define it as the primary-exchange official open/opening print (and likewise
    for the close).'
  - 'Doc discrepancy: Regular Opening Trade window: Table 1 says open to open + 15 minutes (normally 09:30-09:45);
    Appendix B says largest volume between 09:30:00 and 09:40:00 inclusive.'
  - 'Doc discrepancy: FAQ refers to a ''TimeBarStart'' field in HHMMSSmmm/HHMMSSmmmiiinnn format and Appendix
    B calls itself ''minute bar calculations''; both are carry-over text from the minute-bar guides, since
    this dataset has no such field and its time columns are HH:MM:SS.mmm.'
  - 'Doc discrepancy: Time fields are typed only ''string (timestamp)'' in the guide; the sample shows
    HH:MM:SS.mmm with no date or zone.'
  - 'Doc discrepancy: Page says ''65 metrics''; the sample has 65 columns in total, of which 6 are identifiers/descriptors
    (TradeDate, SecId, Ticker, Name, PrimaryExchange, ISIN); the guide says ''more than 60 data fields''.'
  - 'Doc discrepancy: Guide says ''16+ exchanges'' here and ''15+'' in the TAQ guide; no explicit venue
    list is given in this guide.'
  - 'Doc discrepancy: Typos: ''NNBO'' in NBBOQuoteCount, ''rade'' in HighTradeTime, TradeAtMidAsk described
    as ''ask volume'', ''tDerivativelyPrices'' (flag is tDerivativelyPriced).'
  - 'Doc discrepancy: Bar notes define DailyVWAP with the same denominator as MarketVWAP (ListedMarketHoursVolume
    + FinraMarketHoursVolume) although it is described as a whole-day VWAP.'
  - 'Doc discrepancy: HighBidSize is 0 on one sample row (AACT) although the guide marks it ''Never''
    missing and defines it as a total size at the high bid price.'
  - 'Doc discrepancy: No history start date is given in the guide or on the page.'
contractCreatedTs: '2026-11-02T00:00:00Z'
