{
  "metadata": {
    "generated": "2026-04-01T10:02:10.801507",
    "total_trading_days": 243,
    "es_daily_days": 233,
    "cbbo_files_processed": 12
  },
  "part_a_intraday_spread_remaining_range": {
    "10:00": {
      "n": 233,
      "spearman_rho": 0.4399779177729667,
      "p_value": 1.8905104845221705e-12,
      "quintile_remaining_range": {
        "0": 41.9811320754717,
        "1": 55.170212765957444,
        "2": 57.5625,
        "3": 62.3563829787234,
        "4": 104.47826086956522
      },
      "mean_spread": 0.5760729613733903,
      "mean_remain": 63.76502145922747
    },
    "10:30": {
      "n": 233,
      "spearman_rho": 0.518619966073233,
      "p_value": 1.9258901734417238e-17,
      "quintile_remaining_range": {
        "0": 39.202127659574465,
        "1": 39.54891304347826,
        "2": 48.59905660377358,
        "3": 64.68604651162791,
        "4": 102.64204545454545
      },
      "mean_spread": 0.518454935622317,
      "mean_remain": 58.0912017167382
    },
    "11:00": {
      "n": 233,
      "spearman_rho": 0.5214533313272768,
      "p_value": 1.2014924051181474e-17,
      "quintile_remaining_range": {
        "0": 37.287234042553195,
        "1": 35.02717391304348,
        "2": 46.453125,
        "3": 50.82222222222222,
        "4": 96.75
      },
      "mean_spread": 0.5167381974248928,
      "mean_remain": 53.337982832618025
    },
    "12:00": {
      "n": 233,
      "spearman_rho": 0.49770289191211103,
      "p_value": 5.493234149580932e-16,
      "quintile_remaining_range": {
        "0": 30.71276595744681,
        "1": 32.25,
        "2": 39.567708333333336,
        "3": 47.9593023255814,
        "4": 84.7215909090909
      },
      "mean_spread": 0.491845493562232,
      "mean_remain": 46.25536480686695
    },
    "13:00": {
      "n": 233,
      "spearman_rho": 0.500431167976223,
      "p_value": 3.594397153313248e-16,
      "quintile_remaining_range": {
        "0": 29.255,
        "1": 26.18617021276596,
        "2": 30.305555555555557,
        "3": 40.704081632653065,
        "4": 81.58333333333333
      },
      "mean_spread": 0.5123390557939913,
      "mean_remain": 40.67918454935622
    },
    "14:00": {
      "n": 233,
      "spearman_rho": 0.6502385099315544,
      "p_value": 2.16966927573547e-29,
      "quintile_remaining_range": {
        "0": 20.27127659574468,
        "1": 18.79255319148936,
        "2": 23.891304347826086,
        "3": 40.03804347826087,
        "4": 57.941489361702125
      },
      "mean_spread": 0.5449570815450645,
      "mean_remain": 32.18884120171674
    },
    "15:00": {
      "n": 233,
      "spearman_rho": 0.6800203501735118,
      "p_value": 5.6294186468502354e-33,
      "quintile_remaining_range": {
        "0": 14.601063829787234,
        "1": 13.668478260869565,
        "2": 20.18617021276596,
        "3": 29.51086956521739,
        "4": 45.12765957446808
      },
      "mean_spread": 0.5166309012875536,
      "mean_remain": 24.644849785407725
    }
  },
  "part_b_direction_signals": {
    "B1_velocity": {
      "n": 0,
      "error": "insufficient data"
    },
    "B2_skew_all": {
      "n": 233,
      "spearman_rho": -0.0517620227224518,
      "p_value": 0.43163844074136426,
      "interpretation": "positive skew (put_spread > call_spread) \u2192 DOWN day expected",
      "walk_forward": {
        "train": {
          "n": 139,
          "rho": -0.09978114175906708,
          "p": 0.24252520407720152
        },
        "test": {
          "n": 94,
          "rho": 0.03867237837859352,
          "p": 0.7113345132129649
        }
      }
    },
    "B3_skew_0dte": {
      "n": 233,
      "spearman_rho": -0.03373578823822151,
      "p_value": 0.6084194767383968,
      "interpretation": "0DTE put skew \u2192 DOWN day expected",
      "walk_forward": {
        "train": {
          "n": 139,
          "rho": -0.044176479114965105,
          "p": 0.605587654357901
        },
        "test": {
          "n": 94,
          "rho": -0.017086112560464453,
          "p": 0.8701629952295742
        }
      }
    },
    "B4_0dte_ratio_direction": {
      "n": 233,
      "spearman_rho": 0.022830145943701974,
      "p_value": 0.7288482312424984,
      "interpretation": "0DTE/multi ratio vs direction (ratio predicts range per prior study)",
      "walk_forward": {
        "train": {
          "n": 139,
          "rho": 0.03411699649834544,
          "p": 0.6901015133834416
        },
        "test": {
          "n": 94,
          "rho": -0.02944810097624869,
          "p": 0.7781345002319233
        }
      }
    },
    "B5_spread_vix_disagree": {
      "n": 223,
      "spread_vs_ret": {
        "rho": 0.06794056490070977,
        "p": 0.312478623171526
      },
      "vix_vs_ret": {
        "rho": -0.025722823739096224,
        "p": 0.7024404730811062
      },
      "disagreement_vs_ret": {
        "rho": 0.07866578942812126,
        "p": 0.24202397563364225
      },
      "wide_spread_low_vix": {
        "n": 35,
        "mean_ret": 0.00019946237921851173,
        "win_rate": 0.5428571428571428
      },
      "tight_spread_high_vix": {
        "n": 34,
        "mean_ret": -0.001055890239412496,
        "win_rate": 0.47058823529411764
      },
      "walk_forward": {
        "train": {
          "n": 133,
          "rho": 0.03203395190826455,
          "p": 0.7143350038361975
        },
        "test": {
          "n": 90,
          "rho": 0.17502572334033006,
          "p": 0.09894447344296253
        }
      }
    }
  },
  "part_c_growth_combo": {
    "2_factor_growth_hyg": {
      "n": 68,
      "win_rate": 0.5,
      "mean_ret": -0.001181874303595761,
      "null_test_p": 0.5826,
      "walk_forward": {
        "train_n": 40,
        "train_win_rate": 0.475,
        "test_n": 28,
        "test_win_rate": 0.5357142857142857
      }
    },
    "4_factor_all": {
      "n": 17,
      "win_rate": 0.7647058823529411,
      "mean_ret": 0.0046413443231442765,
      "null_test_p": 0.0238,
      "walk_forward": {
        "train_n": 10,
        "train_win_rate": 0.8,
        "test_n": 7,
        "test_win_rate": 0.7142857142857143
      }
    },
    "growth_green_only": {
      "n": 96,
      "win_rate": 0.5104166666666666,
      "mean_ret": -0.00044207065364898376,
      "null_test_p": 0.4822,
      "walk_forward": {
        "train_n": 57,
        "train_win_rate": 0.49122807017543857,
        "test_n": 39,
        "test_win_rate": 0.5384615384615384
      }
    },
    "overall_baseline": {
      "n": 233,
      "win_rate": 0.5021459227467812,
      "mean_ret": 0.0004033135818020827
    }
  }
}