Cboe U.S. Equities Historical Market Volume Data 2009
- Rows
- 3,232
- Columns
- 14
Daily historical market volume, notional value, and trade counts for U.S. equities exchanges and TRFs for 2009.
AI analysis
Dataset Analysis: Cboe U.S. Equities Historical Market Volume Data 2009
1. Dataset Overview & Analytical Value
This dataset, sourced from Cboe's official statistics portal at cdn.cboe.com/resources/us/equities/market-statistics/historical-market-volume/, captures daily U.S. equity market microstructure activity across 13 distinct market participants throughout 2009 — a year of extraordinary financial significance spanning the tail end of the Global Financial Crisis and the subsequent March recovery. The 3,232 rows represent the cross-product of 252 trading days and 13 market participants (252 × 13 = 3,276, suggesting a small number of participant-day combinations may be absent). Data is segmented across three reporting tapes — Tape A (NYSE-listed), Tape B (NYSE American/regional), and Tape C (Nasdaq-listed) — plus aggregate totals, covering shares traded, notional dollar value, and trade counts. This granularity makes the dataset exceptionally well-suited for studying market concentration, participant behavior shifts, and volume dynamics during a historically volatile period.
---
2. Data Quality Observations
Data quality is notably strong. All 14 columns report zero null cells across 3,232 rows, which is uncommon for financial time-series data of this vintage and suggests either thorough source-side imputation or clean API delivery. Duplicate row counts are flagged as pending Phase D recomputation, so that figure warrants verification before any aggregation analysis — if duplicates exist at the Date × Market Participant grain, totals will be inflated. The presence of minimum values of 0 across all Tape A, B, and C columns (shares, notional, and trade counts) is worth scrutinizing: these zeros likely reflect participants that were inactive on certain tapes on specific days, which is legitimate, but they should be distinguished from missing data before modeling. The Total Shares and Total Notional columns have fully distinct values (distinct=3,232, matching row count exactly), which is a strong internal consistency signal — no two participant-day combinations share identical totals. Type assignments appear appropriate throughout, with integer types for share and trade count columns and decimal for notional values.
---
3. Key Column Distributions & Notable Patterns
The volume columns reveal a heavily right-skewed market structure, consistent with the well-known concentration of U.S. equity trading. Tape A Shares has a mean of ~440M but a median of only ~78M (skew=1.50, 146 outliers), indicating that a small number of participant-days account for a disproportionate share of NYSE-listed volume — almost certainly the dominant electronic venues like NYSE and Nasdaq. Tape C Shares shows the most extreme skewness (skew=1.89, 437 outliers), suggesting Nasdaq-listed securities had particularly uneven volume distribution across participants. The interquartile range for Total Shares is striking: Q1=35.7M vs. Q3=1.31B — a 37× spread — reflecting the massive scale difference between smaller regional participants and the major exchanges. On the notional side, Total Notional ranges from a minimum of just $61,343 to a maximum of $93.1B (mean=$17.2B, median=$2.75B, skew=1.11), with the tighter skew relative to shares suggesting price normalization effects. Tape A Trade Count is the most behaviorally interesting column, with its relatively lower skewness (0.892 vs. 1.5–1.89 for others), implying more even distribution of trade frequency on NYSE-listed names even when share volume is concentrated — consistent with algorithmic fragmentation of large orders.
---
4. Recommended Join Key Columns
The Date column is the primary join key, confirmed by its designation as [Join Key] with 252 distinct values aligning perfectly with the U.S. trading calendar for 2009. It should be joined as a calendar date type to avoid string-matching errors. Market Participant (13 distinct string values) serves as the secondary dimension key, enabling participant-level joins to exchange registration data, regulatory filings, or ATS (Alternative Trading System) disclosure reports. For any cross-dataset analysis, the composite key Date + Market Participant should be treated as the effective grain identifier. If joining to macroeconomic or index-level data, Date alone suffices, with participant-level rows aggregated to daily totals using the provided Total Shares, Total Notional, and Total Trade Count columns.
---
5. Recommended Companion Datasets for Correlation Analysis
Several dataset categories would pair powerfully with this data:
- VIX / Volatility Index Data (2009): Cboe's own VIX daily readings would allow direct correlation of aggregate volume spikes with fear/volatility regimes — the March 2009 market bottom should produce a sharp signature. - S&P 500 or Russell 3000 Daily Returns: Mapping total notional or trade counts against index returns could quantify whether volume leads, lags, or coincides with directional price moves. - Federal Reserve FOMC Event Calendar (2009): Overlaying policy announcement dates onto participant-level trade counts would test whether certain participant types (e.g., market makers vs. agency brokers) respond differently to macro events. - SEC ATS Transparency Data / FINRA TRF Reports: The 13 market participants likely include several Trade Reporting Facilities (TRFs); matching participant identifiers to regulatory filings would enable dark pool vs. lit venue segmentation. - Earnings Calendar Data (2009): Tape A and Tape C volume surges on specific days could be mapped to earnings announcements to quantify the microstructure impact of information events across listing venues.
Columns
- Date (date)
- Market Participant (string)
- Tape A Shares (integer)
- Tape B Shares (integer)
- Tape C Shares (integer)
- Total Shares (integer)
- Tape A Notional (decimal)
- Tape B Notional (decimal)
- Tape C Notional (decimal)
- Total Notional (decimal)
- Tape A Trade Count (integer)
- Tape B Trade Count (integer)
- Tape C Trade Count (integer)
- Total Trade Count (integer)