════════════════════════════════════════════════════════════
 Directional accuracy: Matrix vs Gap-only vs MoS-only 
 Predictions: +1 outperform / −1 underperform vs SPY
 Bands: Gap ±3pp neutral, MoS ±20% neutral
════════════════════════════════════════════════════════════

 horizon  classifier       n   hits    acc          95% CI   p (binomial)
      1yr  Matrix         278    143    51%  [ 46%,  57%]      0.3373 
      1yr  Gap-only       328    175    53%  [ 48%,  59%]      0.1231 
      1yr  MoS-only       333    175    53%  [ 47%,  58%]      0.1903 

      3yr  Matrix         236    128    54%  [ 48%,  61%]      0.1080 
      3yr  Gap-only       278    155    56%  [ 50%,  62%]      0.0314 **
      3yr  MoS-only       288    149    52%  [ 46%,  58%]      0.2980 

      5yr  Matrix         185    104    56%  [ 49%,  63%]      0.0528 *
      5yr  Gap-only       219    126    58%  [ 51%,  64%]      0.0152 **
      5yr  MoS-only       227    114    50%  [ 44%,  57%]      0.5000 

      7yr  Matrix         139     75    54%  [ 45%,  62%]      0.1982 
      7yr  Gap-only       166     93    56%  [ 49%,  63%]      0.0700 *
      7yr  MoS-only       175     91    52%  [ 45%,  59%]      0.3251 

════════════════════════════════════════════════════════════
 Pairwise bootstrap diff tests (H₀: ref classifier ≥ alt)
 p < 0.05 ⇒ the alt classifier is significantly more accurate
════════════════════════════════════════════════════════════

  1-year horizon:
    Matrix     vs Gap-only  : Δ  -1.9pp accuracy, p = 0.686
    Matrix     vs MoS-only  : Δ  -1.1pp accuracy, p = 0.611
    Gap-only   vs MoS-only  : Δ  +0.8pp accuracy, p = 0.417
    MoS-only   vs Gap-only  : Δ  -0.8pp accuracy, p = 0.578

  3-year horizon:
    Matrix     vs Gap-only  : Δ  -1.5pp accuracy, p = 0.642
    Matrix     vs MoS-only  : Δ  +2.5pp accuracy, p = 0.289
    Gap-only   vs MoS-only  : Δ  +4.0pp accuracy, p = 0.160
    MoS-only   vs Gap-only  : Δ  -4.0pp accuracy, p = 0.844

  5-year horizon:
    Matrix     vs Gap-only  : Δ  -1.3pp accuracy, p = 0.596
    Matrix     vs MoS-only  : Δ  +6.0pp accuracy, p = 0.113
    Gap-only   vs MoS-only  : Δ  +7.3pp accuracy, p = 0.058
    MoS-only   vs Gap-only  : Δ  -7.3pp accuracy, p = 0.941

  7-year horizon:
    Matrix     vs Gap-only  : Δ  -2.1pp accuracy, p = 0.649
    Matrix     vs MoS-only  : Δ  +2.0pp accuracy, p = 0.360
    Gap-only   vs MoS-only  : Δ  +4.0pp accuracy, p = 0.226
    MoS-only   vs Gap-only  : Δ  -4.0pp accuracy, p = 0.771

════════════════════════════════════════════════════════════
 Split by signal direction (long-side vs short-side) at 5y
════════════════════════════════════════════════════════════

  1-year horizon:
    Matrix      long  49/90 ( 54%, p=0.230)   short 94/188 ( 50%, p=0.529)
    Gap-only    long  62/109 ( 57%, p=0.090)   short 113/219 ( 52%, p=0.343)
    MoS-only    long  78/148 ( 53%, p=0.283)   short 97/185 ( 52%, p=0.278)

  5-year horizon:
    Matrix      long  41/68 ( 60%, p=0.057)   short 63/117 ( 54%, p=0.230)
    Gap-only    long  53/83 ( 64%, p=0.008)   short 73/136 ( 54%, p=0.220)
    MoS-only    long  51/99 ( 52%, p=0.420)   short 63/128 ( 49%, p=0.604)

  7-year horizon:
    Matrix      long  30/56 ( 54%, p=0.344)   short 45/83 ( 54%, p=0.255)
    Gap-only    long  42/71 ( 59%, p=0.077)   short 51/95 ( 54%, p=0.269)
    MoS-only    long  38/76 ( 50%, p=0.546)   short 53/99 ( 54%, p=0.273)

Legend: *** p<0.01, ** p<0.05, * p<0.10
