Research

Index Rebalancing, Market Friction & Implementation Shortfall

A survivorship-free event study of 1,219 1,219 Constituent-change events in the study panel. 02_paper_numbers.md §1 STOXX Europe 600 rebalancing events, showing that the market front-runs the rule-based reconstitution list: +410 +410 95% CI [+290, +552] Pre-announcement run-up (selection-list). Placebo q=1.00; bootstrap CI excludes 0. 02_paper_numbers.md §2 / caar_q2_five_window.csv bps of median run-up accrues before the addition is announced, while the residual left after the announcement is statistical noise. For the passive funds obliged to replicate the list, that friction costs a tracker 2.8 2.8 bps/yr No-reversal bound (s=0.70). 02_paper_numbers.md §6 / q6_turnover_cost.csv 5.1 5.1 bps/yr Full-reversal (s-free) bound. 02_paper_numbers.md §6 / q6_turnover_cost.csv bps a year.

+410 +410 95% CI [+290, +552] Pre-announcement run-up (selection-list). Placebo q=1.00; bootstrap CI excludes 0. 02_paper_numbers.md §2 / caar_q2_five_window.csv bps pre-announcement 1,219 1,219 Constituent-change events in the study panel. 02_paper_numbers.md §1 events 2.8 2.8 bps/yr No-reversal bound (s=0.70). 02_paper_numbers.md §6 / q6_turnover_cost.csv 5.1 5.1 bps/yr Full-reversal (s-free) bound. 02_paper_numbers.md §6 / q6_turnover_cost.csv bps/yr tracker cost

The Second Moment of the Index Effect

A two-sided, correction-battery study of comovement around STOXX Europe 600 reviews. Added stocks' daily beta rises — real at daily frequency, gone under every synchronicity correction, and traced to a +26.2% +26.2% exp(mean Δlog turnover)−1, printed as a MEAN shift; genuine (price-free) turnover rise on additions; n=278 liquidity_results.csv full|scheduled|add|dlog_turnover (recomputed exp()-1, asserted vs manifest section 5.1) · 02_paper_numbers.md 5.1 jump in genuine turnover rather than any change in fundamentals. The one battery-robust window, 2018–21, sits on flat passive AUM and is gone during the fastest passive growth on record. Surviving demotions lose neither comovement nor trading.

289 289 usable scheduled additions (cohort 421), G=46 event_windows.csv usable_c1 scheduled|add · 02_paper_numbers.md section 1 additions 285 285 always quoted as '285 usable (365 survivors / 406 scheduled)' — never '285 survivors' event_windows.csv usable_c1 scheduled|del · 02_paper_numbers.md section 1 usable demotions (365 365 survivors among 406 scheduled deletions gate_0_3c_survivorship.csv scheduled|del · 02_paper_numbers.md section 1 survivors / 406 406 scheduled deletion cohort gate_0_3c_survivorship.csv scheduled|del · 02_paper_numbers.md section 1 scheduled) 46 46 review cycles clustering the headline battery (G=46); the AUM series spans 49 cycles 2014Q1–2026Q1 comovement_results.csv n_cycles · 02_paper_numbers.md section 1 review cycles

Hull-White Model Calibration for ATM Caplets and Caps

dr(t)=(θ(t)ar(t))dt+σdW(t)θ(t)=f(0,t)t+af(0,t)+σ22a(1e2at)\begin{aligned} &dr(t) = \big(\theta(t) - a \cdot r(t)\big)\, dt + \sigma \cdot dW(t) \\[4pt] &\theta(t) = \frac{\partial f(0,t)}{\partial t} + a \cdot f(0,t) + \frac{\sigma^2}{2 a}\left(1 - e^{-2 a t}\right) \end{aligned}

A one-factor Hull-White model calibrated to a USD ATM caplet strip. Correctly targeted, it prices the book to 1.4 vol pts 1.4 vol pts mean absolute model-vs-market implied-vol gap at the recalibrated optimum export_web_json.py stage 4 of implied volatility — but the accuracy is partly bought by a free r(0) tilting the discount curve, and pinned to the curve the model cannot produce the rising normal-volatility term structure the market implies. The miss is structural, and it prices σ(t) or a second factor.

1.4 vol pts 1.4 vol pts mean absolute model-vs-market implied-vol gap at the recalibrated optimum export_web_json.py stage 4 implied-vol error, r(0) free 11.6 vol pts 11.6 vol pts IV MAE under the pinned-r0 restriction export_web_json.py stage 4 the miss, r(0) pinned 118 118 caplets entering the corrected calibration (row 0 has no preceding discount, matching the archived Black loop) export_web_json.py stage 3 caplets priced

Earlier research

As a paid Research Assistant I built the empirical plumbing for a political-economy working paper: BERTopic modelling over ~50 years of U.S. congressional-hearing transcripts (embedding pretraining, UMAP, HDBSCAN, c-TF-IDF), sentiment-trend anomaly detection, and a UK budget-shock event study addressing omitted-variable bias. The methods and pipeline are mine to discuss; the findings belong to the PI's forthcoming paper.