{
  "generated_at": "2026-03-10T21:09:58.514680",
  "meta": {
    "baseline_components": {
      "rs_XLF_spy_1h": 0.28,
      "rs_XLK_spy_1h": 0.24,
      "spread_hyg_tlt_1h": 0.2,
      "breadth_1h": 0.16,
      "dispersion_1h": -0.12
    },
    "overlay_features": [
      "rs_XLK_spy_30m",
      "dispersion_2h",
      "rs_DIA_spy_2h",
      "rs_IWM_spy_2h",
      "risk_on_minus_def_1h",
      "spread_hyg_tlt_2h"
    ],
    "formula": "RORO2 = tanh(0.70 * baseline + 0.30 * sector_overlay)"
  },
  "horizons": {
    "30m": {
      "baseline": {
        "n_is": 10069,
        "n_oos": 6367,
        "is_ic": 0.0191,
        "is_p": 0.0547,
        "oos_ic": 0.0216,
        "oos_p": 0.085,
        "wr_oos": 49.6309,
        "avg_ret_bps_oos": 0.4293,
        "sharpe_oos": 0.0145,
        "max_drawdown_oos": -0.2789,
        "p_value_oos": 0.2477
      },
      "roro_v2": {
        "n_is": 10069,
        "n_oos": 6367,
        "is_ic": 0.0181,
        "is_p": 0.0691,
        "oos_ic": 0.0307,
        "oos_p": 0.0141,
        "wr_oos": 50.0707,
        "avg_ret_bps_oos": 0.6832,
        "sharpe_oos": 0.0231,
        "max_drawdown_oos": -0.2308,
        "p_value_oos": 0.0658
      },
      "lift": {
        "ic_delta": 0.0092,
        "wr_delta": 0.44,
        "sharpe_delta": 0.0086,
        "drawdown_delta": 0.0481
      },
      "lift_ok": true
    },
    "1h": {
      "baseline": {
        "n_is": 7471,
        "n_oos": 4633,
        "is_ic": 0.0428,
        "is_p": 0.0002,
        "oos_ic": 0.0263,
        "oos_p": 0.0732,
        "wr_oos": 48.5215,
        "avg_ret_bps_oos": -0.7704,
        "sharpe_oos": -0.019,
        "max_drawdown_oos": -0.559,
        "p_value_oos": 0.197
      },
      "roro_v2": {
        "n_is": 7471,
        "n_oos": 4633,
        "is_ic": 0.0377,
        "is_p": 0.0011,
        "oos_ic": 0.0449,
        "oos_p": 0.0022,
        "wr_oos": 49.3417,
        "avg_ret_bps_oos": -0.4262,
        "sharpe_oos": -0.0105,
        "max_drawdown_oos": -0.5489,
        "p_value_oos": 0.4754
      },
      "lift": {
        "ic_delta": 0.0186,
        "wr_delta": 0.82,
        "sharpe_delta": 0.0085,
        "drawdown_delta": 0.0101
      },
      "lift_ok": true
    },
    "2h": {
      "baseline": {
        "n_is": 2713,
        "n_oos": 1545,
        "is_ic": 0.0603,
        "is_p": 0.0017,
        "oos_ic": 0.0396,
        "oos_p": 0.1195,
        "wr_oos": 44.3366,
        "avg_ret_bps_oos": -3.694,
        "sharpe_oos": -0.0633,
        "max_drawdown_oos": -0.5726,
        "p_value_oos": 0.013
      },
      "roro_v2": {
        "n_is": 2713,
        "n_oos": 1545,
        "is_ic": 0.0323,
        "is_p": 0.0928,
        "oos_ic": 0.0849,
        "oos_p": 0.0008,
        "wr_oos": 45.5016,
        "avg_ret_bps_oos": -3.1213,
        "sharpe_oos": -0.0534,
        "max_drawdown_oos": -0.559,
        "p_value_oos": 0.0358
      },
      "lift": {
        "ic_delta": 0.0453,
        "wr_delta": 1.17,
        "sharpe_delta": 0.0098,
        "drawdown_delta": 0.0136
      },
      "lift_ok": true
    },
    "EOD": {
      "baseline": {
        "n_is": 12667,
        "n_oos": 8101,
        "is_ic": 0.0192,
        "is_p": 0.0306,
        "oos_ic": 0.0371,
        "oos_p": 0.0008,
        "wr_oos": 48.7841,
        "avg_ret_bps_oos": 0.7446,
        "sharpe_oos": 0.0183,
        "max_drawdown_oos": -0.5624,
        "p_value_oos": 0.1004
      },
      "roro_v2": {
        "n_is": 12667,
        "n_oos": 8101,
        "is_ic": 0.0211,
        "is_p": 0.0176,
        "oos_ic": 0.056,
        "oos_p": 0.0,
        "wr_oos": 49.4507,
        "avg_ret_bps_oos": 1.0078,
        "sharpe_oos": 0.0247,
        "max_drawdown_oos": -0.5417,
        "p_value_oos": 0.0261
      },
      "lift": {
        "ic_delta": 0.0189,
        "wr_delta": 0.67,
        "sharpe_delta": 0.0065,
        "drawdown_delta": 0.0207
      },
      "lift_ok": true
    }
  },
  "thresholds": {
    "bull": -0.067,
    "bear": -0.104,
    "neutral_band": [
      -0.104,
      -0.067
    ],
    "rule": "Bull if score >= bull; Bear if score <= bear; else Neutral"
  },
  "verdict": "PROMOTE"
}