# WP7 — The Options-Implied Information Content for Cross-Asset Return and Volatility Prediction **Evidence from 3.8 Billion Option Contracts** *UQO Working Paper No. 7* [![Author](https://img.shields.io/badge/author-Simon--Pierre_Boucher-1f6feb?style=flat-square)](mailto:contact@spboucher.ai) [![Contact](https://img.shields.io/badge/contact-contact%40spboucher.ai-brightgreen?style=flat-square&logo=maildotru&logoColor=white)](mailto:contact@spboucher.ai) [![Institution](https://img.shields.io/badge/UQO-Sciences_administratives-00457c?style=flat-square)](https://uqo.ca) [![Paper](https://img.shields.io/badge/paper-29_pages-b31b1b?style=flat-square&logo=latex&logoColor=white)](paper/main.pdf) [![Build](https://img.shields.io/badge/latexmk-passing-success?style=flat-square)](paper/main.tex) [![References](https://img.shields.io/badge/references-45_(BibTeX)-8250df?style=flat-square)](paper/references.bib) [![Python](https://img.shields.io/badge/python-3.11%2B-3776ab?style=flat-square&logo=python&logoColor=white)](requirements.txt) [![Reproduction](https://img.shields.io/badge/reproduction-verified_(28%2F28_files)-success?style=flat-square)](AUDIT.md) [![Results](https://img.shields.io/badge/results-41_CSV_tables-informational?style=flat-square)](results/) **Key findings** ![Contracts](https://img.shields.io/badge/option_contracts-3.83_B-0b3d91?style=for-the-badge) ![Sample](https://img.shields.io/badge/panel-264%2C383_ticker--days_·_69_tickers_·_2010--2025-0b3d91?style=for-the-badge) ![Sharpe](https://img.shields.io/badge/kurtosis_L%2FS_Sharpe-2.33_(t%3D19.8)-success?style=for-the-badge) ![RV](https://img.shields.io/badge/HAR%2BIV_ΔR²_(1d_RV)-%2B23.3%25-success?style=for-the-badge) ![Granger](https://img.shields.io/badge/IV_→_RV_Granger-100%25_of_tickers_(F%3D62.4)-success?style=for-the-badge) ![FEVD](https://img.shields.io/badge/RV_FEVD_by_IV_shocks_@20d-73.8%25-success?style=for-the-badge) ![Placebo](https://img.shields.io/badge/placebo_R²-0.0008_vs_actual_0.053-blueviolet?style=for-the-badge)
--- ## About Five research questions on the information content of equity option markets, answered with 3.83 billion option contracts (11,077 underlyings, 2010–2025) merged with 11.5 billion intraday OHLCV observations: | RQ | Question | Headline result | |---|---|---| | **RQ1** | Do implied moments predict cross-sectional returns? | Weekly yes (R² 4.8–19.3%), daily no; kurtosis L/S Sharpe **2.33** | | **RQ2** | IV surface vs GARCH/HAR-RV for RV forecasting? | HAR+IV improves 1-day R² by **+23.3%**, robust in all 9 subperiods | | **RQ3** | Implied−realized correlation → market stress? | Correlation ratio predicts stress at 5–20d ($t$: 3.91–8.30) | | **RQ4** | Greeks decay by DTE; max-OI "price magnets"? | Info rises with DTE; magnet hypothesis **rejected** (47.0% < 50%) | | **RQ5** | ML on the SPX surface vs the VIX? | HAR-RV beats RF/GBM and VIX OOS; 2w ATM IV = 50.8% of importance | ## Author **Simon-Pierre Boucher** · Département des sciences administratives, Université du Québec en Outaouais (UQO) · 📧 [contact@spboucher.ai](mailto:contact@spboucher.ai) ## Repository layout ``` wp7_uqo/ ├── README.md this file ├── AUDIT.md pre-restructuring audit + reproducibility map + flags ├── CHANGES.md everything that was moved, renamed, refactored, rewritten ├── requirements.txt pinned Python dependencies ├── pyproject.toml optional `pip install -e .` of the wp7 package ├── Makefile make pipeline | figures | paper | all ├── data/ │ ├── raw/ external DuckDB stores (not shipped — see data/raw/README.md) │ └── processed/ 5 derived parquets (authoritative surviving data) ├── src/wp7/ analysis library (config, data_io, econometrics, │ forecasting, portfolio) ├── scripts/ numbered entry points 01–13 (see below) ├── results/ 41 CSV result tables (all paper tables derive from these) ├── figures/ supplementary figures (the paper itself is tables-only) ├── paper/ LaTeX source: main.tex + preamble.tex + sections/ + │ appendix/ + references.bib → main.pdf (29 pp.) ├── _verify/ reproduction evidence: rerun logs + CSV comparator └── _old/ local byte-for-byte backup of the original (untracked) ``` ## Setup ```bash python3 -m pip install -r requirements.txt ``` No installation of the `wp7` package is required — every script bootstraps `src/` onto its path. (Optional: `pip install -e .`) ## Reproducing the results ```bash make pipeline # runs scripts 02–13 (skips raw-dependent steps gracefully) make figures # supplementary figures from the result CSVs make paper # compiles paper/main.pdf with latexmk + bibtex ``` The pipeline entry points, in execution order: | Script | Question | Needs raw stores? | |---|---|---| | `01_extract_data.py` | raw → processed parquets | **yes (entirely)** | | `02_rq1_return_predictability.py` | RQ1 panel + Fama-MacBeth | no | | `03_rq2_rv_forecasting.py` | RQ2 HAR-RV vs IV surface | no | | `04_rq3_correlation_divergence.py` | RQ3 correlation divergence | stage 1 only | | `05_rq4_greeks_decay_magnets.py` | RQ4 Greeks decay + magnets | part A; part B has a parquet fallback | | `06_rq5_ml_rv_forecast.py` | RQ5 ML vs VIX | **yes (entirely)** | | `07_descriptive_stats.py` | descriptive panels A–H | panels F, H only | | `08_subperiod_regime.py` | subperiods, regimes, rolling R² | section B only | | `09_portfolio_sorts.py` | portfolio sorts + double sorts | no | | `10_robustness.py` | NW / clustered SE / quantile / ticker R² | section E only | | `11_granger_var.py` | Granger, VAR, IRF, FEVD | no | | `12_make_figures.py` | supplementary figures | no | | `13_extended_robustness.py` | winsorization/NW-lag sensitivity, Spearman ICs, decile sorts, leave-one-year-out, placebo | no | The raw DuckDB stores no longer exist on this machine (see `AUDIT.md` §6.1); raw-dependent steps detect their absence and skip themselves. Every table in the paper is nonetheless backed by a shipped CSV in `results/`. **Reproduction status (2026-08-05):** all 28 regenerable result files were re-run and compared against the originals — 10 byte-identical, 15 equal to floating-point noise, 1 explained deviation (collinearity-degenerate t-statistics, RQ3), and 2 files newly regenerated that were missing from the original archive. Full details in `AUDIT.md` §7 and `CHANGES.md`. ## Configuration | Environment variable | Purpose | Default | |---|---|---| | `WP7_RAW_DATA_DIR` | location of the raw DuckDB stores | `data/raw/` | | `WP7_RESULTS_DIR` | where scripts write result CSVs | `results/` | ## Paper `paper/main.tex` (metadata + skeleton) → `preamble.tex`, one file per section under `sections/`, appendix under `appendix/`, BibTeX bibliography in `references.bib` (45 entries, all cited). Revision 1.1 adds four robustness subsections (estimator sensitivity, rank-based information coefficients, decile sorts, temporal stability + placebo) backed by `scripts/13_extended_robustness.py`. Build: `make paper` or `cd paper && latexmk`. ---
© 2026 Simon-Pierre Boucher · contact@spboucher.ai · Université du Québec en Outaouais