LIMITATIONS.md — What this dataset can and cannot support
Date: 2026-07-13 (Stage A). To be revised after full-sample audit.
1. OHLCV is not microstructure data
The dataset contains one-minute OHLCV bars only. It does not contain quotes, bid–ask spreads, order-book depth, order imbalance, trade direction, hidden liquidity, venue identifiers, or execution costs. Consequences:
- Liquidity is never observed; only OHLCV-based liquidity proxies (Amihud-type ratios, high–low range, zero-return/stale-price frequency, volume shocks) are available. All claims must be phrased as proxies.
- Price discovery mechanisms (quote updates vs trades) cannot be separated.
- Trade direction and order-flow imbalance are unobservable; signed-flow contagion channels cannot be tested directly.
- Effective spreads / transaction costs are not measurable; any economic-value exercise must use assumed, conservative cost schedules.
2. The panel is trade-conditional
Zero-volume bars do not exist in the data: a missing minute means "no reported trade in that minute." Therefore:
- Missingness is informative (illiquidity), not random; imputation would destroy the object of interest.
- "No recorded bar" must be distinguished from "zero return" throughout (flag, don't fill).
- Sparse names have few bars per day (2025-12 cross-ticker median: 5.5 RTH bars/day); minute-level propagation analysis is only meaningful within a liquidity-screened universe, with breadth denominators restricted to eligible (actively trading) securities.
3. Identity and corporate actions
- Securities are identified by ticker only. No CUSIP/PERMNO. Ticker reuse and renames mean long horizons cannot be treated as one security without a spell map; conservative analyses run within continuous ticker episodes.
- Prices are unadjusted (BRK.A at 771k confirms raw levels). Splits/dividends are not flagged; split detection near rational ratios, exclusion windows, and robustness to close-to-close vs open-to-close returns are mandatory.
- Security type (common stock, ETF, ADR, preferred, warrant, fund, OTC) is not labeled; the 2025 file plainly includes large OTC/foreign coverage (23k tickers). External classification or suffix heuristics required; residual misclassification will remain and must be bounded via robustness (ETF/ADR exclusions).
4. Coverage is time-varying by construction
- Universe: ~8.3k tickers (1992) → ~8.1k (2009) → ~23.1k (2025); the 2020s expansion largely reflects OTC coverage, not market growth. Secular comparisons must hold the universe definition fixed (e.g., top-N by lagged dollar volume) or results will mechanically reflect coverage changes. This is itself a falsification test (CLAUDE.md §16).
- Extended-hours coverage grows over time (0% pre-market rows in 1992-06 vs 4.9% in 2025-12); RTH-only is the only decade-comparable baseline.
- 1990s bar density for small caps is low; whether this is source coverage or true sparsity is unresolved (external validation planned).
5. Provenance and licensing
- Upstream is Finnhub via a third-party repackager; no checksums against the original archives, no revision history for corrections, and no license on the card. Data errors of the source (bad prints, missing halts, venue scope) cannot be independently ruled out; cross-validation against reference daily data (volume, close) is planned for a sample of names.
- Whether bars are consolidated-tape or single-venue is unknown (open question; affects volume levels and off-hours prints).
6. Inference consequences
- One-minute returns of sparse names are contaminated by bid–ask bounce and stale prices; robust/quantile methods and liquidity screens are required.
- Common-information contamination (macro news moving everything at once) is the central identification threat; OHLCV alone cannot label news — scheduled-announcement windows and placebo designs stand in (CLAUDE.md §12).
- Nothing in the data supports direct causal claims about algorithmic/high-frequency trading; only association with market-structure eras, with explicit competing explanations.