‹ Selected work

Quantitative research · 2026

Point-in-Time Equity Drawdown Risk

Can a model rank the risk of a severe 15% drawdown over the next 40 trading days using only information available at each prediction date?

Rank drawdown risk without looking into the future

Rapid price gains sometimes end in severe drawdowns, but not every stock is equally exposed. The task was to rank that risk using only data available on the prediction date, while avoiding survivorship bias.

Build and freeze a point-in-time research pipeline

  • Reconstructed historical index membership and corporate actions.
  • Aligned prices and SEC fundamentals to when they were actually available.
  • Used walk-forward evaluation so every prediction came from earlier training data.
  • Froze the model before transferring it unchanged to the S&P 400.

The risk ordering held out of time

On 91,299 S&P 500 observations, the highest-risk decile had a 26.28% event rate versus 7.44% in the lowest-risk decile. The frozen model then transferred to 85,587 S&P 400 observations.

Replication summary

S&P 500 ROC AUC
0.671
Risk-decile ratio
3.53×
S&P 400 ROC AUC
0.654
Positive annual rank IC
7 / 7 years

[PASS] Frozen-model transfer criteria met

Realized 40-day drawdown event rates increasing across predicted-risk deciles in the S&P 500 and S&P 400
Risk-decile separation in both test universes · open full size ›
Positive mean daily rank information coefficient in every out-of-time year for the S&P 500 and S&P 400
Annual out-of-time ranking stability · open full size ›

Drawdown risk was rankable; reliable alpha was not established

The model consistently separated lower- from higher-risk stocks, but the study did not establish reliable alpha. I also added monitoring and 84 automated tests so the pipeline can be rerun and checked.

Pythonpandasscikit-learnSEC fundamentals84 tests