{
  "test_date": "2026-03-11T08:04:27.998922",
  "description": "RORO v2 + Options Flow Net Premium test",
  "oos_period": "2025-01-01 to 2026-02-27",
  "baseline_roro_sharpe": 0.9723028815318878,
  "flow_signals_tested": {
    "net_premium_z": "Rolling 20d z-score of daily net premium (calls - puts)",
    "flow_5d_z": "Rolling 20d z-score of 5-day cumulative net premium",
    "imbalance_z": "Rolling 20d z-score of daily flow imbalance ratio",
    "large_z": "Rolling 20d z-score of large trade net delta"
  },
  "results": {
    "Flow-only (Net Premium Z)": {
      "sharpe": -1.4030412605773166,
      "ann_ret": -25.392736809039366,
      "max_dd": -33.48253524283481,
      "win_rate": 0.4639175257731959
    },
    "RORO+Flow agree (Net Premium Z)": {
      "sharpe": 6.404001439148686,
      "ann_ret": 64.97129205872942,
      "max_dd": -0.3652251879989202,
      "win_rate": 0.21052631578947367,
      "days_traded": 19
    },
    "Flow-only (5d Cum Flow Z)": {
      "sharpe": -0.6926929516665111,
      "ann_ret": -12.57363435870969,
      "max_dd": -19.159789495092404,
      "win_rate": 0.49828178694158076
    },
    "RORO+Flow agree (5d Cum Flow Z)": {
      "sharpe": 2.4708959892961158,
      "ann_ret": 37.14580951589196,
      "max_dd": -2.9018101886264103,
      "win_rate": 0.23809523809523808,
      "days_traded": 21
    },
    "Flow-only (Imbalance Z)": {
      "sharpe": 0.05759275733514055,
      "ann_ret": 1.046404391003018,
      "max_dd": -14.417692831726248,
      "win_rate": 0.5120274914089347
    },
    "RORO+Flow agree (Imbalance Z)": {
      "sharpe": 6.908424745001687,
      "ann_ret": 80.71398357640668,
      "max_dd": -0.48544453010689015,
      "win_rate": 0.21428571428571427,
      "days_traded": 14
    },
    "Flow-only (Large Trade Z)": {
      "sharpe": -1.6501934025075167,
      "ann_ret": -29.82136124386686,
      "max_dd": -41.18167338151621,
      "win_rate": 0.4570446735395189
    },
    "RORO+Flow agree (Large Trade Z)": {
      "sharpe": 6.600898230969795,
      "ann_ret": 68.58080828421438,
      "max_dd": -0.3652251879989202,
      "win_rate": 0.2222222222222222,
      "days_traded": 18
    },
    "weighted_0.0": {
      "sharpe": 0.9723028815318878,
      "ann_ret": 6.028613072224618,
      "flow_weight": 0.0
    },
    "weighted_0.05": {
      "sharpe": 0.7803238899047749,
      "ann_ret": 4.581145128254369,
      "flow_weight": 0.05
    },
    "weighted_0.1": {
      "sharpe": 0.5563121560490089,
      "ann_ret": 3.1336771842841213,
      "flow_weight": 0.1
    },
    "weighted_0.15": {
      "sharpe": 0.30666053109499186,
      "ann_ret": 1.6862092403138735,
      "flow_weight": 0.15
    },
    "weighted_0.2": {
      "sharpe": 0.04360201984016968,
      "ann_ret": 0.2387412963436246,
      "flow_weight": 0.2
    },
    "weighted_0.3": {
      "sharpe": -0.4610163493461732,
      "ann_ret": -2.6561945915968725,
      "flow_weight": 0.3
    }
  },
  "recommendation": "DO NOT INTEGRATE",
  "reason": "Options flow net premium has NEGATIVE IC in OOS (-0.08 to -0.11). It is contrarian to next-day ES returns \u2014 bullish flow predicts lower prices. Adding it as a risk-on component degrades RORO Sharpe monotonically from 0.97 to -0.46. The \"agree\" filter results (Sharpe 6+) are spurious \u2014 only 14-21 trading days."
}