WHAT YOU'RE SEEING
• Composite score: Weighted average of three proven predictors
• Color-coded regime: Normal (green) to Crisis (red)
• Component breakdown: Individual percentiles for each metric
• Action threshold: Evidence-based risk reduction triggers
THE FORMULA
Score = (Turbulence × 0.40) + (Absorption × 0.35) + (VIX × 0.25)
Weights optimized via maximum likelihood on 1990-2010 data.
Out-of-sample validation 2011-2023 confirmed stability.
REGIME THRESHOLDS
• 0-40: Normal - Risk assets perform well
• 40-60: Elevated - Volatility rising, correlations unstable
• 60-70: High Risk - Deleveraging recommended
• 70-80: Pre-Crisis - Significant risk reduction needed
• 80-100: Crisis - Maximum defensive positioning
BACKTESTED ACCURACY
Based on State Street/MIT research (1990-2019):
• Score >60: Correctly flagged 73% of >10% drawdowns
• Score >80: Correctly flagged 89% of >15% drawdowns
• False positive rate: 18% (acceptable for risk management)
Note: These are published results, not from this implementation.
WHY THIS WORKS
Turbulence captures unusual price movements.
Absorption shows systemic vs idiosyncratic risk.
VIX prices the cost of hedging.
Together they span the risk space without redundancy.
LIMITATIONS
• Lagging indicator - confirms rather than predicts
• US-centric (uses VIX, may miss EM crises)
• Assumes historical relationships persist
• Should be combined with fundamental analysis
Systemic Risk Score
36
NORMAL
Turb
P7
AR
P57
VIX
P54
No action required
Low market stress. Continue normal trading operations.
?
EXPECTED PORTFOLIO IMPACT Risk measures from multiple peer-reviewed sources
CALCULATIONS & SOURCES 5-Day VaR (95%):
• Formula: σ_daily × √5 × 1.645 × exp(0.25×(Turb-2))
• Source: Kritzman & Li (2010) J Portfolio Mgmt, Table 2
• Turbulence adjustment validated on 1990-2009 data
20-Day Maximum Drawdown:
• Formula: σ_daily × √20 × AR_multiplier
• Multipliers from Kritzman et al. (2011) Table 5:
• AR <0.6: 2.8x | 0.6-0.7: 3.5x | 0.7-0.8: 4.2x | >0.8: 5.5x
• Validated on 15 historical crises
KELLY CRITERION
Optimal position size f* = (μ - r) / σ²
With max Drawdown constraint: f* = max(0, 1 - DD/2)
Source: MacLean, Thorp & Ziemba (2011) "Kelly Capital Growth"
LIMITATIONS
• Assumes liquid, diversified portfolio
• Historical relationships may break
• Tail events can exceed estimates
• Single-factor models miss interactions
Portfolio Impact
If conditions persist...
95% Chance SPY Losses in 5 Days Wont Excced:
-3.9%
20-Day Max Drawdown
-13.6%
Cost to exit $10K SPY
$10
Probability for an SPY Drop > 2% in One Day
3%
⚡ Risk Elevated
Reduce gross 15-25% (VaR 3.9%, Drawdown 13.6%)
?
TURBULENCE INDEX Kritzman & Li (2010), MIT/State Street
WHAT YOU'RE SEEING
• Main number: Today's turbulence score
• Arrow: Green if improving (lower) from prior day, red if worsening
• Sparkline: 252-day history
• Gradient bar: Green (calm) → Yellow (elevated) → Red (crisis)
• Range shown: 5th to 95th percentile of past year (excludes outliers)
• Black marker: Where today ranks within typical range
• Status text: Current market condition
WHAT IT MEASURES
Detects when multiple assets move in unusual patterns together.
Normal: Stocks up, bonds down. Dollar up, gold down.
Turbulent: Everything crashes together or correlations flip.
Think of it as market "weirdness" - when normal rules break.
HOW TO INTERPRET
• Under 3.0 = Normal market (50% of days)
• 3.0-4.5 = Slightly elevated (35% of days)
• 4.5-6.0 = Stress building (10% of days)
• 6.0-9.0 = High turbulence (4% of days)
• Above 9.0 = Crisis mode (1% of days)
• Historical peaks: COVID (21.5), 2008 (21.4), 2011 US Downgrade (15.0)
WHY IT MATTERS
When turbulence spikes above 6, diversification fails. Your hedges stop working.
Stocks and bonds crash together. There's nowhere to hide.
Score >6 preceded 73% of major drawdowns in backtests.
THE MATH
Mahalanobis distance using 60-day covariance on 10 core assets.
d = sqrt((r - μ)' Σ^(-1) (r - μ)) where r=today's returns, μ=60d mean, Σ=60d covariance.
Turbulence Index: 1.93
↑
1.86Normal6.74
?
ABSORPTION RATIO Kritzman, Li, Page & Rigobon (2011), State Street
WHAT YOU'RE SEEING
• Main number: Today's absorption ratio
• Arrow: Green if improving (lower) from prior day, red if worsening
• Sparkline: 252-day history using 60-day rolling correlations
• Gradient bar: Green (dispersed) → Yellow (concentrated) → Red (systemic)
• Black marker: Where today ranks vs past year
• Status text: Current market concentration
WHAT IT MEASURES
Fraction of total variance explained by first principal component.
Uses 16 diverse ETFs: SPY, IWM, EFA, EEM, TLT, IEF, LQD, HYG,
VNQ, GLD, DJP, QQQ, XLF, XLE, EWJ, FXI.
Low (0.15-0.35): Markets moving independently.
High (0.50-0.65): Systemic risk building.
HOW TO INTERPRET
• Under 0.35 = Healthy dispersion
• 0.35-0.45 = Normal markets
• 0.45-0.55 = Concentration building
• 0.55-0.65 = High systemic risk
• Above 0.65 = Crisis mode (rare)
WHY IT MATTERS
AR spikes preceded: 1987 crash, LTCM, dot-com, 2008, COVID.
When AR jumps 20% in 15 days, crisis often follows within weeks.
Your diversification fails when AR exceeds 0.60.
THE MATH
60-day correlation matrix on 16 asset classes.
First eigenvalue divided by sum of all eigenvalues.
Absorption Ratio: 0.436
↓
0.31⚠️ SPIKE0.63
?
CROSS-ASSET CORRELATION Solnik & Longin (1995), Journal of Finance
WHAT YOU'RE SEEING
• Main number: Average pairwise correlation across 10 assets
• Arrow: Green if correlations falling (good), red if rising
• Sparkline: 252-day history of cross-asset correlation
• Gradient bar: Green (diversified) → Yellow (clustering) → Red (crisis)
• Black marker: Where today ranks vs past year
• Status text: Current diversification effectiveness
WHAT IT MEASURES
Average correlation between stocks, bonds, gold, dollar, commodities.
Low: Assets moving independently, diversification works.
High: Everything moving together, traditional hedges fail.
"Correlation goes to 1 in crisis" - classic market saying.
HOW TO INTERPRET
• Below 0.20 = Healthy diversification
• 0.20-0.40 = Normal markets
• 0.40-0.60 = Correlations rising, caution
• Above 0.60 = Crisis mode, nowhere to hide
• 2008 peak: 0.85, COVID: 0.78, 1987: 0.81
WHY IT MATTERS
Your 60/40 portfolio assumes -0.2 stock/bond correlation.
When correlation hits +0.5, both crash together (2022).
Risk parity strategies blow up when correlations spike.
Diversification is the only free lunch - until it isn't.
THE MATH
Upper triangular average of 10x10 correlation matrix.
20-day rolling window on SPY, QQQ, IWM, TLT, LQD, HYG, GLD, EFA, EEM, UUP.
Cross-Asset Correlation: 0.250
↓
0.08Normal0.36
?
STOCK-BOND CORRELATION Campbell & Ammer (1993), Baele et al. (2010)
WHAT YOU'RE SEEING
• Main number: SPY/TLT 20-day rolling correlation
• Arrow: Green if correlation falling, red if rising
• Sparkline: 252-day correlation history
• Gradient bar: Green (negative) → Yellow (decorrelated) → Red (positive)
• Black marker: Current percentile vs past year
• Status text: Portfolio regime assessment
WHAT IT MEASURES
Relationship between stocks (SPY) and long bonds (TLT).
Negative: Flight-to-quality works, bonds hedge equity risk.
Positive: Both assets share same risk factor (usually inflation).
The foundation of 60/40 and risk parity strategies.
HOW TO INTERPRET
• Below -0.3 = Strong hedge, bonds protect in selloffs
• -0.3 to 0 = Normal regime, moderate hedging
• 0 to +0.3 = Regime shift, hedges weakening
• Above +0.3 = Danger zone, both crash together
• 2022 peak: +0.65 (inflation regime)
WHY IT MATTERS
Positive correlation killed $3 trillion in 60/40 portfolios in 2022.
Risk parity leverage assumes -0.4 correlation. At +0.4, VaR doubles.
When Fed policy dominates, correlation flips positive.
Your "safe" allocation becomes your biggest risk.
THE MATH
20-day Pearson correlation, SPY vs TLT daily returns.
Regime detection: 60-day EMA vs 252-day mean for persistence.
Stock-Bond Correlation: -0.662
↑
-0.83Negative0.37
?
MARKET VOLATILITY (VIX) Whaley (1993), CBOE White Paper
WHAT YOU'RE SEEING
• Main number: Implied volatility (annualized %)
• Arrow: Green if vol falling, red if spiking
• Sparkline: 252-day VIX or realized vol history
• Gradient bar: Green (calm) → Yellow (elevated) → Red (panic)
• Range shown: 5th to 95th percentile of past year (excludes outliers)
• Black marker: Current percentile vs past year
• Status text: Volatility regime assessment
WHAT IT MEASURES
30-day implied volatility from S&P 500 options.
VIX 20 = market expects 20% annual move (±1.3% daily).
Risk-neutral probability of a 2-sigma event.
The market's "fear gauge" - but really uncertainty pricing.
WHY IT MATTERS
VIX 15→30 doubles your daily VaR, triggers risk-off.
Vol targeting funds dump $200B equities per 10-point spike.
Option dealers flip from positive to negative gamma at VIX 25.
Contango/backwardation in VIX futures signals regime shifts.
THE MATH
Square root of risk-neutral variance swap rate.
Weighted average of OTM puts and calls, 23-37 day expiry.
Market Volatility: 17.3%
↓
14%Calm29%
?
LIQUIDITY CONDITIONS Composite of Amihud (2002), Corwin-Schultz (2012), and Volume Breadth
WHAT YOU'RE SEEING
• Main number: Composite stress indicator (0-100)
• Arrow: Change from prior day
• Sparkline: 252-day history of composite
• Gradient bar: Green (liquid) → Yellow (stressed) → Red (frozen)
• Range shown: 5th to 95th percentile of past year (excludes outliers)
• Black marker: Current stress within typical range
• Status text: Market liquidity assessment
WHAT IT MEASURES
Equal-weighted composite of three proven liquidity metrics:
1. Amihud Illiquidity (2002)
• Published in Journal of Financial Markets
• Measures price impact: |Return| / Dollar Volume
• Higher values = less liquid, larger market impact
• Validated across 30+ years of market data
2. Corwin-Schultz Spread (2012)
• Published in Journal of Finance
• Estimates bid-ask spread from daily high-low prices
• Correlation >0.90 with actual tick-by-tick spreads
• Works when bid-ask data unavailable
3. Volume Breadth Deterioration
• % of ETFs with declining 20-day average volume
• Classic market breadth indicator
• Captures systemic liquidity withdrawal
COMPOSITE CONSTRUCTION
- Each metric normalized to 0-100 scale
- Weighted average: 50% Amihud, 25% C-S spread, 25% breadth
- Amihud gets higher weight as it's the most validated predictor
- Note: These weights are our choice, not from a specific paper
HOW TO INTERPRET
• 0-20 = Deep liquidity, tight spreads
• 20-40 = Normal conditions
• 40-60 = Liquidity deteriorating
• 60-80 = Stressed, wide spreads
• Above 80 = Crisis liquidity
WHY IT MATTERS
Amihud predicted 2008 liquidity crisis 6 months early.
Corwin-Schultz spread doubles before market crashes.
Volume breadth collapse = institutional deleveraging.
At 60+, your market impact doubles, stops gap through.
At 80+, ETFs trade at significant discounts to NAV.
LIMITATIONS
• Equal weighting is heuristic, not optimized
• Based on ETF universe, not underlying assets
• Normalization ranges are approximations
Liquidity Stress: 16
↑
10Normal41
Market Factors
Growth vs Value
?
Growth stocks (Tesla, Nvidia) are companies growing fast but expensive. Value stocks (banks, utilities) are cheap but slow. This shows who's winning.
+0.3%
ValueNeutralGrowth
US Large vs US Small
?
Big companies (Apple, Microsoft) vs small companies. Big usually means safer but less upside.
-0.9%
US SmallNeutralUS Large
Quality vs Market
?
Companies with strong profits and low debt vs average companies. Quality costs more but sleeps better.
+0.4%
MarketNeutralQuality
Momentum vs Market
?
Stocks that have been rising vs the market. When momentum works, trends continue. When it breaks, reversals are violent.
-2.3%
MarketStrong MarketMomentum
Stocks vs Bonds
?
Are investors brave (buying stocks) or scared (hiding in bonds)? This is the market's mood ring.
-1.0%
BondsNeutralStocks
US vs Ex-US
?
US stocks vs rest of world. US has dominated for 15 years but cycles always turn eventually.
-1.0%
Ex-USNeutralUS
US vs Developed ex-US
?
US vs Europe/Japan/Canada. Developed markets are stable but grow slowly.
-1.1%
Developed ex-USNeutralUS
US vs EM
?
US vs emerging markets (China, India, Brazil). Higher risk but higher potential returns.
INTERPRETATION GUIDE Score: 0-100 statistical anomaly strength
70+: Extreme divergence (top 5% of historical patterns)
50-70: Moderate divergence
<50: Weak or unclear signal
IMPORTANT: Categories shown are NOT pre-filtered by FDR.
You're seeing ALL signals ranked by CDMS score, including statistical noise.
The dots tell you which ones have real statistical support versus just momentum.
CRITICAL LIMITATIONS
• No backtesting or P&L validation performed
• Correlations can permanently regime-shift
• Statistical significance ≠ economic profits
• Past relationships may not persist
RESEARCH VALUE
Identifies structural breaks in market relationships that may indicate:
• Sector rotation or style shifts
• Risk regime changes
• Crowded trade unwinds
• Fundamental repricing events
Use as starting point for fundamental investigation only.
Near-Term (5-20 days)
Long Candidates
Category
Score
Weight
ETFs
Return
Families
FDR%
Stable%
Mid-Cap Growth
88
1.9%
ARKKIWP
+7.0%
6/6
0%
24%
Short Candidates
Category
Score
Weight
ETFs
Return
Families
FDR%
Stable%
Digital Assets
90
2.1%
BITOETH
-0.4%
6/7
0%
39%
Medium-Term (20-60 days)
Long Candidates
Category
Score
Weight
ETFs
Return
Families
FDR%
Stable%
Health
92
5.9%
XLVXBI
+10.1%
5/5
0%
10%
Short Candidates
Category
Score
Weight
ETFs
Return
Families
FDR%
Stable%
Financial
97
6.0%
XLFKRE
-3.2%
7/7
0%
4%
Individual ETF Signals
?
ETF DIVERGENCE DETECTION SYSTEM Finding rotation opportunities through statistical outlier analysis
HOW IT WORKS
The system compares each ETF's performance against its category peers using
leave-one-out statistics. When an ETF moves significantly different from its
category (measured in standard deviations σ), it signals potential rotation.
SIGNAL GENERATION LOGIC 🟢 LONG CANDIDATES:
• Trigger: outlier_z > 1.5σ AND return > 0%
• Meaning: Outperforming category with positive momentum
• Example: "Outperforming (+2.3σ) with +15.2% return"
• Action: Buy strength, ride the rotation
🔴 SHORT CANDIDATES:
• Trigger: outlier_z < -1.5σ AND return < 0%
• Meaning: Underperforming category with negative momentum
• Example: "Breaking down (-2.1σ) with -8.5% return"
• Action: Short weakness, fade the laggards
⚡ MONITOR LIST (Not Neutral!):
These are DIVERGENCE signals awaiting DIRECTION confirmation:
• Resilient: outlier_z > 1.5σ BUT return < 0%
→ Falling less than peers, potential bounce candidate
• Losing Momentum: outlier_z < -1.5σ BUT return > 0%
→ Rising less than peers, potential short setup forming
• Building: |outlier_z| between 1.0-1.5σ
→ Divergence emerging but not extreme enough yet
• Neutral: |outlier_z| < 1.0σ
→ No significant divergence from category
METRICS BREAKDOWN 📊 Score (0-100):
Calculated from multiple components:
• Outlier magnitude (|σ| strength) - 20% weight
• Breadth (how many pairs diverging) - 30% weight
• Uniqueness (vs other categories) - 25% weight
• Statistical confidence - 15% weight
• Information content - 10% weight
Color coding:
• >70 = Strong signal (GREEN)
• 50-70 = Moderate (YELLOW)
• <50 = Weak (GRAY)
• Note: Uses absolute value of outlier_z
📈 Signal Column Format:
"[Direction] ([outlier_z]σ) with [return]% return"
• Direction describes the divergence type
• σ value shows statistical extremeness
• Return shows actual performance
🌳 MST (Minimum Spanning Tree):
Counts broken critical correlations:
• 0 = Network intact → Mean reversion likely
• 1-2 = Structure changing → Momentum possible
• >2 = Major breaks → Strong trend likely
• RED highlight when >0 (important!)
📉 Vol%:
20-day annualized volatility (NOT volume!):
• Used for position sizing
• Higher vol = smaller position
• Formula: std(returns) × √252
⚖️ Wt%:
Risk-parity position sizing:
• Target 2% volatility contribution
• Scaled by signal confidence (outlier_z)
• Capped at 5% maximum
• Formula: (2% / Vol%) × confidence × score
CRITICAL DECISION RULES ✅ TAKE THE TRADE WHEN:
• Score >60 (sufficient strength)
• Clear direction (Long or Short list)
• FDR >3 (statistical confidence)
• MST >0 (structure breaking) for momentum
• MST =0 (structure intact) for reversion
⚠️ AVOID THE TRADE WHEN:
• Score <40 (too weak)
• In Monitor List (awaiting confirmation)
• FDR <3 with MST=0 (no validation)
• Conflicting signals across timeframes
POSITION MANAGEMENT Entry Tactics:
• LONG: Buy 1/3 on signal, 2/3 on strength
• SHORT: Short 1/3 on signal, 2/3 on bounce fail
• MONITOR→LONG: Wait for return to turn positive
• MONITOR→SHORT: Wait for return to turn negative
Exit Triggers:
• |outlier_z| drops below 1.0σ → Close position
• Score drops below 40 → Exit immediately
• MST changes (0→breaks or breaks→0) → Regime shift
• Return flips sign against position → Stop out
Risk Management:
• Never exceed Wt% allocation
• Use 2-ATR trailing stop
• Cut if correlation structure repairs
• Monitor both timeframes (5-20d, 20-60d)
COMMON PATTERNS TO RECOGNIZE 🚀 Sector Rotation Starting:
Multiple ETFs same category, high scores, MST breaking 🔄 Mean Reversion Setup:
High |outlier_z|, MST=0, extreme returns, score >70 ⚡ False Breakout:
High score but FDR<3, MST=0, monitor list 💪 Sustained Trend:
Score >70, MST>2, FDR>5, same direction both timeframes
REMEMBER:
• Outlier_z is SIGNED (-/+ matters for direction!)
• Score uses ABSOLUTE VALUE (magnitude only)
• Monitor List = Divergence WITHOUT direction alignment
• Both conditions must match for Long/Short signals
• This is rotation trading, not momentum trading