Replication kit · Open audit trail
Every number on this site is reproducible from one canonical data.json. Returns data pulled from yfinance on the dates listed in the kit; benchmark factors from the Kenneth French Data Library; ownership from EDGAR 13F filings. Cross-platform diff supplied via expected_results.json with published tolerances.
Code repos: Python (canonical) + R + Stata cross-checks. SHA-256 manifest in the kit. EDGAR accessions pinned. EDGAR REST API docs; French Data Library.
Open replication · source files · expected-output checks
Bottom line. We ship the data, the code, and a one-button script. Run it on your laptop in about a minute: 72 of 72 numerical claims reproduce exactly in the canonical Python pipeline. Equivalent R and Stata scripts ship with the kit; the R eventstudies path and the Stata path are being independently verified against the same tolerance bands documented below (point estimates ±0.5pp, p-values ±0.05, R² ±0.01, donor weights ±5pp). The standard for publication: a number must reproduce in Python and at least one of the cross-check paths within tolerance.
Every numerical result on this site is reproducible in the canonical Python pipeline; equivalent R and Stata scripts ship with the kit and are being independently verified against the tolerance bands below. If a number cannot be reproduced in Python and at least one cross-check path within these bands, it does not ship to a public page.
Plain-English guide to every file on this page. Each download is a small text or data file (under 500 KB except for the article PDF). The kit reproduces every empirical claim in the article in any one of three statistical packages within published tolerance bands.
pip install pandas numpy statsmodels scipy, then python event_study.pyjsonlite package, then run Rscript event_study.Rdo event_study.doresults.json and prints a tolerance-based diff against the reference answers. If you see zero out-of-tolerance flags, you have reproduced the article's empirical results.The prices in the price-data CSV come from S&P Capital IQ's IQ_CLOSEPRICE_ADJ feed. If you have WRDS access, CRSP is the academic gold-standard cross-check. If you want to derive the data from scratch — for instance, to verify against a different vendor or to extend the window — the dedicated data-derivation guide below contains:
GDSHE function payload)IQ_CLOSEPRICE_ADJ feed, 712 trading days, June 2023 → April 2026.xom_rerun_results.json on 2026-05-16. Sum to 1.000000000 at nine-decimal precision; 11 of 20 donor firms receive nonzero weight.SEC EDGAR — ExxonMobil filings
Daily closes, donor weights, expected results, and the Python / R / Stata scripts download directly from this page. The README walks through installation, expected output, and tolerance-based diff checking. Questions, corrections, or substantive discrepancies are welcome — please email Shane Goodwin (sgoodwin@smu.edu) at SMU Cox / SMU Dedman.