The Geometry of Risk
Correlation is a comfortable number right up until the moment it isn't. This project builds a four-layer framework for detecting systemic stress in the structure of a market, rather than in its returns.
The four layers
- Network topology — represent the market as a graph and watch it tighten. Stress shows up as the network collapsing toward a single cluster.
- Granger causality — trace who moves whom. In calm markets the causal graph is sparse; under stress it densifies and reverses direction.
- Tail-risk quantification — measure the fat end directly instead of trusting a variance number to describe it.
- Hidden-Markov regime detection — infer the unobserved state the market is actually in, and date the transitions.
Each layer is a weak signal on its own. Stacked, they identify the moments when a portfolio's diversification is quietly evaporating — which is precisely when the risk report still looks fine.
Live risk dashboard
Below is a running instance of the framework's core layer — updated daily on real market data, not a static snapshot. It's built to demonstrate the tool working, not to reproduce the peer-reviewed manuscript results (see the note under "How to read this" for the distinction).
Rolling Absorption Ratio · 60-day window, regime-shaded
Accelerator · standardised 15-day change in Absorption Ratio (z-score)
Current correlation matrix · trailing 60 trading days
How to read this
Absorption Ratio
The share of total variance across the nine-asset universe explained by the first principal component, on a rolling 60-day window. High values mean the market is moving as one correlated block — diversification is thin even if it doesn't show up in any single correlation number. The 0.50 line follows Kritzman et al. (2011).
Accelerator
The standardised rate of change of the Absorption Ratio — is systemic risk building, and how fast? A reading above +2σ means risk is rising quickly even if the AR level itself isn't at an extreme yet; this is what a level-only reading of the Absorption Ratio misses.
Regime
A 3-state Gaussian Hidden Markov Model classifies each day as Calm, Transitional, or Stress based on the joint behaviour of the dominant market factor, the Absorption Ratio, and the accelerator. States are relabelled each run by mean Absorption Ratio, so the labels stay meaningful even though the model is refit daily (see the note below).
This dashboard vs. the manuscript
The peer-reviewed analysis in the repository uses a single HMM fit and validates it out-of-sample against 14 years of history — that's the methodology backing the paper's results. This live page refits the HMM fresh on every update instead, on whatever data is available that day. That's a deliberate choice: this page exists to show the framework running as a tool, not to reproduce the manuscript. Numbers here may not exactly match the paper's reported figures, and will vary run to run near regime boundaries.
Updates daily at 22:00 UTC, after US market close. Generated: