COVID-19 crash, day by day: 14 Jan to 23 Mar 2020

The fastest, deepest single event in the dataset: the Sensex fell roughly 38% in five weeks. Scrub through it, then look at what the ML models really did with it, including where they failed.

Sensex, reconstructed daily close

−38% peak to trough
14 Jan 2020—23 Mar 2020
Index level—
Drawdown from 14 Jan peak—

Concentrated vs. diversified, same crash

Both start with ₹1,00,000 on 14 Jan 2020, 60% equity / 20% gold / 20% cash. The only difference is what the equity sleeve looks like.

Concentrated · Realty/Auto tilt

—

Diversified multi-sector

—

The sector tilt is an illustrative simplification layered on the same reconstructed index, not independently-sourced per-sector data. The direction (concentrated cyclical sectors fall harder in a liquidity-driven crash) matches well-documented 2020 sector performance.

Where the model was wrong: the actual numbers.

Copied verbatim from this project's own evaluation run (models/*_IDX_BSESN_covid_crash.json). n=51 trading days, 20 Feb–30 Apr 2020, trained on data strictly before the test window.

Headline finding: Random Forest and XGBoost's directional accuracy, which beats or matches chance in calm 2017 conditions, flips to significantly worse than random during COVID (p = 0.0013 and p = 0.0078). ARIMA drops from 66.9% directional accuracy in the calm window to 31.4% in COVID. Only linear regression avoids becoming confidently wrong, it goes weak/silent instead, a genuinely different failure mode. This holds beyond the index too: a Random Forest/XGBoost run on RELIANCE.NS during COVID lands at 29.4% directional accuracy, also significant (p = 0.0033).
See the full 5-model × 8-window comparison →