STATUS.md — Stages A–F2 complete; IRFA submission package assembled
Date: 2026-07-13
Completed work
-
Project scaffold per protocol §2: package (
src/intraday_fragility/), configs, scripts, tests (7 passing), Makefile,uv.lock, docs, LaTeX tree. -
Dataset probe (Stage A):
mito0o852/OHLCV-1mpinned at revision776328445b7ac6e7815ef3a483e9c8ded1eb6d56; inventory of 411 monthly Parquet files (87.7 GB), 1992-01→2026-03, no missing months (data/manifests/repo_inventory.json). -
Pilot download (1992-06, 2009-06, 2025-12; sha256 in
data/manifests/pilot_downloads.json) and pilot audit (scripts/01_pilot_audit.py, JSON reports inoutputs/diagnostics/, logs inlogs/audit/). -
Docs:
DATA_AUDIT.md,LIMITATIONS.md,DECISION_LOG.md,DATA_DICTIONARY.md,COMPUTE_LOG.md,EMPIRICAL_DESIGN.md,REPRODUCIBILITY.md,LITERATURE_MAP.md(candidates, none verified yet). -
Pilot figures (coverage, intraday seasonality; PDF+PNG; source data in
outputs/figures/data/) and summary-statistics LaTeX table (outputs/tables/tabP1_pilot_summary.{tex,csv}). -
Compiling LaTeX skeletons:
paper/main.pdfandappendix/internet_appendix.pdfbuild cleanly with the Data section drafted from verified audit facts only. -
Stage B COMPLETE (user instruction 2026-07-13: proceed with all data): all 411 monthly files downloaded (82 GB on disk), each verified against its LFS sha256 at download time; manifest
data/manifests/raw_files.{json,parquet,csv}. Post-hoc full re-verification + per-file audit (row counts, duplicates, timestamp bounds) running (verify-download+audit-raw). -
Literature review complete and massive: 110 references verified at DOI level via OpenAlex/Crossref (two passes, 9 verification agents);
paper/sections/02_literature.texfully written (10 subsections organized around the contribution); documented novelty scan 2018–2026 supports positioning; manuscript compiles at 20 pages, 111 bib entries, 0 unresolved citations. Seedocs/LITERATURE_MAP.md. -
Stage C COMPLETE (full-sample raw audit, 7.69B rows): perfect XNYS calendar match (0 missing/0 extra sessions, 0 weekend rows); DST confirmed clean (flat RTH share across calendar months); 100 OHLC violations total (1.3 per 10^8, concentrated 1993–95); 10,128 duplicate keys; 0 zero/negative volume. Daily ticker-day panel built (
data/metadata/daily/, 411 files). 442k split-candidate ticker-days flagged (over-inclusive by design). 81,306 tickers, 221,957 spells (36% of tickers multi-spell → spell = identity unit). Coverage regime change in 2020 (+10,965 entries, OTC expansion) identified as mandatory robustness axis. See DATA_AUDIT.md Stage C section, outputs/diagnostics/stage_c/. -
Stage D COMPLETE (clean panel + universes + splits):
- 6,944 high-confidence split events (4,819 fwd / 2,125 rev), ±1-day exclusion
windows (20,662 ticker-days) —
outputs/diagnostics/stage_d/; - monthly universes with strictly lagged screens (top500/1000/3000 by prior-month
dollar volume; price/density screens; non-common ticker heuristic) —
data/metadata/universe_monthly.parquet(4.44M rows); - clean minute panel
data/processed/minute/year=/month=/(411 files, ~62 GB zstd): raw row total matches manifest EXACTLY (7,686,275,524); 10,128 duplicate rows merged per logged rule; sessions labelled with true XNYS closes (early-close truncation verified on 2025-12-24); flag_ohlc=100, split-window rows=4.30M; dedup verified (2020-03 spot check). RTH = 96.7% of rows.
- 6,944 high-confidence split events (4,819 fwd / 2,125 rev), ±1-day exclusion
windows (20,662 ticker-days) —
-
Stage E COMPLETE (descriptive evidence): 9 JF-style figures (E1–E9, PDF+PNG, all with source CSVs in outputs/figures/data/) + Table I (sample construction by decade) + Table II (summary stats by decade, top-1000). Aggregates in outputs/diagnostics/stage_e/ (411 monthly minute-level aggregate files on the lagged top-1000 universe + Epps curves for 1996/2005/2015/2024). Headline descriptive facts (verified from saved outputs):
- Extreme one-minute returns (|r|>1%) fell ~100× in frequency from the 1990s to the 2010s on the top-1000 universe, with sharp spikes in 2008 and 2020 — the paper's central tension in one figure (figE5).
- The Epps effect has essentially disappeared: mean pairwise 1-minute correlation was ≈0.00 in 1996 (vs 0.16 at 30-min) but ≈0.21–0.30 in 2015/2024 with a nearly flat curve — cross-stock information incorporation is now sub-minute (figE8).
- Intraday |return| and range shifted down decade by decade; volume concentrates increasingly at the close in recent decades (figE3).
- CAVEAT for interpretation: pre-2001 minute returns embed 1/8–1/16 tick bounce; the 1990s "extreme" frequency partly reflects mechanical bid-ask bounce. Robustness planned: midpoint proxy, coarser sampling, range-based measures.
-
Stage F baseline COMPLETE: 1,854,384 real shock events (|z|≥6, isolated) + 1,766,058 matched placebos, 410 months, lagged top-500 universe (outputs/estimates/events/, 410 files). Baseline result (Table IV, figs F1–F3, registry stage_f_baseline.json): average abnormal propagation ≈ 0 — ΔΔbreadth between −1 and −3 ×10⁻⁴ across h∈{1..120} with day-block bootstrap SEs ≈ 1×10⁻⁵…1.5×10⁻⁴; no decade positive; weak insignificant positive gradient for |z|>12. Honest interpretation: isolated idiosyncratic shocks are absorbed. Falsification good news: pre-shock outcomes ≈ post placebo levels (no leakage). Next (protocol-specified): cumulative breadth through h, network-weighted receivers, and the common-shock (simultaneous-extreme) sample as separate object.
-
Stage F2 COMPLETE — the paper's headline mechanism found: neighbor−non-neighbor ΔΔ breadth = +64.0 (SE 1.9) ×10⁻⁴ at h=5 (t≈34), decaying to +49.6 at h=30; tripled across eras (+28 in 1992–99 / +30 in 2000–09 → +81 in 2010s / +90 in 2020s). Market-wide cumulative remains null. Co-jump measure corrected to severe-synchronization (>10% of names): crisis spikes 2008/2020; severity 9.3% (2008) / 6.4% (2020) vs 3.5% calm. Placebo-network falsification passes (−2.7±2.8).
-
Robustness battery (Table VIII): null + network channel stable across post-decimalization, mid-day, ex-announcement windows, calm/crisis, |z|≥8/12, ex-non-common, month-cluster bootstrap. Network diff declines with magnitude (+64→+34) — documented.
-
IRFA submission package (outputs/release/): manuscript_irfa.pdf (elsarticle, 38 pp, 0 unresolved refs, elsarticle-harv bib), highlights.pdf, cover_letter.pdf, online_appendix.pdf, submission_checklist.md. All numbers macro-generated (48 macros). Provenance framed as Finnhub.io-sourced aggregation (user directive).
Key findings (verified)
- Schema uniform:
timestamp(ns, UTC, bar-start), OHLC (USD, unadjusted),volume(shares, integer-valued),ticker. No nulls. - Timestamps are true UTC; DST handled correctly (09:30 ET session start maps to 13:30 UTC in June, 14:30 UTC in December).
- Zero OHLC violations in 58.8M pilot bars; 14 benign duplicate pairs (OTC only).
- No zero-volume bars: missing minute = no trade. Trade-conditional panel.
- Liquid names complete (390 bars/day); sparse tail is huge in 2025 (23k tickers, median 5.5 bars/day — OTC expansion).
- Delisted securities present (only 22–26% of 1992 tickers persist).
- Early-close days handled by data; sessions must be truncated by exchange calendar.
- Unscreened minute-return SD is outlier-dominated (splits/bad prints) ⇒ corporate-action screens are prerequisites for variance-based measures.
Quality control
uv run pytest: 7/7 pass.- Both LaTeX documents compile (TeX Live 2026).
- Figures validated for CVD safety (palette validator) + grayscale line styles.
Unresolved issues / decisions requiring attention
- Data license unspecified on the HF card (Finnhub-sourced). Research use with citation documented; public redistribution of derived data deferred until clarified. (DATA_AUDIT §1)
- Venue scope of bars (consolidated vs single venue) unknown — Stage C probe planned.
- Security-type classification requires an external reference or suffix heuristics.
- Literature map has candidates only; verification pass (DOI-level) still to do.
Next commands
# when download finishes:
PYTHONPATH=src uv run python -m intraday_fragility.cli verify-download
PYTHONPATH=src uv run python -m intraday_fragility.cli audit-raw # fills manifest row counts
# then Stage C full raw audit scripts (04–07)