# ⚡ Faster, Wider, More Fragile? **UQO Working Paper No. 15** — *The Evolution of Intraday Shock Propagation in U.S. Equity Markets, 1992–2026* [![Paper](https://img.shields.io/badge/paper-PDF%20(43%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Journal version](https://img.shields.io/badge/IRFA%20manuscript-elsarticle%20(50%20p.)-b31b1b?logo=latex&logoColor=white)](paper/main_irfa.pdf) [![Python](https://img.shields.io/badge/python-3.12%2B%20·%20uv-3776AB?logo=python&logoColor=white)](pyproject.toml) [![Data](https://img.shields.io/badge/data-7.69%20bn%20one--minute%20bars%20·%2081%2C306%20tickers-4051b5)](docs/DATA_AUDIT.md) [![Reproducible](https://img.shields.io/badge/reproducible-end--to--end%20pipeline%20(18%20scripts)-2e7d32)](scripts/) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca) > **TL;DR** — Using 7.69 billion one-minute bars on the full listed *and delisted* U.S. equity > cross-section (1992–2026), we track how intraday shocks propagate. (1) Isolated idiosyncratic > shocks barely spread: across 1.85 million isolated ±6σ minute events, the market-wide response > against matched within-stock placebos is bracketed between zero (difference-in-differences, > −1 to −3×10⁻⁴) and about 2 % of the base rate (pre-level-stratified, +19×10⁻⁴) at 1–120 minutes, > in every decade. (2) Transmission is concentrated: the shocked stock's twenty closest > lagged-correlation neighbours respond (+64×10⁻⁴ at five minutes, +51 in singleton minutes) and > this network channel rose from +28 (1990s) to +90 (2020s) — a rise that partly reflects sharper > identification of neighbours as the Epps effect receded. (3) Common information is impounded > within the minute (one-minute pairwise correlation 0.004 in 1996 vs 0.30 in 2015), ordinary extreme > minutes became ~10× rarer after decimalisation (~100× from the wide-tick 1990s), and severe co-jump > minutes are roughly ten times more frequent in 2008 and 2020 than in calm years. Modern markets > absorb the idiosyncratic, transmit it narrowly, and synchronise on the systemic. --- ## 📌 Status | Item | Value | |---|---| | Version | **1.1 (October 2026) — revised 2026-10-17** after a full editorial-board review (`docs/REVIEW-REPORT.md`, `docs/CHANGELOG-REVISION.md`); v1.0 = July 2026, tag `pre-revision-20261017` | | SSRN | not yet submitted | | Journal | *International Review of Financial Analysis* — submission package **regenerated for v1.1** in `outputs/release/` (manuscript 50 p., anonymous manuscript, highlights, cover letter, title page, online appendix), **not yet submitted**; before submitting: complete acknowledgments/funding, re-run the novelty scan, check the current Guide for Authors (`outputs/release/submission_checklist.md`) | | Code & data | reproducible from `scripts/` (see Quick start); raw minute bars (88 GB) not redistributed | ## 🎯 What this paper does Has the U.S. equity market become faster, wider and more fragile at the intraday horizon? The paper answers with the longest and broadest minute-level panel assembled to date — every listed and delisted common stock from 1992 to 2026 — and three complementary measurement devices: 1. **Shock-propagation event studies**: 1.85 million isolated ±6σ one-minute events, each matched to a within-stock placebo minute, tracked at horizons of 1 to 120 minutes for breadth (share of other stocks with a tail exceedance |z|>2), intensity, signed response, shock-magnitude gradient and network response (twenty nearest lagged-correlation neighbours); 2. **Epps curves**: pairwise correlation as a function of sampling interval, by year; 3. **Co-jump counts**: the number of stocks with extreme minute returns in the same minute, with a severity scale calibrated on calm, GFC and COVID periods. All headline numbers are macro-generated from machine-readable registries (`paper/results_macros.tex`, 97 macros built by `scripts/15_build_results_macros.py`); in-text references to table entries quote the generated tables. ## 🏆 Headline results | Object | Estimate | |---|---| | Panel | 7,686,275,524 bars, 81,306 tickers, 221,957 listing spells | | Isolated ±6σ events (real / placebo) | 1,854,384 / 1,766,058 (match rate 95.2 %; 71 % in the 1990s); 22 % of events alone in their minute | | Market-wide breadth, ΔΔ 5 min / 30 min | −1.04 (0.90) / −3.10 (1.01) ×10⁻⁴ (base rate ≈ 0.10) | | Market-wide breadth, pre-level-stratified 5 / 30 min | +19.5 (0.9) / +18.4 (1.0) ×10⁻⁴ (≈ 2 % of base rate) — upper bound | | Pre-event level, real − placebo | +40.3 (1.2) ×10⁻⁴ (shocks arrive in active minutes; differenced out) | | Network response (20 neighbours), 5 / 15 / 30 min | +64.0 (1.8) / +55.4 (1.8) / +49.6 (1.8) ×10⁻⁴; +51 (2.5) in singleton minutes; ticker-cluster SE 4.7 | | Network response by decade (5 min) | 1990s +28 → 2000s +30 → 2010s +81 → 2020s +90 (placebo contrast +200 / −41 / −44 / +68) | | Extreme minute returns (>1 %), 1990s → 2010s | 518 → 4.8 per 10,000 (÷108; 2002 → 2010s ÷10) | | Epps: 1-min correlation, 1996 / 2015 / 2024 | 0.004 / 0.30 / 0.21 | | Severe co-jump minutes per 1,000, 2017–19 / 2008 / 2020 | 9.5 / 91 / 84 (1992–97: 128 — tick artefact, not comparable) | | Robustness | 11 designs (Table 8) + design diagnostics (Table 9) + network components (Table 10) | ## 🗂 Repository layout ``` intraday-fragility/ ├── config/ # all parameters (YAML) — no magic constants in code ├── src/intraday_fragility/ # package: download, audit, cleaning, features, shocks, networks, econometrics, tables, figures ├── scripts/ # 00_download_pilot … 17_revision_checks (numbered pipeline) ├── tests/ # pytest (7 tests) ├── data/ # manifests only (raw bars never committed) ├── outputs/ │ ├── estimates/ # machine-readable estimates (707 MB, not committed) │ ├── diagnostics/ # audit JSON reports │ ├── figures/, tables/ # generated figures (PDF+PNG with source CSV) and LaTeX tables │ └── release/ # IRFA submission package (manuscript, anonymous, highlights, cover letter, title page, online appendix) ├── appendix/ # Internet Appendix (internet_appendix.tex → .pdf) ├── docs/ # DATA_AUDIT, DATA_DICTIONARY, DECISION_LOG, EMPIRICAL_DESIGN, LIMITATIONS, LITERATURE_MAP, REPRODUCIBILITY, COMPUTE_LOG ├── logs/ # pipeline logs ├── STATUS.md # stage-by-stage progress log └── paper/ ├── main.tex # UQO working-paper version (template cover) → main.pdf ├── main_irfa.tex # journal version (elsarticle, IRFA) → main_irfa.pdf ├── main_irfa_anon.tex # anonymous journal version → main_irfa_anon.pdf ├── highlights.tex # Elsevier highlights ├── sections/, figures/, tables/, bibliography/references.bib, results_macros.tex ``` ## 🚀 Quick start ```bash uv sync # or: pip install -e . python -m intraday_fragility.cli probe-data python -m intraday_fragility.cli download --start 1992-01 --end 2026-03 # 411 monthly parquet files, 87.7 GB python -m intraday_fragility.cli verify-download make # runs scripts/00 … 16 in order (see Makefile) python scripts/15_build_results_macros.py # → paper/results_macros.tex cd paper && make # UQO WP → main.pdf cd paper && latexmk -pdf main_irfa.tex main_irfa_anon.tex # journal + anonymous versions ``` Full download and cleaning run on the MacLustr cluster (see `docs/COMPUTE_LOG.md`); the estimation stages run on a 64 GB Apple-silicon node. ## 🗃 Data Minute-level OHLCV bars from the Hugging Face dataset `mito0o852/OHLCV-1m`, pinned at revision `776328445b7ac6e7815ef3a483e9c8ded1eb6d56` (411 monthly Parquet files, 87.7 GB, 1992-01 → 2026-03, no missing months; upstream source Finnhub.io per the dataset card). Schema: UTC bar-start timestamp, unadjusted OHLC, integer volume, ticker; **no zero-volume bars** (missing minute = no trade). Delisted securities are present (only 22–26 % of 1992 tickers survive). Cleaning: exchange calendar truncation, split/reverse-split screens (6,944 events), OHLC-violation and duplicate screens, corporate-action filters before any variance-based measure. Full audit: `docs/DATA_AUDIT.md`; variable definitions: `docs/DATA_DICTIONARY.md`. The dataset card carries no licence — the raw data are therefore not redistributed (`docs/LIMITATIONS.md`). ## 🔬 Methodology 1. **Universe & cleaning** (`scripts/04`–`08`, `src/…/cleaning.py`): monthly audits, split refinement, clean minute panel by listing spell. 2. **Aggregates** (`09`–`10`): extreme-return frequencies, realised variance, Epps curves, staleness. 3. **Shock detection & propagation** (`11`–`14`, `src/…/shocks.py`, `networks.py`): isolated ±6σ events, matched within-stock placebos, breadth / gradient / network responses at 1–120 min, difference-in-differences by decade. 4. **Co-jumps** (`13`–`14`): market-wide extreme-minute counts and severity regimes. 5. **Inference** (`src/…/econometrics.py`): event-clustered and month-cluster bootstrap standard errors. 6. **Robustness** (`16`): 11 designs — post-decimalisation, mid-day, ex-announcement, calm/crisis, |z| ≥ 8/12, ex-non-common, placebo network. 7. **Design diagnostics** (`17`, added 2026-10-17, from stored event files): pre-event levels, co-arrival classes, pre-level-stratified estimator, ticker-cluster bootstrap, signed response, network-differential components by decade. 8. **Reporting** (`15`): results macros, LaTeX tables, CVD-safe vector figures. ## 🖼 Figures & tables inventory | Figure | Content | |---|---| | `figP1_coverage`, `figP2_seasonality` | pilot coverage and intraday seasonality | | `figE1_coverage` … `figE9_splits` | universe coverage, survivorship, seasonality, concentration, extreme minutes, realised variance, staleness, Epps curves, splits | | `figF1_irf_decade` | propagation impulse responses by decade | | `figF2_evolution` | evolution of breadth vs network channel | | `figF3_gradient_state` | response gradient by liquidity tier and market state | | `figF4_network` | nearest-neighbour network response | | `figF5_cojumps` | co-jump counts and severity regimes | Tables (`paper/tables/*.tex`): sample construction (1), baseline propagation by horizon (2), design diagnostics (3), network mechanism (4), network components by decade (5), robustness battery (6); pilot summary and summary by decade in the online appendix. ## ⚠️ Limitations - Bars are trade-conditional (no zero-volume bars) and the venue scope (consolidated vs single venue) is not documented upstream. - Security-type classification relies on suffix heuristics; ETFs cannot be identified; non-common securities are excluded in robustness only. - Data licence unspecified on the dataset card: research use with citation, no redistribution of derived minute data. - Pre-2001 tick discreteness (52 % zero minute returns in 1996) precludes cross-regime comparisons of threshold-based series (extremes, co-jumps). - Neighbour sets are identified from one-minute residual correlations; the secular rise of the network channel combines transmission and measurement precision (see `docs/REVIEW-REPORT.md` §8 for the analyses needed to separate them, not executed: raw data required). - Real events arrive in minutes of elevated ambient activity; the market-wide response is bracketed (0 to ≈ 2 % of base rate), not pinned at zero. ## 📝 Citation ```bibtex @techreport{boucher2026fragile, author = {Boucher, Simon-Pierre}, title = {Faster, Wider, More Fragile? The Evolution of Intraday Shock Propagation in U.S. Equity Markets, 1992--2026}, institution = {Universit\'e du Qu\'ebec en Outaouais, D\'epartement des sciences administratives}, type = {Working Paper}, number = {15}, year = {2026}, month = {October}, note = {Version 1.1} } ``` ## 👤 Author & contact **Simon-Pierre Boucher** — Département des sciences administratives, Université du Québec en Outaouais (UQO), Gatineau, QC. 📧 [simon-pierre.boucher@uqo.ca](mailto:simon-pierre.boucher@uqo.ca) ## 🗒 Notes - Numbering: the project was first filed as `UQO_WP_001`; it is **Working Paper No. 15** since 2026-10-17 (No. 1 is the amenity-capitalisation paper). - `paper/main.tex` (UQO cover, template of `Recherche-UQO/_modele-working-paper`) was created on 2026-10-17 from the IRFA manuscript; the pre-existing skeleton (“Preliminary — do not cite”) was discarded. Scientific content is identical to `main_irfa.tex`; only the cover, bibliography style (`aer`) and layout differ. - Three PDFs are committed on purpose: `main.pdf` (working paper), `main_irfa.pdf` (journal), `main_irfa_anon.pdf` (anonymous review copy). - `outputs/estimates/` (707 MB) is excluded from git; regenerate with the pipeline. `outputs/diagnostics/revision_checks.json` is a committed copy of the 2026-10-17 diagnostics registry. - **Revision 2026-10-17 (v1.1)**: full editorial-board review — `docs/REVIEW-REPORT.md` (diagnosis, methodology verdicts, literature, maturity) and `docs/CHANGELOG-REVISION.md` (audit trail of every correction, references added/removed, reanalyses). The IRFA package in `outputs/release/` was regenerated from v1.1; if the sections change again, regenerate it (`latexmk -pdf main_irfa.tex main_irfa_anon.tex`, appendix, highlights, then copy to `outputs/release/`). - Bibliography: 124 references, all verified against Crossref by DOI on 2026-10-17 (`outputs/diagnostics/bibliography/`). - Original project brief: `docs/PROMPT_INITIAL_CLAUDE.md`; development conventions: `docs/CLAUDE.md`.