US Equities Trading Halts
One row per trading-halt case for a US equity symbol on a processing date, built from the CTA and UTP SIP feeds, with halt and resume timestamps (exchange and SIP clocks), raw and normalized reason codes and end-of-day status. Used for halt-duration analysis, trading controls and compliance monitoring.
How to use it
Rows are effective-dated. Answer point-in-time questions with the row in force on the as-of date, never the latest row. SecId and ASID are both durable AlgoSeek security keys but different values (the ASID lookup links them); tickers are reused across companies, so resolve a ticker to a key with a trade date.
Typical use
Point-in-time security identity, corporate-action adjustment, and universe construction for US equities.
Limitations
Vendor-curated reference data: rows can be restated when AlgoSeek learns of a late or corrected event, so land each delivery as a snapshot rather than overwriting history. Identifiers: SecId and ASID are both algoseek keys 'added for cross-referencing with other US equity datasets'; both can be empty (e.g. test symbols such as ZWZZT/ZVZZT; FCHL, FFFZ, RNBW also lack ids in sample). Symbol is always present but is a ticker, not a stable key. ASID prefix 101 is for listed equities (OTC security master ASIDs start 121 in its sample). Date semantics: Date is the processing/file date. A halt that persists is repeated in later dates' files with its original HaltDate (sample Date 20250814 carries HaltDate 20250715 rows with EodStatus Halted); a halt that began earlier and resumed on Date also appears (ResumeDate = Date in every resumed sample row). Do not treat Date as the halt start; use HaltDate + HaltTime*. Time semantics: HaltTime* reflect dissemination of the halt notice, not necessarily the instant trading stopped. Each time exists in an Exch (exchange-stamped) and a Sip (SIP-stamped) version, both with nanosecond digits; in the sample SIP time is 14-614 microseconds after the exchange time, except one long-running halt (SVA, HaltDate 20241025) whose HaltTimeSip is about 52 minutes after HaltTimeExch. Time zone is not stated; times are bare clock strings without date, so combine with HaltDate/R… Open halts: a halt may outlast the session; then ResumeDate, UtpQuoteResumeTime*, TradeResumeTime* stay blank and EodStatus = Halted (17 of 60 sample rows). EodStatus = Trading implies ResumeDate is set (43 of 60).
Coverage
Halts across all US equity exchanges, derived from the CTA feed (NYSE, NYSE American and other listed securities) and UTP feed (Nasdaq-listed and UTP-eligible securities). History start is not stated in the guide.
Venues (3)
- Nasdaq
- NYSE
- NYSE American
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 (8)
- Primary key is inferred; AlgoSeek's guide does not name one.
- Documentation discrepancyHeader spelling differs between guide and sample: the guide Table 2 lists HaltTimeSIP and TradeResumeTimeSIP, the published CSV header uses HaltTimeSip and TradeResumeTimeSip (UtpQuoteResumeTimeSip matches in both).
- Documentation discrepancyGuide types HaltCaseSeq as string, but every sample value is a small integer (1-5); guide types TotalMessages as integer.
- Documentation discrepancyGuide AsNormRsn text for code D is 'News Released' (Tables 3 and 4), but sample rows with D carry the longer 'News Released (formerly News Dissemination)'.
- Documentation discrepancyGuide Table 4 describes the Level 2 circuit-breaker resumption as 'if previously level 3' (apparent typo for level 2) and spells 'Filling Requirements' for 'Filing Requirements'.
- Documentation discrepancyGuide Table 1 sample for the CTA row (ACCS) shows a time under UtpQuoteResumeTimeSip, which the field definition limits to UTP-plan securities; the published CSV has that CTA value in TradeResumeTimeExch and leaves UtpQuoteResumeTime* blank, so the guide example is likely mis-aligned (possibly a layout artifact).
- Documentation discrepancyGuide gives no Missing column; blank behavior is only described in prose (special cases section) and the SecId/ASID field text.
- Documentation discrepancyGuide says both SecId and ASID are 'algoseek unique security identifier' with identical text; the two are distinct values (SecId 7-8 digits, ASID 16 digits starting 101 in sample) and the guide does not explain the difference.
21 columns in delivery order · file or table name eq_trading_halts. Types are ODCS logical types; the format line shows how values are written.
| Column | Type | Key | Description |
|---|---|---|---|
| Date | dateyyyymmdd | Key 1 · Required | Date on which this record was processed; one file per Date, and ongoing halts from earlier days are repeated under later Dates. Missing values: unstated (always populated in sample) · Source: vendor guide and sample |
| SecId | integeri64 | algoseek unique security identifier; blank for test symbols (6 of 60 sample rows). Missing values: May be empty, e.g. for test symbols · Source: vendor guide and sample | |
| ASID | integeri64 | algoseek unique security identifier (second form, 16 digits in sample, prefix 101); blank when SecId is blank. Missing values: May be empty, e.g. for test symbols · Source: vendor guide and sample | |
| Symbol | string | Key 2 · Required | Ticker symbol; may include exchange test symbols (e.g. ZWZZT, ZVZZT) for completeness. Missing values: unstated (always populated in sample) · Source: vendor guide and sample |
| OrigExch | string | Exchange where the halt originated, typically the primary listing venue (Nasdaq, NYSE American in sample). Missing values: unstated (always populated in sample) · Source: vendor guide and sample | |
| Plan | string · enum (2) | SIP plan under which the halt was reported; decides which fields are populated. Missing values: unstated (always populated in sample) · Source: vendor guide and sample 2 allowed values
| |
| EodStatus | string · enum (2) | Trading status of the security at market close. Missing values: unstated (always populated in sample) · Source: vendor guide and sample 2 allowed values
| |
| HaltDate | dateyyyymmdd | Key 3 · Required | Date the present halt began; can be earlier than Date for multi-day halts. Missing values: unstated (always populated in sample) · Source: vendor guide and sample |
| HaltTimeExch | timeHH:MM:SS.mmmuuunnn | Exchange-provided timestamp, nanosecond precision, when the halt was activated. Missing values: unstated (always populated in sample) · Source: vendor guide and sample | |
| HaltTimeSip | timeHH:MM:SS.mmmuuunnn | SIP-provided timestamp when the halt message was disseminated. Missing values: unstated (always populated in sample) · Source: vendor guide and sample | |
| CtaLastPricePreHalt | number | Last price before the halt from CTA-plan exchanges; currency not stated (USD implied). Missing values: Blank for UTP-plan securities (not available); otherwise unstated · Source: vendor guide and sample | |
| ResumeDate | dateyyyymmdd | Date on which trading resumed. Missing values: Blank until the halt is lifted (halt may persist beyond the session) · Source: vendor guide and sample | |
| UtpQuoteResumeTimeExch | timeHH:MM:SS.mmmuuunnn | Exchange-provided timestamp when quotation resumed, for UTP-plan securities. Missing values: Blank for CTA plan and until quotes resume · Source: vendor guide and sample | |
| UtpQuoteResumeTimeSip | timeHH:MM:SS.mmmuuunnn | SIP-provided timestamp when quotation resumed, for UTP-plan securities. Missing values: Blank for CTA plan and until quotes resume · Source: vendor guide and sample | |
| TradeResumeTimeExch | timeHH:MM:SS.mmmuuunnn | Exchange-provided timestamp when the security resumed trading. Missing values: Blank until the halt is lifted · Source: vendor guide and sample | |
| TradeResumeTimeSip | timeHH:MM:SS.mmmuuunnn | SIP-provided timestamp when the resumption message was disseminated. Missing values: Blank until the halt is lifted · Source: vendor guide and sample | |
| AsNormRsnCode | string · enum (16)one or more codes separated by semicolon (e.g. P;D) | algoseek-normalized halt reason code(s), semicolon-separated when several reasons apply. Missing values: Blank in 13 of 60 sample rows (UTP reason may be unavailable at halt start) · Source: vendor guide and sample 16 allowed values
| |
| AsNormRsn | stringone or more descriptions separated by semicolon | algoseek-normalized reason description(s), semicolon-separated. Missing values: Blank when AsNormRsnCode is blank · Source: vendor guide and sample | |
| ExchRsnCode | stringone or more exchange codes separated by semicolon (e.g. T1;T3) | Original exchange reason code(s) from CTA or UTP, semicolon-separated. Missing values: Blank in 13 of 60 sample rows · Source: vendor guide and sample | |
| HaltCaseSeq | integeri64 | Key 4 · Required | Sequence number of the halt case during a trading session (1..5 in sample); guide types it string, sample values are integers. Missing values: unstated (always populated in sample) · Source: vendor guide and sample |
| TotalMessages | integeri64 | Total number of messages for the halt (1-4 in sample). Unit: count · Missing values: unstated (always populated in sample) · 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: Date, Symbol, HaltDate, HaltCaseSeq) must be 0
Delivery
S3 flat files
AlgoSeek flat-file delivery (the layout the schema below describes).
- Layout:
- Plain-text CSV with a fixed header; date-based aggregation: all halt data for the whole US equity universe for one trading date is stored in a single CSV file.
- 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-equity-ref/trading-halts
- 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
- 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.