SPB Git

spb/wp7_uqo

Public

UQO Working Paper No. 7 — Options-implied information for cross-asset return and volatility prediction: evidence from 3.8B option contracts.

page 1
  1. Wed, Nov 4, 2026 13

    1. Stage G: final build of the revised manuscript (87 pages)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file
    2. Stage F NB-01..12
      …
      Verifier non-blocking items of peer_reviews/WP-07/verification_signoff.md.
      NB-1 Clark-West critical-value label 10% -> 5% (sec 1, sec 5.2, tab_rq2_cw
      note; counts unchanged through macros). NB-2 Holm qualifier 'next-day' in
      abstract and conclusion. NB-3 Table 1 / Table B.2 count only underlyings with
      lake rows (Stocks 49, all found 69); notes fixed in tables_e.py, scripts/25
      and the CSV note column. NB-4 \cref{eq:implcorr} in tab_rq3_diag and
      tab_cap_weighted notes. NB-5 pdfauthor blanked in main_anon.tex. NB-6 eq:har
      referenced. NB-7 Fig. 2 'better' markers as triangles. NB-8 \citep for
      Driscoll-Kraay in tab_robust_se_v2. NB-9 p-value macros of rq3_headline never
      print 0.00 (0.0046 -> 0.005). NB-10 version-1.1/1.2 comparisons moved verbatim
      from the main text into Appendix F 'Note on Earlier Versions'. NB-11 Stage H
      only. NB-12 DAS block on the gitignored lake-derived v2 inputs with the fdq
      query logs referenced (scripts/24 string and fragment identical; scripts/24
      and 25 not re-run, they query the lake).
      
      Build: main.pdf and main_anon.pdf 87 pages, 0 errors, 0 undefined, 0 oversized
      floats, overfull boxes unchanged (<= 4.51 pt). make tables + scripts/31
      regenerate every fragment byte-identical except the ones listed above.
      make test: 42/42 result files identical, ALL CHECKS PASSED.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 31 files +61 −39
  2. Tue, Nov 3, 2026 13

    1. N-C1x, N-A3, N-D1x, L1-F2 (WP07-ECON-19, EDIT-14, DATA-05, ECON-04, DATA-12): dividend-inclusive returns, cap-weighted implied correlation, lake magnet panel, inline numbers, batch-N tables
      …
      - scripts/26 (784 statements): split+dividend 1-day total returns for 48
        stocks (BRK_B absent); total vs 5-minute simple return +0.73 bps/day on
        187,911 stock-days (corr 0.88); ATM IV h=5 Sharpe log 0.54 / simple 0.89 /
        total 0.84, net SR 10 bps 0.34 / 0.69 / 0.64 -> calendar_time_total_return.csv.
      - scripts/28 (464 statements + 29 fundamentals calls): capitalization weights
        (GOOGL shares for GOOG; 9.5% of constituent-days back-filled before 2012);
        cap-weighted implied correlation is degenerate (38.7% of days clipped at 0,
        mean 0.098 vs 0.246, largest weight 35%): headline cell t 0.01/-0.01/-0.21
        (log) vs 1.53/2.48/1.81 equal-weight -> rq3_cap_weighted*.csv.
      - scripts/27 (651 statements): lake magnet panel, 27,139 ticker-days, ten
        underlyings, exact sides; observed 46.6% vs null 46.8% [46.3, 47.3], p 0.53;
        shipped rows NOT reproduced (108/10,480 within 1e-6; vintage differs).
      - findata.py: missing symbol-year partitions return empty results.
      - scripts/31: 325 inline numbers -> results/inline_numbers.json, paper/macros.tex;
        tables_e: tab_total_return, tab_cap_weighted, tab_magnet_lake, tab_rq4_v2,
        tab_rq5_v2 (+ Panel C), tab_records_used.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 14 files +2,613 −3
    2. N-D3, N-D2 (WP07-DATA-04, EDIT-16, ECON-15, THEO-11, DATA-02, ADVE-06, EDIT-05, ECON-14, THEO-17): RQ4-A and RQ5 re-estimated from the FinData OS lake
      …
      - scripts/29 (640 statements, 9 min): Greeks by DTE for ten underlyings;
        frozen six-Greek HC1 R2 reproduced within 0.02 in 12/12 cells (max diff
        0.018, lake vintage); reduced design {avg IV, call/put gamma-OI} + ticker
        FE + date-clustered SE, condition numbers 2.8-3.4 -> rq4_greeks_decay_v2.csv,
        rq4_greeks_decay_compare.csv, tab_rq4_v2.
      - scripts/06 --lake (80 statements, 10 min, seeds 0-9): v1.1 specification
        reproduces the frozen rows within 0.03 (VIX 0.3355, HAR 0.4373 vs 0.4366,
        RF 0.146 vs 0.143, GBM 0.103 vs 0.095); rolling annual re-estimation
        2016-2025 with 2018-2019 validation: R2_OOS VIX 0.347, HAR 0.158, HAR+surface
        0.135, RF 0.155 [0.153, 0.156], GBM 0.151; no tree learner beats HAR
        (DM -0.45 / -0.74) -> rq5_model_comparison_v2.csv, rq5_feature_importance_v2
        (seed dispersion), rq5_v11_replication.csv, rq5_validation_grid.csv.
      - scripts/32: the HAR < VIX ordering in the rolling design comes from clipping
        the test-year regressors at training quantiles (2020: HAR R2 0.058 clipped vs
        0.449 unclipped); unclipped HAR 0.465 vs VIX 0.347 (DM 1.28, n.s.); the IV
        surface model stays below HAR under every rule -> rq5_clipping_variant.csv,
        Panel C of tab_rq5_v2.
      - Lake scripts cast API scalars to numeric; raw extractions saved before processing.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 17 files +582 −2
    3. Batch N drivers: lake mode for scripts/06 (N-D2), Greeks guards, per-year split_div statements; tab_mht positive-only counts
      …
      - scripts/06 --lake: SPX surface per quarter (64 statements), SPX 5-minute RV
        per year (16), VIX from scripts/19; v1.1 replication (RV_{t-1}, 2020 split,
        seed 42) vs frozen rows; rolling annual re-estimation 2016-2025 with a
        2018-2019 validation block, seeds 0-9, DM/CW vs HAR and VIX, bootstrap CI.
      - Corrupted vendor Greeks (|gamma| >= 1e3, |vega|,|theta| >= 1e5) excluded
        from the lake aggregates (scripts 06, 29): they overflowed the server-side
        sums for SPX 2025q2/2025q4 (internal error).
      - scripts/26: one statement per symbol-year (the split_div view does not bind
        a year range).
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 5 files +426 −15
    4. L1-E1, N-H1, L1-F2 (WP07-ADVE-07, ECON-09, THEO-16, ADVE-15, EDIT-17, DATA-11, DATA-12): multiple-testing families, option records used, README, E/N tables
      …
      - scripts/18: Holm/BH/Romano-Wolf (date block bootstrap B=2000) over the RQ1
        pooled family (80 tests) and FM family (40), the 14 calendar-time strategies
        gross/net (RW + deflated Sharpe, 14 trials), the RQ3 headline family and the
        DM/CW families (Holm counts) -> mht_adjusted.csv, mht_summary.csv.
      - scripts/25 (N-H1): 1,104 read-only count statements: 275,448,124 option
        records enter the 69-name panel (434,957,531 records for the 68 underlyings
        found; BRK_B absent) vs 4.23 B rows in the lake -> data_records_used*.csv.
      - scripts/tables_e.py: tab_mht, tab_vix_regime_v2, tab_coverage,
        tab_reduced_model, tab_lagged_features, tab_records_used (+ batch-N tables
        when their CSVs exist); scripts/31 inline numbers + macros; README: revision
        script table, environment, data checksums, licence, records used.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 15 files +2,511 −5
    5. L1-E7, L1-E8, L1-E9 (WP07-ECON-08, ECON-13, THEO-10, EDIT-15, ECON-12): robust Granger, VAR stationarity and bootstrap bands, exact quantile regression
      …
      - econometrics: granger_test_robust (HAC Wald), var_companion_eigenvalues,
        var_residual_bootstrap (append-only). scripts/11 --legacy byte-identical;
        default: 12 pairs x {F, HAC Wald} x {levels, logs} rejection shares
        (ATM IV -> RV 100% under F and HAC levels, 98.6% logs; RV -> IV 60.9% -> 31.9%),
        universe 68 tickers (>= 1,000 obs), ADF/KPSS, companion eigenvalues (max
        0.99), residual bootstrap B=500 90% bands, log VAR variant; 20-day FEVD
        share of RV due to IV: levels 18.8% [IQR 16.1, 21.1] RV-first / 27.8% IV-first
        (v1.2: 20.2 / 28.5 on 20 tickers). scripts/12 fig_irf_bands.
      - scripts/22: statsmodels QuantReg (converged) with 22-day date-block
        bootstrap B=200: iv_atm_30d tau=0.10 -176.3 bps [-195.4, -144.0], tau=0.90
        +180.4 [164.3, 195.5]; IRLS vs exact max |diff| 3.6 bps.
      - Incident: the first background run of scripts/11 was killed at ~22:50 ET by
        an external pkill (exit 144); re-run to completion (exit 0), outputs complete.
      - scripts/tables_ts.py -> tab_granger_v2, tab_fevd_v2, tab_quantile_v2.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 18 files +9,586 −20
    6. N-E5 consumption, L1-E4, L1-F2 (WP07-DATA-07, ADVE-13, EDIT-09, ADVE-17, ECON-18, ECON-16, DATA-11, DATA-12): complete VIX in scripts 07/08, intervals and MDEs, make test
      …
      - data_io.load_vix_daily(complete=True) prefers vix_daily.parquet (4,028
        sessions): 264,383/264,383 ticker-days matched (was 250,243; the 14,140
        2010-2012 rows are recovered); regime N sums to 119,081 and the '% of panel'
        base is the 264,383 ticker-days (descriptive_vix_regimes_v2, regime_results_v2);
        scripts 07/08 --legacy byte-identical (complete=False).
      - scripts/30: DK(4) intervals and MDEs for the skew coefficients, Lo (2002)
        Sharpe intervals, stationary-bootstrap loss-ratio intervals per ticker
        (rq2_loss_ratio_ci.csv), RQ3 episode-bootstrap intervals, magnet interval and
        MDE (1.95 pp), minimum detectable R2 of the frozen Greeks regressions ->
        intervals_mde.csv, tab_intervals.tex.
      - Makefile: test (legacy regeneration + compare + unit checks), revision,
        tables targets; thread-limited ENV; requirements: statsmodels 0.14.6,
        arch 8.0.0, python_requires >=3.11,<3.15.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 12 files +435 −26
    7. L1-C1, L1-C2, L1-C3, L1-C4, L1-C5, L1-E2 (WP07-EDIT-03, ECON-19, THEO-06, ADVE-08, EDIT-07, EDIT-04, EDIT-06, THEO-01, ECON-02, ECON-06, ADVE-12, EDIT-21, ECON-11, THEO-05, EDIT-12, ADVE-10): RQ1 simple returns, net t, FF5+MOM alphas, skew identification, DK/CI/spec curve, circular-shift placebo
      …
      - data_io: ret_1d_simple/ret_5d_simple (expm1), load_daily_returns_wide(simple=).
      - scripts/09, 13 default on simple returns (*_v2.csv, calendar_time_series.parquet
        gitignored, calendar_time_basis_comparison.csv); --legacy byte-identical.
        ATM IV h=5 log -> simple: ann. return 13.59 -> 22.40%, Sharpe 0.54 -> 0.89,
        net t 10 bps 1.38 -> 2.80, 25 bps 0.16 -> 1.58 (Jensen term largest in the
        high-IV long leg, so the simple basis raises, not lowers, this strategy).
      - scripts/15: FF5+MOM alphas NW(5) (Ken French files sha256-verified, not
        committed): only ATM IV h=5 keeps a net-10-bps alpha with |t|>1.96 (10.10%/yr,
        t 2.16); top-5 names = 89.5% of its gross return (TSLA, NFLX, NVDA, AMD, CRM).
      - scripts/16: four skew measures, daily orthogonalization on the IV level:
        skew25 DK(4) t 2.34 -> -0.82 (all) / -1.12 (stocks) after orthogonalization,
        both normalizations negative -> sign of the skew effect not identified.
      - scripts/10, 02, 13 default: DK(4)/DK(22) t and CIs (anchors 2.34/2.30/2.35,
        3.62, stocks 2.01, no-winsor DC 1.29 / DK4 0.83, IC NW(4) t 2.19), FM NW
        variants + CI, joint Wald (DC p 0.031, DK4 p 0.435 for the 5-day All model),
        skew25 at every winsorization cutoff; scripts/17: 400-spec curve (share
        |t|>1.96 = 50.0%, >3.02 = 18.5%; DK4 45%/0%), figures/fig_spec_curve.pdf.
      - scripts/13 placebo circular shift (100 draws): null R2 0.056/0.076/0.102/0.306%
        (all/stocks/ETFs/indices; anchors 0.054/0.074/0.108/0.276).
      - scripts/tables_rq1.py -> 14 new fragments (tab_sorts_v2 ... tab_spec_curve).
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 47 files +5,343 −55
    8. L1-E3, L1-E12, L1-F1 (WP07-ADVE-11, LITE-08, ECON-17, THEO-15, THEO-14, DATA-03, DATA-09, EDIT-08): coverage, reduced model, lagged features, data inventory and checksums; lake client
      …
      - scripts/21: complete-predictor coverage by ticker x year and missing feature
        (119,081 vs 119,093 reconciled: 12 rows complete for RQ2 only), 40.0% of
        days with <10 complete stocks (ADVE-11 anchor), reduced six-predictor model
        on 226,342 rows (5-day skew25 t HC1/DC/DK4 = 9.21/2.31/1.47), option
        features lagged one day for the 1-day index/ETF regressions.
      - scripts/24: md5/sha256 of the five parquets (data_checksums.csv), Table 1
        corrected (Panel B sums to 1,761 M, not ~11,500; options 3,832 M) with the
        FinData OS lake inventory of 2026-11-04 as a second column (tab_data_v2),
        DCAS-style data availability statement fragment (app_data_statement.tex).
      - src/wp7/findata.py: read-only fdq sql client with query log and name maps;
        scripts/25-27: batch N drivers (records used, total returns, exact magnet panel).
      - scripts/05: magnet_null_exact() for the lake panel.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 15 files +1,993 −1
    9. L1-B1, L1-B2, L1-B3, L1-E6, HV-B4 (WP07-ADVE-02, DATA-06, ECON-01, EDIT-02, THEO-07, ADVE-03, EDIT-13, THEO-12, THEO-08, ADVE-04, ECON-07, ECON-10, EDIT-11, THEO-02, ECON-05, DATA-08): RQ2 training-window winsorization, all tickers, CW/GW/MCS/panel DM, subperiod OOS
      …
      - scripts/03: per-window 1%/99% clipping on the 500 training rows (test target
        unclipped), universe = config.oos_universe (67 tickers, 616-3,676 rows),
        RQ2_MODELS_V2, ticker FE within-R2, stacked forecasts (parquet, gitignored),
        CW, GW, MCS (B=1000), panel DM, Holm counts, Campbell-Thompson R2_OOS;
        --legacy/--legacy-winsor reproduce rq2_insample/oos_results/diebold_mariano
        byte-for-byte. Anchors: ECON-01 legacy-30 1-day MSE ratio 0.999, DM 2/7,
        QLIKE 1.362, 0/15 (exact); ECON-07 Holm 6/30, 4/30, 4/30, 3/30 (exact);
        ADVE-03 within-R2 0.328->0.371 (+13.0%). All 67 tickers: 1-day MSE ratio
        1.001 (DM 6 better/19 worse, panel t -0.94), QLIKE 1.284 (0/38, panel t -6.49).
      - scripts/08 --legacy byte-identical; default writes *_v2 with adj R2 and
        DK(4) Wald of the IV slopes; scripts/20: LOYO/subperiod OOS loss ratios,
        RV window robustness (E6: changes < 0.001). scripts/23: nested-null Monte
        Carlo (DM_QLIKE < -1.96 in 99% under the null; CW size 0%).
      - scripts/tables_rq2.py -> tab_rq2_insample_v2, tab_rq2_oos_v2, tab_app_dm_v2,
        tab_subperiod_v2, tab_loyo_v2, tab_rq2_rv_windows, tab_rq2_null_mc.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 31 files +5,662 −14
    10. L1-D1, L1-D2a (WP07-EDIT-01, ECON-04, THEO-04, DATA-05, DATA-02, DATA-04, ADVE-06, EDIT-05, EDIT-16, ECON-14, ECON-15, THEO-11, THEO-17, ADVE-14): magnet permutation null; frozen RQ4-A/RQ5 relabelled
      …
      - scripts/05 magnet_null(): strike side recovered from (dist_open, dist_close,
        open-to-close move) [83.8% identified, 8.9% ambiguous], permutation null
        re-pairing days with other days' moves within ticker (B=1000, seed 42),
        by OI quintile and distance bucket, date-clustered SE, MDE, mirror placebo
        -> rq4_price_magnet_v2.csv; --legacy reproduces rq4_price_magnet.csv.
        Pooled: observed 47.0% vs null 46.5% [45.6, 47.3], +0.57 pp, p=0.20;
        distance-bucket observed shares 21/37/49/49/51% (ECON-04).
      - Frozen CSVs (rq4_greeks_decay, rq5_model_comparison, rq5_feature_importance)
        gain code_version='c54a8e2 (2026-08-05, v1.1 code ...)' and
        status='frozen-unverified' (columns appended textually, digits unchanged);
        withdrawn 5-/22-day and degenerate OLS rows purged from rq5_model_comparison
        (full copy kept in results/_pre-revision-20261017/).
      - scripts/tables_rq4.py -> tab_magnet_v2, tab_rq5_frozen, tab_rq4_frozen,
        tab_app_importance_frozen (notes: eight stocks, RV_{t-1}, frozen status).
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 10 files +396 −58
    11. L1-A1, L1-A2 (WP07-DATA-01, ADVE-09, THEO-09, DATA-10, ADVE-01, THEO-03, EDIT-10, ECON-03, LITE-03): RQ3 rebuilt 2010-2025, post-origin stress grid
      …
      - scripts/04: stage 1b build_from_parquets() (29 names, NaN-tolerant realized
        correlation, n_constituents>=20, complete VIX) -> correlation_divergence_v2.parquet
        (regenerable, not committed) + rq3_diagnostics.csv; --legacy reproduces
        rq3_stress_prediction.csv and rq3_crisis_analysis.csv byte-for-byte.
      - stress_regressions_v2: series{shipped, rebuilt30, v2} x sample x definition
        {S1 shipped, S2 post-origin, S3 realized} x transform{raw, log, winsor1, rank}
        x spec{A-D} x controls{baseline, extended} x onset x estimator{LPM NW(h),
        logit HAC(h)} -> rq3_stress_prediction_v2.csv (30,240 rows); nine headline
        tests with episode block bootstrap (B=1000), Holm and Romano-Wolf ->
        rq3_headline.csv, rq3_bootstrap.csv; crisis windows on both samples.
      - Anchors reproduced exactly: legacy 3.27/4.13/2.33 (5.22/7.39/4.68 pp);
        DATA-01 3.03/3.31/2.03; ADVE-01 1.87/2.64/1.41; ECON-03 rank 1.87/1.90/1.19,
        log 2.80/3.03/1.67. Headline (2010-2025, S2, log, extended): t 1.55/2.50/1.73,
        Holm p 0.49/0.10/0.42, RW p 0.67/0.37/0.62, bootstrap CIs include zero.
      - scripts/tables_rq3.py -> tab_rq3_v2, tab_rq3_headline, tab_app_crises_v2, tab_rq3_diag.
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 12 files +32,009 −18
    12. L1-LIB: shared LaTeX table helpers (src/wp7/tables.py); gitignore regenerable parquets
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 2 files +90
    13. Stage D L0-BASE, L1-LIB, N-E5: baseline gate, inference library, complete VIX series
      …
      - L0-BASE: make pipeline re-run into _verify/ (gitignored); 38/42 result CSVs
        byte-identical to HEAD 3e1fc1c, 4 raw-only CSVs frozen, 28/28 table
        fragments byte-identical (log: reproducibility/WP-07/logs/L0_baseline_pipeline.log);
        docs/verify/compare_results.py path fix (parents[2], argv overrides).
      - L1-LIB: econometrics.driscoll_kraay_{cov,tstats}, wald_joint, lo_sharpe_se;
        new multiple_testing.py (holm, bh, block bootstrap by date, Romano-Wolf
        step-down, deflated Sharpe) and forecast_inference.py (DM, Clark-West,
        Giacomini-White, MCS T_max, panel DM, Holm counts); tests/test_inference.py
        reproduces WP07-ECON-02/ECON-06 anchors DK(0/4/10/22)=3.62/2.34/2.30/2.35.
      - N-E5 (WP07-DATA-07, WP07-ADVE-13, WP07-EDIT-09): scripts/19_fetch_vix_daily.py,
        16 read-only fdq sql statements -> data/processed/vix_daily.parquet
        (4,028 sessions, not committed) + results/vix_daily_coverage.csv.
      - config.py: SPX_CONSTITUENTS_V2, RQ2_MODELS_V2, oos_universe() (additions only).
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 9 files +689 −3
  3. Sat, Oct 17, 2026 5

    1. révision scientifique complète (editorial board, 2026-10-17)
      …
      - Correction de l'alignement des cibles multi-jours (ret_5d / rv_fwd_5d étaient des fenêtres
        rétrospectives) ; tous les résultats hebdomadaires recalculés, résultats v1.1 rétractés
      - Inférence des tris (Newey-West), double tri par portefeuilles, stratégies calendar-time avec
        turnover mesuré et coûts ; RQ2 sur échantillon commun, sans colinéarité, DM sur 30 titres ;
        RQ3 sans design singulier (NW(h)) ; FEVD Cholesky (deux ordres)
      - Tables du papier générées (scripts/14) ; bibliographie 45 -> 97 références vérifiées (Crossref)
      - Sections réécrites, v1.2 October 2026, main_anon recompilé ; docs/REVIEW-REPORT.md et
        docs/CHANGELOG-REVISION.md ; CSV v1.1 conservés dans results/_pre-revision-20261017/
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 158 files +14,374 −2,607
    2. PDF de référence avant révision scientifique
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 1 file
    3. version anonyme pour soumission en revue (main_anon.tex, titlepage_anon.tex)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 3 files +135
    4. Simon-Pierre Boucher · 1 file −3
    5. harmonisation standard UQO WP (2026-10-17)
      …
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 52 files +122 −165
  4. Wed, Aug 5, 2026 2

    1. README: badge header with key metrics and author block
      …
      Shields.io badges for author/contact, paper build, references,
      reproduction status, and headline findings (Sharpe 2.33, +23.3% RV R²,
      100% Granger, 73.8% FEVD, placebo collapse), plus an RQ summary table.
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      simon-pierre boucher · 1 file +57 −9
    2. WP7: restructured repository, verified reproduction, paper revision 1.1
      …
      Restructure of hf-wp7-spb20260519 (original preserved locally in _old/,
      untracked): analysis library src/wp7, numbered pipeline scripts 01-13,
      processed data, 41 result tables, supplementary figures, and the LaTeX
      working paper (main + preamble + sections + BibTeX, 29 pp., builds clean).
      
      - Reproduction verified against the original archive: 10 files
        byte-identical, 15 equal to FP noise, 1 explained deviation (RQ3
        collinearity), 2 missing files regenerated (see AUDIT.md).
      - Revision 1.1 adds extended robustness analyses (winsorization/NW-lag
        sensitivity, Spearman ICs, decile sorts, leave-one-year-out, placebo)
        and 8 references (see CHANGES.md).
      - data/processed/ is the sole surviving copy of the derived data; the
        raw DuckDB stores no longer exist (AUDIT.md 6.1).
      
      Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
      simon-pierre boucher · 140 files +10,223
Menu

Theme