US Futures Trade Only Minute Bar
One-minute event-based bars built only from executed trades in CME-listed futures: OHLC, dollar-style volume, contract and trade counts, and buy/sell aggressor splits.
How to use it
UTCDate/UTCTime are the event time in UTC and files cover UTC calendar days, so one CME overnight session spans two files and Sunday-evening trading lands under Monday's UTCDate. LocalDate/LocalTime are Chicago clock time and do not roll at the 17:00 CT session open; derive the exchange trade date yourself. The ticker is one contract month (e.g. ESZ3), not a continuous series; roll explicitly. Aggressor side comes from TypeMask bits 7 (buy) and 6 (sell); a plain TRADE means the initiator is unknown. Rows flagged as calculated (Flags 8) are not trades.
Typical use
Futures backtesting, roll research, and intraday microstructure on CME Group venues.
Limitations
Delivered as recorded from the source feed: AlgoSeek does not remove crossed or locked quotes, bad prints, or out-of-sequence packets unless contracted to. Consumers own cleaning. In the sample TotalQuantity differs from BuyQuantity + SellQuantity in 1 of 100 bars (trades with no aggressor side); BuyQuantity/BuyTradeCount are blank in 0 bars and SellQuantity/SellTradeCount in 0 (guide Missing = Blank). Bars are event-based and trade-only: a row exists only for a minute with at least one actual trade, so the series is sparse (sample UTCTimeBarStart values skip empty intervals). A contract-day with no trades has no file; very illiquid contracts may have none for weeks. A file is created only if there is at least one trade in the whole 24-hour session. Calculated trade prices (not actual trades, Flags 8 in the tick data) are excluded from bars. If a bar has a single trade, OpenPrice = HighPrice = LowPrice = ClosePrice.
Coverage
Page: futures on US exchanges incl. CME, CBOT, COMEX and NYMEX, trade-only, full historical archive plus daily automated updates. Guide: bars for securities listed on US exchanges. Start of history not stated.
Venues (4)
- CME
- CBOT
- COMEX
- NYMEX
Answers to common questions
- What time zone are the timestamps in?
- UTC, with LocalDate/LocalTime fields in US Central (Chicago) time.
- Which file holds a Sunday-evening CME session?
- The Monday UTCDate file; files are UTC calendar days.
Usage constraints
- 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.
- 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.
Known issues (6)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyGuide types TotalVolume as integer and TotalQuantity as decimal, but the sample has TotalVolume with 6 decimals (e.g. 1909236.250000) and TotalQuantity as whole numbers; the Second Bar guide lists them the other way round (decimal / integer).
- Documentation discrepancyGuide says UTCTimeBarStart/LocalTimeBarStart are HH:MM for minute bars; the sample shows HH:MM:SS (e.g. 22:00:00).
- Documentation discrepancyGuide's note says a one-minute bar 11:04 covers times greater than 11:04 to less than 11:05, and a one-second bar 13:03:02 covers times greater than 13:03:01 up to 13:03:02, which reads as end-labelled and conflicts with the column name BarStart; no event times are in the trade-only sample to settle it (the TAQ minute-bar sample shows start-labelled windows).
- Documentation discrepancyGuide names TotalVolume 'Total Dollar Volume' (sum of price x contract size), but it equals price x number of contracts in price units, not USD notional (no contract multiplier). E.g. the 22:07:00 UTC bar has 29 contracts all at 4538.25 and TotalVolume 131609.25 in the sample.
- Documentation discrepancyTrade-only minute-bar guide lists CallPut, Strike, Month and ExpirationYear as options-only fields; they are absent from this futures sample header and are not included in columns.
16 columns in delivery order · file or table name fut_trades_1min. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| Ticker | string | Key 1 · Partition · Required | Contract symbol: base symbol + month code + last digit of expiry year (e.g. ESZ3). Missing values: Never · Source: vendor guide and sample |
| UTCDate | dateyyyymmdd | Key 2 · Partition · Required | UTC trade date of the bar (the UTC calendar day of the bar start). Missing values: Never · Source: vendor guide and sample |
| UTCTimeBarStart | timeHH:MM:SS (sample); guide says HH:MM for minute bars | Key 3 · Required | UTC start of the one-minute bar, HH:MM:SS in the sample (guide says HH:MM for minute bars). Sample events fall in [start, start+60 s). Missing values: Never · Source: vendor guide and sample |
| LocalDate | dateyyyymmdd | Required | Chicago calendar date of the bar start (guide: local trade date); differs from UTCDate when UTC is 5-6 h ahead of the date. Missing values: Never · Source: vendor guide and sample |
| LocalTimeBarStart | timeHH:MM:SS (sample); guide says HH:MM for minute bars | Chicago local start time of the bar (DST-aware), same layout as UTCTimeBarStart. Missing values: Never · Source: vendor guide and sample | |
| OpenPrice | number | Price of the first trade in the bar. Missing values: Blank · Source: vendor guide and sample | |
| HighPrice | number | Highest trade price in the bar. Missing values: Blank · Source: vendor guide and sample | |
| LowPrice | number | Lowest trade price in the bar. Missing values: Blank · Source: vendor guide and sample | |
| ClosePrice | number | Price of the last trade in the bar. Missing values: Blank · Source: vendor guide and sample | |
| TotalVolume | number | Sum of trade price x contracts over the bar (guide: 'Total Dollar Volume'); in price units, no contract multiplier applied (sample-checked). Missing values: Never · Source: vendor guide and sample | |
| TotalQuantity | integeri64 | Total contracts traded in the bar; can exceed BuyQuantity + SellQuantity when some trades have no aggressor side. Unit: contracts · Missing values: Never · Source: vendor guide and sample | |
| BuyQuantity | integeri64 | Contracts in trades with 'Trade Aggressor on Buy'; blank if none. Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| SellQuantity | integeri64 | Contracts in trades with 'Trade Aggressor on Sell'; blank if none. Unit: contracts · Missing values: Blank · Source: vendor guide and sample | |
| TotalTradeCount | integeri64 | Required | Number of separate trades in the bar; can exceed BuyTradeCount + SellTradeCount when some trades have no aggressor side. Unit: count · Missing values: Never · Source: vendor guide and sample |
| BuyTradeCount | integeri64 | Number of 'Trade Aggressor on Buy' trades; blank if none. Unit: count · Missing values: Blank · Source: vendor guide and sample | |
| SellTradeCount | integeri64 | Number of 'Trade Aggressor on Sell' trades; blank if none. Unit: count · Missing values: Blank · Source: vendor guide and sample |
- errorrow_count_positivecompleteness
Every delivered partition (trade date, or snapshot) carries at least one row.
rowCount must be greater than 0
- errorprimary_key_uniqueuniqueness
The declared primary key is unique within each delivered partition (one file or table snapshot).
duplicateValues (properties: Ticker, UTCDate, UTCTimeBarStart) must be 0
- errorbar_high_ge_lowaccuracy
HighPrice is never below LowPrice in the same row.
SELECT COUNT(*) FROM {object} WHERE HighPrice IS NOT NULL AND LowPrice IS NOT NULL AND HighPrice < LowPrice - warningopen_close_within_rangeaccuracy
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).
SELECT COUNT(*) FROM {object} WHERE OpenPrice > HighPrice OR OpenPrice < LowPrice OR ClosePrice > HighPrice OR ClosePrice < LowPrice - errorBuyTradeCount_non_negativeaccuracy
BuyTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE BuyTradeCount < 0 - errorSellTradeCount_non_negativeaccuracy
SellTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE SellTradeCount < 0 - errorTotalTradeCount_non_negativeaccuracy
TotalTradeCount is never negative.
SELECT COUNT(*) FROM {object} WHERE TotalTradeCount < 0 - errorTotalVolume_non_negativeaccuracy
TotalVolume is never negative.
SELECT COUNT(*) FROM {object} WHERE TotalVolume < 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with a fixed header row, gzip-compressed (.csv.gz, about 8:1). By default one file per symbol (contract) per trading day (guide example: ESH0 on 2020-01-28). A file exists only if the contract had enough activity that day; no bucket, path or file-name pattern is given.
- Compression:
- gzip
- Access:
- Bucket access is granted per subscription; bucket names arrive with license provisioning.
REST API
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.
https://api.algoseek.com/v1/data/us-futures/trades-1min/:identifier
- Authentication:
- X-API-KEY header issued by AlgoSeek
- Response formats:
- json, csv, csv_gzip
- Pagination:
- offset + limit; tick endpoints take trade_date and identifier (Ticker or ASID) in the path
Service levels
- Update frequency
- Daily
- Retention
- Bounded by the license term
- Retention of landed copies is bounded by the AlgoSeek license; purge on termination.
- History starts
- Not stated in the vendor documentation
Service levels describe the vendor feed as documented. They are draft values, not a commitment by AlphaSwarm.
Data Contract Editor · read-only preview — edits are not saved
Open-source Data Contract Editor (MIT). Changes stay in this browser tab: Cancel restores the published contract, and Download copy saves your edited YAML to your device only.
Contracts follow the Open Data Contract Standard (Bitol, LF AI & Data).
Vendor names are trademarks of their owners.