| { |
| "name": "5Y Historic-Inspired + Post-2025 News Cycle", |
| "startDay": 0, |
| "basePrice": 100.0, |
| "defaultVolatility": 0.85, |
| "marketLength": 2000, |
| "events": [ |
| { |
| "day": 0, |
| "shockPct": -1.2, |
| "news": "Quarterly risk reset: profit-taking after run-up." |
| }, |
| { |
| "day": 7, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 14, |
| "shockPct": -2.5, |
| "news": "Banking stress headlines revive 2008-style fears; liquidity backstops hinted.", |
| "volatility": 1.4 |
| }, |
| { |
| "day": 21, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 28, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 35, |
| "shockPct": -0.3, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 42, |
| "shockPct": 3.0, |
| "news": "Coordinated central-bank statement calms markets; funding spreads tighten.", |
| "volatility": 1.1 |
| }, |
| { |
| "day": 49, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 56, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 63, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 70, |
| "shockPct": -0.3, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 77, |
| "shockPct": 0.0, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 84, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 91, |
| "shockPct": -3.5, |
| "news": "Geopolitical escalation triggers energy spike; shipping insurance costs jump.", |
| "volatility": 1.8 |
| }, |
| { |
| "day": 98, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 105, |
| "shockPct": 0.2, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 112, |
| "shockPct": 0.0, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 119, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 126, |
| "shockPct": 2.8, |
| "news": "Emergency energy releases + diplomatic corridor reduce tail risks.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 133, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 140, |
| "shockPct": -0.2, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals.", |
| "volatility": 1.05 |
| }, |
| { |
| "day": 147, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 154, |
| "shockPct": 0.0, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously." |
| }, |
| { |
| "day": 161, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 168, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 175, |
| "shockPct": -0.2, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 182, |
| "shockPct": 2.0, |
| "news": "Disinflation print surprises; first rate-cut timing pulled forward.", |
| "volatility": 1.0 |
| }, |
| { |
| "day": 189, |
| "shockPct": 0.0, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 196, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 203, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 210, |
| "shockPct": -0.2, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 217, |
| "shockPct": 0.0, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 224, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 231, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 238, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 245, |
| "shockPct": -0.3, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 252, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 259, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 266, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 273, |
| "shockPct": -2.2, |
| "news": "Major cloud outage + cyber incident hits megacaps; risk models reprice.", |
| "volatility": 1.5 |
| }, |
| { |
| "day": 280, |
| "shockPct": -0.3, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 287, |
| "shockPct": 0.0, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 294, |
| "shockPct": 0.0, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously." |
| }, |
| { |
| "day": 301, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 308, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 315, |
| "shockPct": 0.3, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 322, |
| "shockPct": 0.0, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously." |
| }, |
| { |
| "day": 329, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 336, |
| "shockPct": 0.0, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 343, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 350, |
| "shockPct": -0.3, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 357, |
| "shockPct": 0.0, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 364, |
| "shockPct": -4.0, |
| "news": "Election-year policy uncertainty: tariff threats and fiscal standoff.", |
| "volatility": 2.1 |
| }, |
| { |
| "day": 371, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 378, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 385, |
| "shockPct": -0.3, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 392, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 399, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 406, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 413, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 420, |
| "shockPct": 3.5, |
| "news": "Post-election clarity: budget deal + investment incentives fuel relief rally.", |
| "volatility": 1.3 |
| }, |
| { |
| "day": 427, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 434, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 441, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 448, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 455, |
| "shockPct": 1.4, |
| "news": "Quarterly rebound: earnings breadth improves; dip-buyers return." |
| }, |
| { |
| "day": 462, |
| "shockPct": 0.0, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously." |
| }, |
| { |
| "day": 469, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 476, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 483, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 490, |
| "shockPct": -0.3, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 497, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 504, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 511, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 518, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 525, |
| "shockPct": -0.2, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 532, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 539, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 546, |
| "shockPct": -2.8, |
| "news": "Credit event in private markets; refinancing wall sparks risk-off week.", |
| "volatility": 1.7 |
| }, |
| { |
| "day": 553, |
| "shockPct": 0.0, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 560, |
| "shockPct": -0.2, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 567, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 574, |
| "shockPct": 0.0, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously." |
| }, |
| { |
| "day": 581, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 588, |
| "shockPct": 0.0, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 595, |
| "shockPct": -0.3, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 602, |
| "shockPct": 2.4, |
| "news": "Orderly restructuring + backstop facility reduces contagion fears.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 609, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 616, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 623, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 630, |
| "shockPct": -0.2, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 637, |
| "shockPct": 1.4, |
| "news": "Quarterly rebound: earnings breadth improves; dip-buyers return." |
| }, |
| { |
| "day": 644, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 651, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 658, |
| "shockPct": 0.0, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously." |
| }, |
| { |
| "day": 665, |
| "shockPct": 0.3, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 672, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 679, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 686, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 693, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 700, |
| "shockPct": -0.2, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals.", |
| "volatility": 1.05 |
| }, |
| { |
| "day": 707, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 714, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 721, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 728, |
| "shockPct": 2.2, |
| "news": "Productivity wave narrative: AI capex cycle accelerates; earnings revisions up.", |
| "volatility": 1.1 |
| }, |
| { |
| "day": 735, |
| "shockPct": 0.3, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 742, |
| "shockPct": 0.0, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously." |
| }, |
| { |
| "day": 749, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 756, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 763, |
| "shockPct": 0.0, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 770, |
| "shockPct": 0.2, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 777, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 784, |
| "shockPct": 0.0, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 791, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 798, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 805, |
| "shockPct": -0.3, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 812, |
| "shockPct": 0.0, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 819, |
| "shockPct": -3.2, |
| "news": "AI overbuild concerns echo dot-com; guidance cuts hit high-multiple names.", |
| "volatility": 1.9 |
| }, |
| { |
| "day": 826, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 833, |
| "shockPct": 0.0, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 840, |
| "shockPct": -0.2, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 847, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 854, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 861, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 868, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 875, |
| "shockPct": 0.3, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 882, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 889, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 896, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 903, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 910, |
| "shockPct": 2.6, |
| "news": "Breakthrough efficiency claims validated; capex shifts from hype to ROI.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 917, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 924, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 931, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 938, |
| "shockPct": 0.0, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously." |
| }, |
| { |
| "day": 945, |
| "shockPct": 0.2, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 952, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 959, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 966, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 973, |
| "shockPct": 0.0, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 980, |
| "shockPct": 0.2, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals.", |
| "volatility": 1.05 |
| }, |
| { |
| "day": 987, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 994, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1001, |
| "shockPct": 1.4, |
| "news": "Quarterly rebound: earnings breadth improves; dip-buyers return." |
| }, |
| { |
| "day": 1008, |
| "shockPct": 0.0, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1015, |
| "shockPct": -0.2, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1022, |
| "shockPct": 0.0, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1029, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1036, |
| "shockPct": 0.0, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1043, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1050, |
| "shockPct": -0.2, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 1057, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1064, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1071, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1078, |
| "shockPct": 0.0, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1085, |
| "shockPct": 0.2, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1092, |
| "shockPct": -2.6, |
| "news": "Unexpected inflation rebound; central bank signals 'higher for longer'.", |
| "volatility": 1.8 |
| }, |
| { |
| "day": 1099, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1106, |
| "shockPct": 0.0, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1113, |
| "shockPct": 0.0, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1120, |
| "shockPct": -0.3, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 1127, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1134, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1141, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1148, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1155, |
| "shockPct": -0.3, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1162, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1169, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1176, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1183, |
| "shockPct": 2.3, |
| "news": "Inflation cools again; soft-landing confidence returns.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 1190, |
| "shockPct": 0.3, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 1197, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1204, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1211, |
| "shockPct": 0.0, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1218, |
| "shockPct": 0.0, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1225, |
| "shockPct": -0.3, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1232, |
| "shockPct": 0.0, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1239, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1246, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1253, |
| "shockPct": 0.0, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1260, |
| "shockPct": 0.2, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals.", |
| "volatility": 1.05 |
| }, |
| { |
| "day": 1267, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1274, |
| "shockPct": -2.9, |
| "news": "Emerging-market FX shock triggers forced de-risking; correlations spike.", |
| "volatility": 1.8 |
| }, |
| { |
| "day": 1281, |
| "shockPct": 0.0, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1288, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1295, |
| "shockPct": 0.2, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1302, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1309, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1316, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1323, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1330, |
| "shockPct": 0.2, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 1337, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1344, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1351, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1358, |
| "shockPct": 0.0, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1365, |
| "shockPct": 2.1, |
| "news": "IMF-style stabilization package announced; carry trade rebuild begins.", |
| "volatility": 1.3 |
| }, |
| { |
| "day": 1372, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1379, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1386, |
| "shockPct": 0.0, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1393, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1400, |
| "shockPct": -0.3, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 1407, |
| "shockPct": 0.0, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1414, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1421, |
| "shockPct": 0.0, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1428, |
| "shockPct": 0.0, |
| "news": "Weekly tape: rate-cut speculation; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1435, |
| "shockPct": 0.3, |
| "news": "Macro watch: rate-cut speculation; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1442, |
| "shockPct": 0.0, |
| "news": "Positioning check: rate-cut speculation; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1449, |
| "shockPct": 0.0, |
| "news": "Narrative shift: rate-cut speculation; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1456, |
| "shockPct": -2.4, |
| "news": "Climate event disrupts supply chains; insurers reprice catastrophe risk.", |
| "volatility": 1.6 |
| }, |
| { |
| "day": 1463, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1470, |
| "shockPct": -0.3, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 1477, |
| "shockPct": 0.0, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1484, |
| "shockPct": 0.0, |
| "news": "Weekly tape: earnings resilience; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1491, |
| "shockPct": 0.0, |
| "news": "Macro watch: earnings resilience; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1498, |
| "shockPct": 0.0, |
| "news": "Positioning check: earnings resilience; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1505, |
| "shockPct": 0.3, |
| "news": "Narrative shift: earnings resilience; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1512, |
| "shockPct": 0.0, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1519, |
| "shockPct": 0.0, |
| "news": "Macro watch: AI capex cycle; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1526, |
| "shockPct": 0.0, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1533, |
| "shockPct": 0.0, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1540, |
| "shockPct": -0.3, |
| "news": "Weekly tape: AI capex cycle; flows rotate between defensives and cyclicals.", |
| "volatility": 1.05 |
| }, |
| { |
| "day": 1547, |
| "shockPct": 2.0, |
| "news": "Supply normalization + rebuilding spend support cyclicals.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 1554, |
| "shockPct": 0.0, |
| "news": "Positioning check: AI capex cycle; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1561, |
| "shockPct": 0.0, |
| "news": "Narrative shift: AI capex cycle; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1568, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1575, |
| "shockPct": 0.2, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1582, |
| "shockPct": 0.0, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1589, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1596, |
| "shockPct": 0.0, |
| "news": "Weekly tape: energy transition; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1603, |
| "shockPct": 0.0, |
| "news": "Macro watch: energy transition; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1610, |
| "shockPct": 0.2, |
| "news": "Positioning check: energy transition; volatility sellers return cautiously.", |
| "volatility": 1.15 |
| }, |
| { |
| "day": 1617, |
| "shockPct": 0.0, |
| "news": "Narrative shift: energy transition; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1624, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1631, |
| "shockPct": 0.0, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1638, |
| "shockPct": -2.7, |
| "news": "Antitrust wave targets platform fees; headline risk rises.", |
| "volatility": 1.7 |
| }, |
| { |
| "day": 1645, |
| "shockPct": -0.2, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1652, |
| "shockPct": 0.0, |
| "news": "Weekly tape: trade friction; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1659, |
| "shockPct": 0.0, |
| "news": "Macro watch: trade friction; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1666, |
| "shockPct": 0.0, |
| "news": "Positioning check: trade friction; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1673, |
| "shockPct": 0.0, |
| "news": "Narrative shift: trade friction; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1680, |
| "shockPct": -0.3, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals.", |
| "volatility": 0.85 |
| }, |
| { |
| "day": 1687, |
| "shockPct": 0.0, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1694, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1701, |
| "shockPct": 0.0, |
| "news": "Narrative shift: credit tightening; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1708, |
| "shockPct": 0.0, |
| "news": "Weekly tape: credit tightening; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1715, |
| "shockPct": -0.3, |
| "news": "Macro watch: credit tightening; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1722, |
| "shockPct": 0.0, |
| "news": "Positioning check: credit tightening; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1729, |
| "shockPct": 2.2, |
| "news": "Settlement framework reduces uncertainty; buybacks resume.", |
| "volatility": 1.2 |
| }, |
| { |
| "day": 1736, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1743, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1750, |
| "shockPct": -0.2, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously.", |
| "volatility": 0.95 |
| }, |
| { |
| "day": 1757, |
| "shockPct": 0.0, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1764, |
| "shockPct": 0.0, |
| "news": "Weekly tape: reacceleration hopes; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1771, |
| "shockPct": 0.0, |
| "news": "Macro watch: reacceleration hopes; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1778, |
| "shockPct": 0.0, |
| "news": "Positioning check: reacceleration hopes; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1785, |
| "shockPct": 0.2, |
| "news": "Narrative shift: reacceleration hopes; breadth and liquidity indicators in focus." |
| }, |
| { |
| "day": 1792, |
| "shockPct": 0.0, |
| "news": "Weekly tape: soft-landing optimism; flows rotate between defensives and cyclicals." |
| }, |
| { |
| "day": 1799, |
| "shockPct": 0.0, |
| "news": "Macro watch: soft-landing optimism; analysts debate whether this resembles past late-cycle rallies." |
| }, |
| { |
| "day": 1806, |
| "shockPct": 0.0, |
| "news": "Positioning check: soft-landing optimism; volatility sellers return cautiously." |
| }, |
| { |
| "day": 1813, |
| "shockPct": 0.0, |
| "news": "Narrative shift: soft-landing optimism; breadth and liquidity indicators in focus." |
| } |
| ] |
| } |