{
  "study": "OTM Spread at ORB Touch",
  "generated_at": "2026-04-01T11:55:21.375910",
  "params": {
    "orb_window_min": 15,
    "touch_tolerance_pts": 1.0,
    "followthrough_pts": 10.0,
    "followthrough_window_min": 30,
    "otm_offsets": [
      5,
      10,
      15,
      20
    ],
    "n_trading_days": 235,
    "n_fomc_excluded": 16
  },
  "touch_summary": {
    "total_touches": 354,
    "up_touches": 178,
    "dn_touches": 176,
    "valid_followthrough": 354,
    "overall_ft_rate": 0.4265536723163842,
    "with_spread_data": 354
  },
  "results_all_expirations": {
    "label": "ALL_EXPIRATIONS",
    "n": 354,
    "ft_rate": 0.4265536723163842,
    "median_spread_pct": 0.021973309168114484,
    "high_spread_n": 177,
    "low_spread_n": 177,
    "high_spread_ft": 0.2937853107344633,
    "low_spread_ft": 0.559322033898305,
    "chi2": 24.43689035330963,
    "chi2_p": 7.678421980697931e-07,
    "spearman_rho": -0.2612689645248845,
    "spearman_p": 6.189333835104033e-07,
    "spearman_rho_move": -0.2491253044454298,
    "spearman_p_move": 2.07768723727268e-06,
    "quintile_stats": [
      {
        "quintile": 0,
        "n": 71,
        "ft_rate": 0.5774647887323944,
        "avg_move": 19.96239436619717,
        "avg_spread": 0.010422967837084428
      },
      {
        "quintile": 1,
        "n": 71,
        "ft_rate": 0.5915492957746479,
        "avg_move": 14.896338028169044,
        "avg_spread": 0.015676765361280695
      },
      {
        "quintile": 2,
        "n": 70,
        "ft_rate": 0.35714285714285715,
        "avg_move": 9.36014285714287,
        "avg_spread": 0.02175188466594666
      },
      {
        "quintile": 3,
        "n": 71,
        "ft_rate": 0.352112676056338,
        "avg_move": 9.391830985915412,
        "avg_spread": 0.028740178911795044
      },
      {
        "quintile": 4,
        "n": 71,
        "ft_rate": 0.2535211267605634,
        "avg_move": 8.700422535211235,
        "avg_spread": 0.09077017968310955
      }
    ],
    "walk_forward_oos": {
      "train_n": 212,
      "test_n": 142,
      "train_median_spread": 0.02428128292740972,
      "is_hi_ft": 0.3018867924528302,
      "is_lo_ft": 0.4716981132075472,
      "oos_hi_ft": 0.3055555555555556,
      "oos_lo_ft": 0.5471698113207547
    },
    "direction_breakdown": {
      "n": {
        "down": 176,
        "up": 178
      },
      "ft_rate": {
        "down": 0.44886363636363635,
        "up": 0.4044943820224719
      },
      "rho": {
        "down": -0.195054078735265,
        "up": -0.3134387032946001
      },
      "rho_p": {
        "down": 0.00948079117150814,
        "up": 2.0425860751737642e-05
      }
    },
    "raw_data": [
      {
        "date": "2025-04-01",
        "direction": "up",
        "avg_spread_pct": 0.00962821467493739,
        "followed_through": 0,
        "max_move": 4.550000000000182,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 19.3,
            "ask": 19.4,
            "spread_abs": 0.09999999999999787,
            "spread_pct": 0.0051679586563306385,
            "dt_sec": 4.332823296
          },
          "10": {
            "bid": 16.8,
            "ask": 17.0,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.011834319526627177,
            "dt_sec": 0.210502656
          },
          "15": {
            "bid": 14.6,
            "ask": 14.8,
            "spread_abs": 0.20000000000000107,
            "spread_pct": 0.01360544217687082,
            "dt_sec": 3.043067392
          },
          "20": {
            "bid": 12.6,
            "ask": 12.7,
            "spread_abs": 0.09999999999999964,
            "spread_pct": 0.007905138339920922,
            "dt_sec": 4.450619648
          }
        }
      },
      {
        "date": "2025-04-01",
        "direction": "down",
        "avg_spread_pct": 0.18393698107384845,
        "followed_through": 1,
        "max_move": 24.30999999999949,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 13.3,
            "ask": 16.0,
            "spread_abs": 2.6999999999999993,
            "spread_pct": 0.18430034129692827,
            "dt_sec": 1.263180032
          },
          "10": {
            "bid": 11.8,
            "ask": 14.3,
            "spread_abs": 2.5,
            "spread_pct": 0.19157088122605362,
            "dt_sec": 0.85599872
          },
          "15": {
            "bid": 10.4,
            "ask": 12.5,
            "spread_abs": 2.0999999999999996,
            "spread_pct": 0.1834061135371179,
            "dt_sec": 0.021409024
          },
          "20": {
            "bid": 9.3,
            "ask": 11.1,
            "spread_abs": 1.799999999999999,
            "spread_pct": 0.17647058823529402,
            "dt_sec": 5.48500736
          }
        }
      },
      {
        "date": "2025-04-02",
        "direction": "up",
        "avg_spread_pct": 0.010531978462911958,
        "followed_through": 1,
        "max_move": 15.960000000000036,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 22.9,
            "ask": 23.1,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.008695652173913167,
            "dt_sec": 0.4814912
          },
          "10": {
            "bid": 20.3,
            "ask": 20.5,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.009803921568627416,
            "dt_sec": 0.71246208
          },
          "15": {
            "bid": 18.0,
            "ask": 18.2,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.011049723756906037,
            "dt_sec": 0.6927104
          },
          "20": {
            "bid": 15.8,
            "ask": 16.0,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.012578616352201213,
            "dt_sec": 0.692148736
          }
        }
      },
      {
        "date": "2025-04-03",
        "direction": "down",
        "avg_spread_pct": 0.009838093311087735,
        "followed_through": 1,
        "max_move": 38.88000000000011,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 31.2,
            "ask": 31.5,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.009569377990430644,
            "dt_sec": 1.513325568
          },
          "10": {
            "bid": 28.8,
            "ask": 29.1,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.010362694300518158,
            "dt_sec": 0.164261632
          },
          "15": {
            "bid": 26.5,
            "ask": 26.8,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.011257035647279577,
            "dt_sec": 11.867631104
          },
          "20": {
            "bid": 24.4,
            "ask": 24.6,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.008163265306122564,
            "dt_sec": 0.261397504
          }
        }
      },
      {
        "date": "2025-04-04",
        "direction": "down",
        "avg_spread_pct": 0.007954140490108324,
        "followed_through": 1,
        "max_move": 45.35999999999967,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 30.8,
            "ask": 31.1,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.009693053311793237,
            "dt_sec": 5.064098048
          },
          "10": {
            "bid": 28.9,
            "ask": 29.1,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.006896551724138029,
            "dt_sec": 3.313322496
          },
          "15": {
            "bid": 27.1,
            "ask": 27.3,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.007352941176470561,
            "dt_sec": 0.914788096
          },
          "20": {
            "bid": 25.3,
            "ask": 25.5,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.007874015748031468,
            "dt_sec": 2.54720384
          }
        }
      }
    ]
  },
  "results_0dte": {
    "label": "0DTE_ONLY",
    "n": 354,
    "ft_rate": 0.4265536723163842,
    "median_spread_pct": 0.021973309168114484,
    "high_spread_n": 177,
    "low_spread_n": 177,
    "high_spread_ft": 0.2937853107344633,
    "low_spread_ft": 0.559322033898305,
    "chi2": 24.43689035330963,
    "chi2_p": 7.678421980697931e-07,
    "spearman_rho": -0.2597598700672587,
    "spearman_p": 7.218684578609427e-07,
    "spearman_rho_move": -0.24899816698921348,
    "spearman_p_move": 2.1035159723948175e-06,
    "quintile_stats": [
      {
        "quintile": 0,
        "n": 71,
        "ft_rate": 0.5774647887323944,
        "avg_move": 19.96239436619717,
        "avg_spread": 0.010422967837084428
      },
      {
        "quintile": 1,
        "n": 71,
        "ft_rate": 0.5915492957746479,
        "avg_move": 14.919154929577493,
        "avg_spread": 0.015736557314912483
      },
      {
        "quintile": 2,
        "n": 70,
        "ft_rate": 0.35714285714285715,
        "avg_move": 9.337000000000016,
        "avg_spread": 0.0217666117148352
      },
      {
        "quintile": 3,
        "n": 71,
        "ft_rate": 0.352112676056338,
        "avg_move": 9.391830985915412,
        "avg_spread": 0.028740178911795044
      },
      {
        "quintile": 4,
        "n": 71,
        "ft_rate": 0.2535211267605634,
        "avg_move": 8.700422535211235,
        "avg_spread": 0.09077017968310955
      }
    ],
    "walk_forward_oos": {
      "train_n": 212,
      "test_n": 142,
      "train_median_spread": 0.02428128292740972,
      "is_hi_ft": 0.3018867924528302,
      "is_lo_ft": 0.4716981132075472,
      "oos_hi_ft": 0.3055555555555556,
      "oos_lo_ft": 0.5471698113207547
    },
    "direction_breakdown": {
      "n": {
        "down": 176,
        "up": 178
      },
      "ft_rate": {
        "down": 0.44886363636363635,
        "up": 0.4044943820224719
      },
      "rho": {
        "down": -0.195054078735265,
        "up": -0.3107654520937933
      },
      "rho_p": {
        "down": 0.00948079117150814,
        "up": 2.422187630461494e-05
      }
    },
    "raw_data": [
      {
        "date": "2025-04-01",
        "direction": "up",
        "avg_spread_pct": 0.00962821467493739,
        "followed_through": 0,
        "max_move": 4.550000000000182,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 19.3,
            "ask": 19.4,
            "spread_abs": 0.09999999999999787,
            "spread_pct": 0.0051679586563306385,
            "dt_sec": 4.332823296
          },
          "10": {
            "bid": 16.8,
            "ask": 17.0,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.011834319526627177,
            "dt_sec": 0.210502656
          },
          "15": {
            "bid": 14.6,
            "ask": 14.8,
            "spread_abs": 0.20000000000000107,
            "spread_pct": 0.01360544217687082,
            "dt_sec": 3.043067392
          },
          "20": {
            "bid": 12.6,
            "ask": 12.7,
            "spread_abs": 0.09999999999999964,
            "spread_pct": 0.007905138339920922,
            "dt_sec": 4.450619648
          }
        }
      },
      {
        "date": "2025-04-01",
        "direction": "down",
        "avg_spread_pct": 0.18393698107384845,
        "followed_through": 1,
        "max_move": 24.30999999999949,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 13.3,
            "ask": 16.0,
            "spread_abs": 2.6999999999999993,
            "spread_pct": 0.18430034129692827,
            "dt_sec": 1.263180032
          },
          "10": {
            "bid": 11.8,
            "ask": 14.3,
            "spread_abs": 2.5,
            "spread_pct": 0.19157088122605362,
            "dt_sec": 0.85599872
          },
          "15": {
            "bid": 10.4,
            "ask": 12.5,
            "spread_abs": 2.0999999999999996,
            "spread_pct": 0.1834061135371179,
            "dt_sec": 0.021409024
          },
          "20": {
            "bid": 9.3,
            "ask": 11.1,
            "spread_abs": 1.799999999999999,
            "spread_pct": 0.17647058823529402,
            "dt_sec": 5.48500736
          }
        }
      },
      {
        "date": "2025-04-02",
        "direction": "up",
        "avg_spread_pct": 0.010531978462911958,
        "followed_through": 1,
        "max_move": 15.960000000000036,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 22.9,
            "ask": 23.1,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.008695652173913167,
            "dt_sec": 0.4814912
          },
          "10": {
            "bid": 20.3,
            "ask": 20.5,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.009803921568627416,
            "dt_sec": 0.71246208
          },
          "15": {
            "bid": 18.0,
            "ask": 18.2,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.011049723756906037,
            "dt_sec": 0.6927104
          },
          "20": {
            "bid": 15.8,
            "ask": 16.0,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.012578616352201213,
            "dt_sec": 0.692148736
          }
        }
      },
      {
        "date": "2025-04-03",
        "direction": "down",
        "avg_spread_pct": 0.009838093311087735,
        "followed_through": 1,
        "max_move": 38.88000000000011,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 31.2,
            "ask": 31.5,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.009569377990430644,
            "dt_sec": 1.513325568
          },
          "10": {
            "bid": 28.8,
            "ask": 29.1,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.010362694300518158,
            "dt_sec": 0.164261632
          },
          "15": {
            "bid": 26.5,
            "ask": 26.8,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.011257035647279577,
            "dt_sec": 11.867631104
          },
          "20": {
            "bid": 24.4,
            "ask": 24.6,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.008163265306122564,
            "dt_sec": 0.261397504
          }
        }
      },
      {
        "date": "2025-04-04",
        "direction": "down",
        "avg_spread_pct": 0.007954140490108324,
        "followed_through": 1,
        "max_move": 45.35999999999967,
        "n_offsets": 4,
        "spreads": {
          "5": {
            "bid": 30.8,
            "ask": 31.1,
            "spread_abs": 0.3000000000000007,
            "spread_pct": 0.009693053311793237,
            "dt_sec": 5.064098048
          },
          "10": {
            "bid": 28.9,
            "ask": 29.1,
            "spread_abs": 0.20000000000000284,
            "spread_pct": 0.006896551724138029,
            "dt_sec": 3.313322496
          },
          "15": {
            "bid": 27.1,
            "ask": 27.3,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.007352941176470561,
            "dt_sec": 0.914788096
          },
          "20": {
            "bid": 25.3,
            "ask": 25.5,
            "spread_abs": 0.1999999999999993,
            "spread_pct": 0.007874015748031468,
            "dt_sec": 2.54720384
          }
        }
      }
    ]
  },
  "signal_all_exp": "REVERSE_SIGNAL",
  "signal_0dte": "REVERSE_SIGNAL",
  "interpretation": "Signal is DEAD \u2014 OTM spread at ORB touch does not predict follow-through"
}