{"engine": "rotation-radar", "version": "1.2.1", "generated_at": "2026-07-11T13:45:08.159627+00:00", "crypto": {"available": true, "event_study": {"definition": "ETH/BTC makes a 180d low then closes \u226525% off that low within 60 sessions (thrust = tradeable confirmation)", "events": [{"thrust_date": "2017-01-04", "ethbtc_at_thrust": 0.00991, "alts_btc_fwd": {"30": null, "90": null, "180": null}, "alts_usd_proxy_eth_fwd": {"30": -1.6, "90": 298.1, "180": 2374.2}, "btc_usd_fwd_90": 1.2}, {"thrust_date": "2017-11-12", "ethbtc_at_thrust": 0.052, "alts_btc_fwd": {"30": null, "90": null, "180": null}, "alts_usd_proxy_eth_fwd": {"30": 123.6, "90": 176.6, "180": 120.8}, "btc_usd_fwd_90": 45.2}, {"thrust_date": "2018-09-21", "ethbtc_at_thrust": 0.03667, "alts_btc_fwd": {"30": null, "90": null, "180": null}, "alts_usd_proxy_eth_fwd": {"30": -18.4, "90": -53.8, "180": -44.0}, "btc_usd_fwd_90": -39.6}, {"thrust_date": "2019-05-16", "ethbtc_at_thrust": 0.03358, "alts_btc_fwd": {"30": null, "90": null, "180": null}, "alts_usd_proxy_eth_fwd": {"30": 1.9, "90": -29.5, "180": -29.3}, "btc_usd_fwd_90": 27.2}, {"thrust_date": "2021-01-04", "ethbtc_at_thrust": 0.03254, "alts_btc_fwd": {"30": null, "90": null, "180": null}, "alts_usd_proxy_eth_fwd": {"30": 60.1, "90": 99.2, "180": 113.6}, "btc_usd_fwd_90": 81.8}, {"thrust_date": "2022-07-18", "ethbtc_at_thrust": 0.07047, "alts_btc_fwd": {"30": -0.2, "90": -6.8, "180": -13.3}, "alts_usd_proxy_eth_fwd": {"30": 16.0, "90": -17.4, "180": -2.0}, "btc_usd_fwd_90": -14.1}, {"thrust_date": "2025-05-09", "ethbtc_at_thrust": 0.02278, "alts_btc_fwd": {"30": -14.7, "90": -7.7, "180": -11.0}, "alts_usd_proxy_eth_fwd": {"30": 7.1, "90": 66.8, "180": 46.0}, "btc_usd_fwd_90": 14.1}], "alts_in_btc": {"30": {"n": 2, "median_pct": -0.2, "pos_pct": 0.0}, "90": {"n": 2, "median_pct": -6.8, "pos_pct": 0.0}, "180": {"n": 2, "median_pct": -11.0, "pos_pct": 0.0}}, "eth_usd": {"30": {"n": 7, "median_pct": 7.1, "pos_pct": 71.4}, "90": {"n": 7, "median_pct": 66.8, "pos_pct": 57.1}, "180": {"n": 7, "median_pct": 46.0, "pos_pct": 57.1}}}, "live": {"ethbtc": {"value": 0.028073, "as_of": "2026-07-11", "off_180d_low_pct": 8.9, "days_since_180d_low": 35, "vs_365d_high_pct": -33.4, "mom_20d_pct": 4.1, "thrust_live": false}, "alt_basket_btc": {"value": 0.378925812091004, "as_of": "2026-07-11", "off_180d_low_pct": 10.9, "days_since_180d_low": 35, "vs_365d_high_pct": -45.1, "mom_20d_pct": 3.8, "thrust_live": false}}, "diagnostics": ["coinbase ETH-BTC: 3693 pts", "coinbase BTC-USD/ETH-USD: 4010/3693 pts", "alt basket coins (USD/BTC-derived): 5"]}, "equity": {"definition": "ratio makes 180d low then \u226512% off-low within 60 sessions; sequels on IWM/SPY relative + XBI", "ratios": {"highbeta_lowvol": {"events": [{"thrust_date": "2025-04-25", "iwm_rel_fwd": {"30": -0.3, "90": -0.0, "180": 3.4}, "xbi_fwd_90": 9.0, "spy_fwd_90": 15.2}], "iwm_rel": {"30": {"n": 1, "median_pct": -0.3, "pos_pct": 0.0}, "90": {"n": 1, "median_pct": -0.0, "pos_pct": 0.0}, "180": {"n": 1, "median_pct": 3.4, "pos_pct": 100.0}}, "xbi_90": {"n": 1, "median_pct": 9.0, "pos_pct": 100.0}, "live": {"value": 1.9705959915611813, "as_of": "2026-07-10", "off_180d_low_pct": 34.9, "days_since_180d_low": 157, "vs_365d_high_pct": -7.9, "mom_20d_pct": 4.2, "thrust_live": false}}, "smallcap_large": {"events": [{"thrust_date": "2024-07-25", "iwm_rel_fwd": {"30": -4.0, "90": -7.4, "180": -7.0}, "xbi_fwd_90": -4.3, "spy_fwd_90": 7.4}], "iwm_rel": {"30": {"n": 1, "median_pct": -4.0, "pos_pct": 0.0}, "90": {"n": 1, "median_pct": -7.4, "pos_pct": 0.0}, "180": {"n": 1, "median_pct": -7.0, "pos_pct": 0.0}}, "xbi_90": {"n": 1, "median_pct": -4.3, "pos_pct": 0.0}, "live": {"value": 0.39206569971521293, "as_of": "2026-07-10", "off_180d_low_pct": 12.1, "days_since_180d_low": 160, "vs_365d_high_pct": -4.7, "mom_20d_pct": 0.8, "thrust_live": false}}, "equalweight_cap": {"events": [], "iwm_rel": {"30": null, "90": null, "180": null}, "xbi_90": null, "live": {"value": 0.28385985826875954, "as_of": "2026-07-10", "off_180d_low_pct": 4.3, "days_since_180d_low": 38, "vs_365d_high_pct": -8.7, "mom_20d_pct": -0.3, "thrust_live": false}}, "biotech_mkt": {"events": [{"thrust_date": "2022-05-20", "iwm_rel_fwd": {"30": -0.8, "90": 2.9, "180": 3.1}, "xbi_fwd_90": 26.4, "spy_fwd_90": 9.8}, {"thrust_date": "2023-05-04", "iwm_rel_fwd": {"30": -0.0, "90": 3.1, "180": -6.5}, "xbi_fwd_90": -2.3, "spy_fwd_90": 11.1}, {"thrust_date": "2023-12-04", "iwm_rel_fwd": {"30": 1.2, "90": -1.9, "180": -5.3}, "xbi_fwd_90": 27.2, "spy_fwd_90": 12.2}], "iwm_rel": {"30": {"n": 3, "median_pct": -0.0, "pos_pct": 33.3}, "90": {"n": 3, "median_pct": 2.9, "pos_pct": 66.7}, "180": {"n": 3, "median_pct": -5.3, "pos_pct": 33.3}}, "xbi_90": {"n": 3, "median_pct": 26.4, "pos_pct": 66.7}, "live": {"value": 0.2106497119014504, "as_of": "2026-07-10", "off_180d_low_pct": 31.7, "days_since_180d_low": 169, "vs_365d_high_pct": -3.9, "mom_20d_pct": 18.6, "thrust_live": false}}, "spec_growth": {"events": [{"thrust_date": "2022-05-13", "iwm_rel_fwd": {"30": 2.4, "90": 5.5, "180": 5.3}, "xbi_fwd_90": 32.3, "spy_fwd_90": 4.5}, {"thrust_date": "2022-11-11", "iwm_rel_fwd": {"30": -3.4, "90": -0.5, "180": -9.9}, "xbi_fwd_90": 1.6, "spy_fwd_90": 2.2}, {"thrust_date": "2023-11-15", "iwm_rel_fwd": {"30": 5.6, "90": -0.9, "180": -1.1}, "xbi_fwd_90": 24.8, "spy_fwd_90": 9.9}], "iwm_rel": {"30": {"n": 3, "median_pct": 2.4, "pos_pct": 66.7}, "90": {"n": 3, "median_pct": -0.5, "pos_pct": 33.3}, "180": {"n": 3, "median_pct": -1.1, "pos_pct": 33.3}}, "xbi_90": {"n": 3, "median_pct": 24.8, "pos_pct": 100.0}, "live": {"value": 0.11060495375666773, "as_of": "2026-07-10", "off_180d_low_pct": 5.5, "days_since_180d_low": 18, "vs_365d_high_pct": -26.9, "mom_20d_pct": 5.1, "thrust_live": false}}, "semis_mkt": {"events": [{"thrust_date": "2022-07-20", "iwm_rel_fwd": {"30": 0.3, "90": 2.1, "180": 2.2}, "xbi_fwd_90": -4.1, "spy_fwd_90": -6.0}, {"thrust_date": "2025-05-12", "iwm_rel_fwd": {"30": -0.4, "90": -2.9, "180": 0.4}, "xbi_fwd_90": 7.2, "spy_fwd_90": 9.1}], "iwm_rel": {"30": {"n": 2, "median_pct": 0.3, "pos_pct": 50.0}, "90": {"n": 2, "median_pct": 2.1, "pos_pct": 50.0}, "180": {"n": 2, "median_pct": 2.2, "pos_pct": 100.0}}, "xbi_90": {"n": 2, "median_pct": 7.2, "pos_pct": 50.0}, "live": {"value": 0.8093648585999071, "as_of": "2026-07-10", "off_180d_low_pct": 63.6, "days_since_180d_low": 156, "vs_365d_high_pct": -9.9, "mom_20d_pct": 2.8, "thrust_live": false}}}}, "diagnostics": ["coinbase ETH-BTC: 3693 pts", "coinbase BTC-USD/ETH-USD: 4010/3693 pts", "alt basket coins (USD/BTC-derived): 5", "equity legs: SPHB:1255, SPLV:1255, RSP:1255, SPY:1255, IWM:1255, XBI:1255, ARKK:1255, QQQ:1255, SMH:1255"], "scores": {"crypto_altseason": 29, "equity_rotation": 27.8}, "signals_logged": 0, "ai_brief": {"error": "HTTP Error 400: Bad Request"}, "methodology": "Season-starter doctrine, measured: bottom\u2192thrust events on ETH/BTC (180d low, \u226525% off-low \u226460 sessions) and five equity appetite ratios (\u226512%), each with real forward sequels (alt basket in BTC, ETH/USD, IWM/SPY relative, XBI) and n. Live detectors score thrust-armed states; fresh thrusts log to the closed loop at sequel-table confidence. Coinbase Exchange daily candles (primary) with CoinGecko/Polygon fallbacks \u2014 coverage honest.", "duration_s": 33.3}