{
  "method": {
    "p_grid": [
      0.55,
      0.56,
      0.57,
      0.58,
      0.6,
      0.62,
      0.65
    ],
    "min_n_select": 300,
    "min_n_explore": 100,
    "min_n_strong": 200,
    "max_losing_months": 0,
    "max_additions": 4,
    "holdout_fraction": 0.3,
    "targets": [
      0.65,
      0.7,
      0.75,
      0.8,
      0.85
    ],
    "selection_criterion": "Wilson 95% lower bound (not point win rate)",
    "price_bands": [
      0.5,
      0.52,
      0.55,
      0.58
    ],
    "symbol_holdout": "not possible - single symbol BTCUSDT"
  },
  "timeframes": {
    "5m": {
      "timeframe": "5m",
      "oof_n": 80603,
      "baseline": {
        "p_threshold": 0.55,
        "select": {
          "label": "p>=0.55 core",
          "n": 4708,
          "win_rate": 0.5612,
          "ci95": [
            0.547,
            0.5753
          ],
          "ci95_low": 0.547,
          "ev_per_trade": {
            "at_0.50": 0.0612,
            "at_0.52": 0.0412,
            "at_0.55": 0.0112,
            "at_0.58": -0.0188
          },
          "roi_pct": {
            "at_0.50": 12.23,
            "at_0.52": 7.92,
            "at_0.55": 2.03,
            "at_0.58": -3.25
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "holdout": {
          "label": "base",
          "n": 2843,
          "win_rate": 0.5543,
          "ci95": [
            0.536,
            0.5725
          ],
          "ci95_low": 0.536,
          "ev_per_trade": {
            "at_0.50": 0.0543,
            "at_0.52": 0.0343,
            "at_0.55": 0.0043,
            "at_0.58": -0.0257
          },
          "roi_pct": {
            "at_0.50": 10.87,
            "at_0.52": 6.6,
            "at_0.55": 0.79,
            "at_0.58": -4.42
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        }
      },
      "core": {
        "chosen": {
          "threshold": 0.58,
          "n": 357,
          "wr": 0.5686274509803921,
          "wilson_lo": 0.5167896007793117,
          "wilson_hi": 0.619004054941093,
          "losing_months": 0,
          "months_seen": 8,
          "min_month_wr": 0.5238,
          "folds": [
            {
              "fold": 0,
              "n": 140,
              "wr": 0.5571
            },
            {
              "fold": 1,
              "n": 72,
              "wr": 0.5972
            },
            {
              "fold": 2,
              "n": 39,
              "wr": 0.6154
            },
            {
              "fold": 3,
              "n": 106,
              "wr": 0.5472
            }
          ],
          "folds_voting": 4,
          "worst_fold": 0.5472,
          "fold_consistent": true
        },
        "grid": [
          {
            "threshold": 0.55,
            "n": 4708,
            "wr": 0.5611724723874256,
            "wilson_lo": 0.5469529673050735,
            "wilson_hi": 0.5752922287134004,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5375,
            "folds": [
              {
                "fold": 0,
                "n": 953,
                "wr": 0.5404
              },
              {
                "fold": 1,
                "n": 1052,
                "wr": 0.5618
              },
              {
                "fold": 2,
                "n": 1092,
                "wr": 0.598
              },
              {
                "fold": 3,
                "n": 1611,
                "wr": 0.5481
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5404,
            "fold_consistent": true
          },
          {
            "threshold": 0.56,
            "n": 1760,
            "wr": 0.5602272727272727,
            "wilson_lo": 0.536931248192062,
            "wilson_hi": 0.5832609504724892,
            "losing_months": 1,
            "months_seen": 8,
            "min_month_wr": 0.4,
            "folds": [
              {
                "fold": 0,
                "n": 450,
                "wr": 0.5111
              },
              {
                "fold": 1,
                "n": 389,
                "wr": 0.6041
              },
              {
                "fold": 2,
                "n": 304,
                "wr": 0.5822
              },
              {
                "fold": 3,
                "n": 617,
                "wr": 0.5575
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5111,
            "fold_consistent": true
          },
          {
            "threshold": 0.57,
            "n": 756,
            "wr": 0.5621693121693122,
            "wilson_lo": 0.5265774449499105,
            "wilson_hi": 0.597132549343637,
            "losing_months": 1,
            "months_seen": 8,
            "min_month_wr": 0.4773,
            "folds": [
              {
                "fold": 0,
                "n": 244,
                "wr": 0.5369
              },
              {
                "fold": 1,
                "n": 166,
                "wr": 0.5783
              },
              {
                "fold": 2,
                "n": 105,
                "wr": 0.5714
              },
              {
                "fold": 3,
                "n": 241,
                "wr": 0.5726
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5369,
            "fold_consistent": true
          },
          {
            "threshold": 0.58,
            "n": 357,
            "wr": 0.5686274509803921,
            "wilson_lo": 0.5167896007793117,
            "wilson_hi": 0.619004054941093,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5238,
            "folds": [
              {
                "fold": 0,
                "n": 140,
                "wr": 0.5571
              },
              {
                "fold": 1,
                "n": 72,
                "wr": 0.5972
              },
              {
                "fold": 2,
                "n": 39,
                "wr": 0.6154
              },
              {
                "fold": 3,
                "n": 106,
                "wr": 0.5472
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5472,
            "fold_consistent": true
          },
          {
            "threshold": 0.6,
            "n": 113,
            "wr": 0.6106194690265486,
            "wilson_lo": 0.5184918947129463,
            "wilson_hi": 0.6954729945045927,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.619,
            "folds": [
              {
                "fold": 0,
                "n": 54,
                "wr": 0.6296
              },
              {
                "fold": 1,
                "n": 21,
                "wr": 0.5714
              },
              {
                "fold": 2,
                "n": 13,
                "wr": 0.6923
              },
              {
                "fold": 3,
                "n": 25,
                "wr": 0.56
              }
            ],
            "folds_voting": 2,
            "worst_fold": 0.56,
            "fold_consistent": false
          },
          {
            "threshold": 0.62,
            "n": 43,
            "wr": 0.6511627906976745,
            "wilson_lo": 0.501715070970981,
            "wilson_hi": 0.775816012510369,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.7,
            "folds": [
              {
                "fold": 0,
                "n": 21,
                "wr": 0.6667
              },
              {
                "fold": 1,
                "n": 8,
                "wr": 0.5
              },
              {
                "fold": 2,
                "n": 4,
                "wr": 0.75
              },
              {
                "fold": 3,
                "n": 10,
                "wr": 0.7
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          {
            "threshold": 0.65,
            "n": 15,
            "wr": 0.7333333333333333,
            "wilson_lo": 0.4804911034231324,
            "wilson_hi": 0.8910272389681718,
            "losing_months": 0,
            "months_seen": 6,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 10,
                "wr": 0.7
              },
              {
                "fold": 1,
                "n": 1,
                "wr": 1.0
              },
              {
                "fold": 2,
                "n": 1,
                "wr": 1.0
              },
              {
                "fold": 3,
                "n": 3,
                "wr": 0.6667
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          }
        ]
      },
      "forward": {
        "name": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep",
        "steps": [
          {
            "condition": "rsi_reversion",
            "family": "PRICE_STATE",
            "n": 291,
            "wr": 0.5842,
            "worst_fold": 0.5698,
            "wilson_lo": 0.5268,
            "folds": [
              {
                "fold": 0,
                "n": 111,
                "wr": 0.5766
              },
              {
                "fold": 1,
                "n": 58,
                "wr": 0.6207
              },
              {
                "fold": 2,
                "n": 36,
                "wr": 0.5833
              },
              {
                "fold": 3,
                "n": 86,
                "wr": 0.5698
              }
            ]
          },
          {
            "condition": "flow_deviates_opposite",
            "family": "FLOW",
            "n": 253,
            "wr": 0.6047,
            "worst_fold": 0.5921,
            "wilson_lo": 0.5434,
            "folds": [
              {
                "fold": 0,
                "n": 97,
                "wr": 0.5979
              },
              {
                "fold": 1,
                "n": 50,
                "wr": 0.6
              },
              {
                "fold": 2,
                "n": 30,
                "wr": 0.6667
              },
              {
                "fold": 3,
                "n": 76,
                "wr": 0.5921
              }
            ]
          },
          {
            "condition": "no_sweep",
            "family": "SWEEP",
            "n": 247,
            "wr": 0.6073,
            "worst_fold": 0.6,
            "wilson_lo": 0.5452,
            "folds": [
              {
                "fold": 0,
                "n": 93,
                "wr": 0.6022
              },
              {
                "fold": 1,
                "n": 50,
                "wr": 0.6
              },
              {
                "fold": 2,
                "n": 29,
                "wr": 0.6552
              },
              {
                "fold": 3,
                "n": 75,
                "wr": 0.6
              }
            ]
          }
        ],
        "families": [
          "FLOW",
          "PRICE_STATE",
          "SWEEP"
        ],
        "candidates_evaluated": 196
      },
      "tier": {
        "select": {
          "label": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep [SELECT]",
          "n": 247,
          "win_rate": 0.6073,
          "ci95": [
            0.5452,
            0.6661
          ],
          "ci95_low": 0.5452,
          "ev_per_trade": {
            "at_0.50": 0.1073,
            "at_0.52": 0.0873,
            "at_0.55": 0.0573,
            "at_0.58": 0.0273
          },
          "roi_pct": {
            "at_0.50": 21.46,
            "at_0.52": 16.79,
            "at_0.55": 10.42,
            "at_0.58": 4.7
          },
          "removed_vs_base": {
            "trades": 4461,
            "losers": 1969,
            "winners": 2492,
            "winner_retention": 0.0568,
            "loser_rejection": 0.953
          }
        },
        "holdout": {
          "label": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep [HOLDOUT]",
          "n": 95,
          "win_rate": 0.5895,
          "ci95": [
            0.489,
            0.683
          ],
          "ci95_low": 0.489,
          "ev_per_trade": {
            "at_0.50": 0.0895,
            "at_0.52": 0.0695,
            "at_0.55": 0.0395,
            "at_0.58": 0.0095
          },
          "roi_pct": {
            "at_0.50": 17.89,
            "at_0.52": 13.36,
            "at_0.55": 7.18,
            "at_0.58": 1.63
          },
          "removed_vs_base": {
            "trades": 2748,
            "losers": 1228,
            "winners": 1520,
            "winner_retention": 0.0355,
            "loser_rejection": 0.9692
          }
        },
        "all_oof": {
          "label": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep [ALL OOF]",
          "n": 342,
          "win_rate": 0.6023,
          "ci95": [
            0.5496,
            0.6528
          ],
          "ci95_low": 0.5496,
          "ev_per_trade": {
            "at_0.50": 0.1023,
            "at_0.52": 0.0823,
            "at_0.55": 0.0523,
            "at_0.58": 0.0223
          },
          "roi_pct": {
            "at_0.50": 20.47,
            "at_0.52": 15.83,
            "at_0.55": 9.52,
            "at_0.58": 3.85
          },
          "removed_vs_base": {
            "trades": 7209,
            "losers": 3197,
            "winners": 4012,
            "winner_retention": 0.0488,
            "loser_rejection": 0.9592
          }
        },
        "folds": [
          {
            "fold": 0,
            "n": 93,
            "wr": 0.6022
          },
          {
            "fold": 1,
            "n": 50,
            "wr": 0.6
          },
          {
            "fold": 2,
            "n": 29,
            "wr": 0.6552
          },
          {
            "fold": 3,
            "n": 75,
            "wr": 0.6
          }
        ]
      },
      "reference_rules": {
        "published 5m rule": {
          "select": {
            "n": 861,
            "wr": 0.5876887340301974,
            "wilson_lo": 0.5544893408089414,
            "wilson_hi": 0.6201091058892746,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5556,
            "folds": [
              {
                "fold": 0,
                "n": 201,
                "wr": 0.597
              },
              {
                "fold": 1,
                "n": 221,
                "wr": 0.5566
              },
              {
                "fold": 2,
                "n": 186,
                "wr": 0.6237
              },
              {
                "fold": 3,
                "n": 253,
                "wr": 0.581
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5566,
            "fold_consistent": true
          },
          "holdout": {
            "label": "published 5m rule",
            "n": 393,
            "win_rate": 0.6183,
            "ci95": [
              0.5694,
              0.665
            ],
            "ci95_low": 0.5694,
            "ev_per_trade": {
              "at_0.50": 0.1183,
              "at_0.52": 0.0983,
              "at_0.55": 0.0683,
              "at_0.58": 0.0383
            },
            "roi_pct": {
              "at_0.50": 23.66,
              "at_0.52": 18.91,
              "at_0.55": 12.42,
              "at_0.58": 6.61
            },
            "removed_vs_base": {
              "trades": 2450,
              "losers": 1117,
              "winners": 1333,
              "winner_retention": 0.1542,
              "loser_rejection": 0.8816
            }
          },
          "all_oof": {
            "label": "published 5m rule",
            "n": 1254,
            "win_rate": 0.5973,
            "ci95": [
              0.5699,
              0.6241
            ],
            "ci95_low": 0.5699,
            "ev_per_trade": {
              "at_0.50": 0.0973,
              "at_0.52": 0.0773,
              "at_0.55": 0.0473,
              "at_0.58": 0.0173
            },
            "roi_pct": {
              "at_0.50": 19.46,
              "at_0.52": 14.86,
              "at_0.55": 8.6,
              "at_0.58": 2.98
            },
            "removed_vs_base": {
              "trades": 6297,
              "losers": 2828,
              "winners": 3469,
              "winner_retention": 0.1776,
              "loser_rejection": 0.8485
            }
          }
        },
        "published 15m rule": {
          "select": {
            "n": 405,
            "wr": 0.5506172839506173,
            "wilson_lo": 0.501921051865673,
            "wilson_hi": 0.5983622852507066,
            "losing_months": 3,
            "months_seen": 8,
            "min_month_wr": 0.4783,
            "folds": [
              {
                "fold": 0,
                "n": 68,
                "wr": 0.5735
              },
              {
                "fold": 1,
                "n": 98,
                "wr": 0.4796
              },
              {
                "fold": 2,
                "n": 92,
                "wr": 0.6304
              },
              {
                "fold": 3,
                "n": 147,
                "wr": 0.5374
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.4796,
            "fold_consistent": false
          },
          "holdout": {
            "label": "published 15m rule",
            "n": 195,
            "win_rate": 0.5949,
            "ci95": [
              0.5248,
              0.6613
            ],
            "ci95_low": 0.5248,
            "ev_per_trade": {
              "at_0.50": 0.0949,
              "at_0.52": 0.0749,
              "at_0.55": 0.0449,
              "at_0.58": 0.0149
            },
            "roi_pct": {
              "at_0.50": 18.97,
              "at_0.52": 14.4,
              "at_0.55": 8.16,
              "at_0.58": 2.56
            },
            "removed_vs_base": {
              "trades": 2648,
              "losers": 1188,
              "winners": 1460,
              "winner_retention": 0.0736,
              "loser_rejection": 0.9376
            }
          },
          "all_oof": {
            "label": "published 15m rule",
            "n": 600,
            "win_rate": 0.565,
            "ci95": [
              0.525,
              0.6041
            ],
            "ci95_low": 0.525,
            "ev_per_trade": {
              "at_0.50": 0.065,
              "at_0.52": 0.045,
              "at_0.55": 0.015,
              "at_0.58": -0.015
            },
            "roi_pct": {
              "at_0.50": 13.0,
              "at_0.52": 8.65,
              "at_0.55": 2.73,
              "at_0.58": -2.59
            },
            "removed_vs_base": {
              "trades": 6951,
              "losers": 3072,
              "winners": 3879,
              "winner_retention": 0.0804,
              "loser_rejection": 0.9217
            }
          }
        }
      },
      "walk_forward": {
        "blocks": [
          {
            "block": 1,
            "train_through": 0.5,
            "rule": "p>=0.55 & vol_hot & flow_opposite & rsi_reversion & no_sweep",
            "select_n": 2945,
            "select_wr": 0.5677,
            "select_worst_fold": 0.5388,
            "n": 73,
            "wins": 41,
            "win_rate": 0.5616,
            "ci95": [
              0.4476,
              0.6695
            ]
          },
          {
            "block": 2,
            "train_through": 0.6,
            "rule": "p>=0.55 & flow_opposite & vol_hot & traj_reversal & rsi_reversion",
            "select_n": 3735,
            "select_wr": 0.5633,
            "select_worst_fold": 0.5486,
            "n": 99,
            "wins": 57,
            "win_rate": 0.5758,
            "ci95": [
              0.4774,
              0.6685
            ]
          },
          {
            "block": 3,
            "train_through": 0.7,
            "rule": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep",
            "select_n": 357,
            "select_wr": 0.5686,
            "select_worst_fold": 0.5472,
            "n": 24,
            "wins": 17,
            "win_rate": 0.7083,
            "ci95": [
              0.5083,
              0.8509
            ]
          },
          {
            "block": 4,
            "train_through": 0.8,
            "rule": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep",
            "select_n": 389,
            "select_wr": 0.5758,
            "select_worst_fold": 0.5588,
            "n": 39,
            "wins": 20,
            "win_rate": 0.5128,
            "ci95": [
              0.362,
              0.6614
            ]
          },
          {
            "block": 5,
            "train_through": 0.9,
            "rule": "p>=0.58 & rsi_reversion & flow_deviates_opposite & no_sweep",
            "select_n": 437,
            "select_wr": 0.5721,
            "select_worst_fold": 0.549,
            "n": 32,
            "wins": 19,
            "win_rate": 0.5938,
            "ci95": [
              0.4226,
              0.7448
            ]
          }
        ],
        "pooled_n": 267,
        "pooled_wins": 154,
        "pooled_win_rate": 0.5768,
        "pooled_ci95": [
          0.5168,
          0.6345
        ],
        "blocks_above_0.60": 1,
        "blocks_above_0.65": 1,
        "candidates_evaluated": 1692
      },
      "ladder": [
        {
          "target": 0.65,
          "reached_on_select": false
        },
        {
          "target": 0.7,
          "reached_on_select": false
        },
        {
          "target": 0.75,
          "reached_on_select": false
        },
        {
          "target": 0.8,
          "reached_on_select": false
        },
        {
          "target": 0.85,
          "reached_on_select": false
        }
      ],
      "calibration": {
        "fit_on": "select half only",
        "n_fit": 56422,
        "n_eval": 24181,
        "holdout_brier": {
          "raw": 0.25142,
          "platt": 0.24999,
          "isotonic": 0.25003
        },
        "chosen": "platt",
        "bands": [
          {
            "band": "0.50-0.55",
            "n": 21338,
            "model_p": 0.5218,
            "calibrated_p": 0.4982,
            "actual": 0.4981,
            "ci95": [
              0.4914,
              0.5048
            ],
            "raw_gap": -0.0237,
            "cal_gap": -0.0
          },
          {
            "band": "0.55-0.58",
            "n": 2726,
            "model_p": 0.5581,
            "calibrated_p": 0.4981,
            "actual": 0.474,
            "ci95": [
              0.4553,
              0.4927
            ],
            "raw_gap": -0.0841,
            "cal_gap": -0.0242
          },
          {
            "band": "0.58-0.60",
            "n": 87,
            "model_p": 0.5872,
            "calibrated_p": 0.4981,
            "actual": 0.5287,
            "ci95": [
              0.4249,
              0.6302
            ],
            "raw_gap": -0.0584,
            "cal_gap": 0.0306
          }
        ]
      },
      "stage2": {
        "meta": {
          "features": [
            "p_up",
            "p_conf",
            "flow_sided",
            "dev_sided",
            "sweep_agree",
            "flush",
            "vacuum",
            "vol_ratio_15_60",
            "atr14_pct",
            "range_pos_sided",
            "rsi_sided",
            "ret5_sided",
            "sign_flips_15",
            "trades_z_60",
            "funding_sided",
            "body_sided"
          ],
          "folds": [
            {
              "fold": 2,
              "test_n": 11284,
              "train_n": 24181,
              "C": 0.01,
              "test_from": "2026-03-17 15:05:00+00:00"
            },
            {
              "fold": 3,
              "test_n": 11285,
              "train_n": 35465,
              "C": 0.01,
              "test_from": "2026-04-25 19:25:00+00:00"
            },
            {
              "fold": 4,
              "test_n": 11284,
              "train_n": 46750,
              "C": 0.01,
              "test_from": "2026-06-03 23:50:00+00:00"
            },
            {
              "fold": 5,
              "test_n": 11285,
              "train_n": 58034,
              "C": 0.01,
              "test_from": "2026-07-13 04:10:00+00:00"
            },
            {
              "fold": 6,
              "test_n": 11284,
              "train_n": 69319,
              "C": 0.01,
              "test_from": "2026-08-21 08:35:00+00:00"
            }
          ]
        },
        "rows": [
          {
            "top_pct": 50,
            "select": {
              "n": 16121,
              "wr": 0.5429563922833571,
              "wilson_lo": 0.53525715544706,
              "wilson_hi": 0.5506351611633555,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5252
            },
            "holdout": {
              "label": "s2",
              "n": 11970,
              "win_rate": 0.5388,
              "ci95": [
                0.5298,
                0.5477
              ],
              "ci95_low": 0.5298,
              "ev_per_trade": {
                "at_0.50": 0.0388,
                "at_0.52": 0.0188,
                "at_0.55": -0.0112,
                "at_0.58": -0.0412
              },
              "roi_pct": {
                "at_0.50": 7.75,
                "at_0.52": 3.61,
                "at_0.55": -2.04,
                "at_0.58": -7.11
              },
              "removed_vs_base": {
                "trades": 9,
                "losers": 3,
                "winners": 6,
                "winner_retention": 4.092,
                "loser_rejection": 0.0024
              }
            }
          },
          {
            "top_pct": 30,
            "select": {
              "n": 9673,
              "wr": 0.5544298563010441,
              "wilson_lo": 0.5445051375191509,
              "wilson_hi": 0.5643113589707783,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.545
            },
            "holdout": {
              "label": "s2",
              "n": 7056,
              "win_rate": 0.5459,
              "ci95": [
                0.5343,
                0.5575
              ],
              "ci95_low": 0.5343,
              "ev_per_trade": {
                "at_0.50": 0.0459,
                "at_0.52": 0.0259,
                "at_0.55": -0.0041,
                "at_0.58": -0.0341
              },
              "roi_pct": {
                "at_0.50": 9.18,
                "at_0.52": 4.98,
                "at_0.55": -0.74,
                "at_0.58": -5.88
              },
              "removed_vs_base": {
                "trades": 159,
                "losers": 75,
                "winners": 84,
                "winner_retention": 2.4442,
                "loser_rejection": 0.0592
              }
            }
          },
          {
            "top_pct": 20,
            "select": {
              "n": 6449,
              "wr": 0.5662893471856102,
              "wilson_lo": 0.5541577719096357,
              "wilson_hi": 0.5783419937749893,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5548
            },
            "holdout": {
              "label": "s2",
              "n": 4583,
              "win_rate": 0.5529,
              "ci95": [
                0.5385,
                0.5673
              ],
              "ci95_low": 0.5385,
              "ev_per_trade": {
                "at_0.50": 0.0529,
                "at_0.52": 0.0329,
                "at_0.55": 0.0029,
                "at_0.58": -0.0271
              },
              "roi_pct": {
                "at_0.50": 10.58,
                "at_0.52": 6.33,
                "at_0.55": 0.53,
                "at_0.58": -4.67
              },
              "removed_vs_base": {
                "trades": 509,
                "losers": 249,
                "winners": 260,
                "winner_retention": 1.6079,
                "loser_rejection": 0.1965
              }
            }
          },
          {
            "top_pct": 10,
            "select": {
              "n": 3225,
              "wr": 0.5844961240310077,
              "wilson_lo": 0.5673967772732263,
              "wilson_hi": 0.6013944077759256,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5654
            },
            "holdout": {
              "label": "s2",
              "n": 2165,
              "win_rate": 0.5635,
              "ci95": [
                0.5425,
                0.5843
              ],
              "ci95_low": 0.5425,
              "ev_per_trade": {
                "at_0.50": 0.0635,
                "at_0.52": 0.0435,
                "at_0.55": 0.0135,
                "at_0.58": -0.0165
              },
              "roi_pct": {
                "at_0.50": 12.7,
                "at_0.52": 8.37,
                "at_0.55": 2.46,
                "at_0.58": -2.84
              },
              "removed_vs_base": {
                "trades": 1319,
                "losers": 611,
                "winners": 708,
                "winner_retention": 0.7741,
                "loser_rejection": 0.4822
              }
            }
          },
          {
            "top_pct": 5,
            "select": {
              "n": 1613,
              "wr": 0.592684438933664,
              "wilson_lo": 0.5685135356543242,
              "wilson_hi": 0.6164149075524809,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5632
            },
            "holdout": {
              "label": "s2",
              "n": 1029,
              "win_rate": 0.5685,
              "ci95": [
                0.5381,
                0.5985
              ],
              "ci95_low": 0.5381,
              "ev_per_trade": {
                "at_0.50": 0.0685,
                "at_0.52": 0.0485,
                "at_0.55": 0.0185,
                "at_0.58": -0.0115
              },
              "roi_pct": {
                "at_0.50": 13.7,
                "at_0.52": 9.33,
                "at_0.55": 3.37,
                "at_0.58": -1.98
              },
              "removed_vs_base": {
                "trades": 1979,
                "losers": 897,
                "winners": 1082,
                "winner_retention": 0.3712,
                "loser_rejection": 0.708
              }
            }
          },
          {
            "top_pct": 2,
            "select": {
              "n": 645,
              "wr": 0.5782945736434109,
              "wilson_lo": 0.5398297370849973,
              "wilson_hi": 0.6158322919834226,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5352
            },
            "holdout": {
              "label": "s2",
              "n": 381,
              "win_rate": 0.5774,
              "ci95": [
                0.5273,
                0.626
              ],
              "ci95_low": 0.5273,
              "ev_per_trade": {
                "at_0.50": 0.0774,
                "at_0.52": 0.0574,
                "at_0.55": 0.0274,
                "at_0.58": -0.0026
              },
              "roi_pct": {
                "at_0.50": 15.49,
                "at_0.52": 11.04,
                "at_0.55": 4.99,
                "at_0.58": -0.44
              },
              "removed_vs_base": {
                "trades": 2473,
                "losers": 1114,
                "winners": 1359,
                "winner_retention": 0.1396,
                "loser_rejection": 0.8792
              }
            }
          },
          {
            "top_pct": 1,
            "select": {
              "n": 323,
              "wr": 0.5510835913312694,
              "wilson_lo": 0.4965562260811407,
              "wilson_hi": 0.604410113576969,
              "losing_months": 2,
              "months_seen": 5,
              "min_month_wr": 0.4333
            },
            "holdout": {
              "label": "s2",
              "n": 207,
              "win_rate": 0.5797,
              "ci95": [
                0.5116,
                0.6449
              ],
              "ci95_low": 0.5116,
              "ev_per_trade": {
                "at_0.50": 0.0797,
                "at_0.52": 0.0597,
                "at_0.55": 0.0297,
                "at_0.58": -0.0003
              },
              "roi_pct": {
                "at_0.50": 15.94,
                "at_0.52": 11.48,
                "at_0.55": 5.4,
                "at_0.58": -0.05
              },
              "removed_vs_base": {
                "trades": 2637,
                "losers": 1181,
                "winners": 1456,
                "winner_retention": 0.0761,
                "loser_rejection": 0.9321
              }
            }
          }
        ]
      },
      "robustness": {
        "holdout_monthly": [
          {
            "month": "2026-07",
            "n": 21,
            "win_rate": 0.7143
          },
          {
            "month": "2026-08",
            "n": 42,
            "win_rate": 0.5238
          },
          {
            "month": "2026-09",
            "n": 32,
            "win_rate": 0.5938
          }
        ],
        "leave_one_month_out": [
          {
            "slice": "2026-07",
            "n": 21,
            "wr_in_slice": 0.7143,
            "wr_excluding": 0.5541
          },
          {
            "slice": "2026-08",
            "n": 42,
            "wr_in_slice": 0.5238,
            "wr_excluding": 0.6415
          },
          {
            "slice": "2026-09",
            "n": 32,
            "wr_in_slice": 0.5938,
            "wr_excluding": 0.5873
          }
        ],
        "sessions": [
          {
            "slice": "asia",
            "n": 22,
            "wr_in_slice": 0.7273,
            "wr_excluding": 0.5479
          },
          {
            "slice": "eu",
            "n": 24,
            "wr_in_slice": 0.4167,
            "wr_excluding": 0.6479
          },
          {
            "slice": "late",
            "n": 4,
            "wr_in_slice": 0.25,
            "wr_excluding": 0.6044
          },
          {
            "slice": "us",
            "n": 45,
            "wr_in_slice": 0.6444,
            "wr_excluding": 0.54
          }
        ],
        "vol_regimes": [
          {
            "regime": "mid-vol",
            "n": 20,
            "win_rate": 0.45
          },
          {
            "regime": "high-vol",
            "n": 69,
            "win_rate": 0.6087
          }
        ]
      },
      "loss_analysis": [
        {
          "family": "FLOW",
          "std_diff_winner_minus_loser": 0.335
        },
        {
          "family": "PRICE_STATE",
          "std_diff_winner_minus_loser": -0.0327
        },
        {
          "family": "VOLATILITY",
          "std_diff_winner_minus_loser": -0.1033
        },
        {
          "family": "TRAJECTORY",
          "std_diff_winner_minus_loser": 0.3622
        },
        {
          "family": "FUNDING",
          "std_diff_winner_minus_loser": -0.0225
        },
        {
          "family": "MODEL",
          "std_diff_winner_minus_loser": -0.109
        }
      ],
      "decision": "D",
      "decision_note": "no robust high-precision edge (rolling 57.7%)",
      "symbol_holdout": "NOT POSSIBLE - single symbol (BTCUSDT). A rule that cannot be shown to generalise across symbols must not be reported as an 80% model."
    },
    "15m": {
      "timeframe": "15m",
      "oof_n": 26867,
      "baseline": {
        "p_threshold": 0.55,
        "select": {
          "label": "p>=0.55 core",
          "n": 3846,
          "win_rate": 0.5762,
          "ci95": [
            0.5605,
            0.5917
          ],
          "ci95_low": 0.5605,
          "ev_per_trade": {
            "at_0.50": 0.0762,
            "at_0.52": 0.0562,
            "at_0.55": 0.0262,
            "at_0.58": -0.0038
          },
          "roi_pct": {
            "at_0.50": 15.24,
            "at_0.52": 10.8,
            "at_0.55": 4.76,
            "at_0.58": -0.66
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "holdout": {
          "label": "base",
          "n": 1984,
          "win_rate": 0.557,
          "ci95": [
            0.535,
            0.5787
          ],
          "ci95_low": 0.535,
          "ev_per_trade": {
            "at_0.50": 0.057,
            "at_0.52": 0.037,
            "at_0.55": 0.007,
            "at_0.58": -0.023
          },
          "roi_pct": {
            "at_0.50": 11.39,
            "at_0.52": 7.11,
            "at_0.55": 1.26,
            "at_0.58": -3.97
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        }
      },
      "core": {
        "chosen": {
          "threshold": 0.55,
          "n": 3846,
          "wr": 0.5761830473218928,
          "wilson_lo": 0.5604968013517292,
          "wilson_hi": 0.5917172533771718,
          "losing_months": 0,
          "months_seen": 8,
          "min_month_wr": 0.5556,
          "folds": [
            {
              "fold": 0,
              "n": 1039,
              "wr": 0.5746
            },
            {
              "fold": 1,
              "n": 835,
              "wr": 0.5737
            },
            {
              "fold": 2,
              "n": 1003,
              "wr": 0.5813
            },
            {
              "fold": 3,
              "n": 969,
              "wr": 0.5748
            }
          ],
          "folds_voting": 4,
          "worst_fold": 0.5737,
          "fold_consistent": true
        },
        "grid": [
          {
            "threshold": 0.55,
            "n": 3846,
            "wr": 0.5761830473218928,
            "wilson_lo": 0.5604968013517292,
            "wilson_hi": 0.5917172533771718,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5556,
            "folds": [
              {
                "fold": 0,
                "n": 1039,
                "wr": 0.5746
              },
              {
                "fold": 1,
                "n": 835,
                "wr": 0.5737
              },
              {
                "fold": 2,
                "n": 1003,
                "wr": 0.5813
              },
              {
                "fold": 3,
                "n": 969,
                "wr": 0.5748
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5737,
            "fold_consistent": true
          },
          {
            "threshold": 0.56,
            "n": 2058,
            "wr": 0.5777453838678328,
            "wilson_lo": 0.5562802010654355,
            "wilson_hi": 0.5989208580265917,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5459,
            "folds": [
              {
                "fold": 0,
                "n": 568,
                "wr": 0.5898
              },
              {
                "fold": 1,
                "n": 377,
                "wr": 0.557
              },
              {
                "fold": 2,
                "n": 541,
                "wr": 0.5823
              },
              {
                "fold": 3,
                "n": 572,
                "wr": 0.5752
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.557,
            "fold_consistent": true
          },
          {
            "threshold": 0.57,
            "n": 902,
            "wr": 0.5764966740576497,
            "wilson_lo": 0.5439927923377558,
            "wilson_hi": 0.6083517235246202,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5238,
            "folds": [
              {
                "fold": 0,
                "n": 254,
                "wr": 0.5984
              },
              {
                "fold": 1,
                "n": 141,
                "wr": 0.6028
              },
              {
                "fold": 2,
                "n": 242,
                "wr": 0.5661
              },
              {
                "fold": 3,
                "n": 265,
                "wr": 0.5509
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5509,
            "fold_consistent": true
          },
          {
            "threshold": 0.58,
            "n": 367,
            "wr": 0.5994550408719346,
            "wilson_lo": 0.5485410974609809,
            "wilson_hi": 0.6483084469267036,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5439,
            "folds": [
              {
                "fold": 0,
                "n": 105,
                "wr": 0.6667
              },
              {
                "fold": 1,
                "n": 43,
                "wr": 0.5581
              },
              {
                "fold": 2,
                "n": 102,
                "wr": 0.6078
              },
              {
                "fold": 3,
                "n": 117,
                "wr": 0.547
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.547,
            "fold_consistent": true
          },
          {
            "threshold": 0.6,
            "n": 45,
            "wr": 0.6666666666666666,
            "wilson_lo": 0.520702168092554,
            "wilson_hi": 0.7864130779272324,
            "losing_months": 0,
            "months_seen": 5,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 15,
                "wr": 0.8
              },
              {
                "fold": 2,
                "n": 9,
                "wr": 0.6667
              },
              {
                "fold": 3,
                "n": 21,
                "wr": 0.5714
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          {
            "threshold": 0.62,
            "n": 6,
            "wr": 0.5,
            "wilson_lo": 0.18761280689940868,
            "wilson_hi": 0.8123871931005913,
            "losing_months": 0,
            "months_seen": 3,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 2,
                "wr": 0.5
              },
              {
                "fold": 2,
                "n": 1,
                "wr": 1.0
              },
              {
                "fold": 3,
                "n": 3,
                "wr": 0.3333
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          }
        ]
      },
      "forward": {
        "name": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion",
        "steps": [
          {
            "condition": "vol_hot",
            "family": "VOLATILITY",
            "n": 876,
            "wr": 0.621,
            "worst_fold": 0.6096,
            "wilson_lo": 0.5884,
            "folds": [
              {
                "fold": 0,
                "n": 204,
                "wr": 0.6176
              },
              {
                "fold": 1,
                "n": 228,
                "wr": 0.6096
              },
              {
                "fold": 2,
                "n": 225,
                "wr": 0.6133
              },
              {
                "fold": 3,
                "n": 219,
                "wr": 0.6438
              }
            ]
          },
          {
            "condition": "flow_deviates_same",
            "family": "FLOW",
            "n": 248,
            "wr": 0.6855,
            "worst_fold": 0.6429,
            "wilson_lo": 0.6252,
            "folds": [
              {
                "fold": 0,
                "n": 42,
                "wr": 0.6429
              },
              {
                "fold": 1,
                "n": 64,
                "wr": 0.6875
              },
              {
                "fold": 2,
                "n": 62,
                "wr": 0.6613
              },
              {
                "fold": 3,
                "n": 80,
                "wr": 0.725
              }
            ]
          },
          {
            "condition": "rsi_reversion",
            "family": "PRICE_STATE",
            "n": 213,
            "wr": 0.6995,
            "worst_fold": 0.6481,
            "wilson_lo": 0.6349,
            "folds": [
              {
                "fold": 0,
                "n": 39,
                "wr": 0.6667
              },
              {
                "fold": 1,
                "n": 56,
                "wr": 0.6964
              },
              {
                "fold": 2,
                "n": 54,
                "wr": 0.6481
              },
              {
                "fold": 3,
                "n": 64,
                "wr": 0.7656
              }
            ]
          }
        ],
        "families": [
          "FLOW",
          "PRICE_STATE",
          "VOLATILITY"
        ],
        "candidates_evaluated": 204
      },
      "tier": {
        "select": {
          "label": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion [SELECT]",
          "n": 213,
          "win_rate": 0.6995,
          "ci95": [
            0.6349,
            0.7571
          ],
          "ci95_low": 0.6349,
          "ev_per_trade": {
            "at_0.50": 0.1995,
            "at_0.52": 0.1795,
            "at_0.55": 0.1495,
            "at_0.58": 0.1195
          },
          "roi_pct": {
            "at_0.50": 39.91,
            "at_0.52": 34.53,
            "at_0.55": 27.19,
            "at_0.58": 20.61
          },
          "removed_vs_base": {
            "trades": 3633,
            "losers": 1566,
            "winners": 2067,
            "winner_retention": 0.0672,
            "loser_rejection": 0.9607
          }
        },
        "holdout": {
          "label": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion [HOLDOUT]",
          "n": 111,
          "win_rate": 0.5495,
          "ci95": [
            0.4569,
            0.6389
          ],
          "ci95_low": 0.4569,
          "ev_per_trade": {
            "at_0.50": 0.0495,
            "at_0.52": 0.0295,
            "at_0.55": -0.0005,
            "at_0.58": -0.0305
          },
          "roi_pct": {
            "at_0.50": 9.91,
            "at_0.52": 5.68,
            "at_0.55": -0.08,
            "at_0.58": -5.25
          },
          "removed_vs_base": {
            "trades": 1873,
            "losers": 829,
            "winners": 1044,
            "winner_retention": 0.0552,
            "loser_rejection": 0.9431
          }
        },
        "all_oof": {
          "label": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion [ALL OOF]",
          "n": 324,
          "win_rate": 0.6481,
          "ci95": [
            0.5947,
            0.6981
          ],
          "ci95_low": 0.5947,
          "ev_per_trade": {
            "at_0.50": 0.1481,
            "at_0.52": 0.1281,
            "at_0.55": 0.0981,
            "at_0.58": 0.0681
          },
          "roi_pct": {
            "at_0.50": 29.63,
            "at_0.52": 24.64,
            "at_0.55": 17.85,
            "at_0.58": 11.75
          },
          "removed_vs_base": {
            "trades": 5506,
            "losers": 2395,
            "winners": 3111,
            "winner_retention": 0.0632,
            "loser_rejection": 0.9546
          }
        },
        "folds": [
          {
            "fold": 0,
            "n": 39,
            "wr": 0.6667
          },
          {
            "fold": 1,
            "n": 56,
            "wr": 0.6964
          },
          {
            "fold": 2,
            "n": 54,
            "wr": 0.6481
          },
          {
            "fold": 3,
            "n": 64,
            "wr": 0.7656
          }
        ]
      },
      "reference_rules": {
        "published 5m rule": {
          "select": {
            "n": 617,
            "wr": 0.6207455429497569,
            "wilson_lo": 0.5818241081720585,
            "wilson_hi": 0.6581726961657952,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5732,
            "folds": [
              {
                "fold": 0,
                "n": 161,
                "wr": 0.646
              },
              {
                "fold": 1,
                "n": 125,
                "wr": 0.56
              },
              {
                "fold": 2,
                "n": 145,
                "wr": 0.6414
              },
              {
                "fold": 3,
                "n": 186,
                "wr": 0.6237
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.56,
            "fold_consistent": true
          },
          "holdout": {
            "label": "published 5m rule",
            "n": 249,
            "win_rate": 0.5823,
            "ci95": [
              0.5203,
              0.6419
            ],
            "ci95_low": 0.5203,
            "ev_per_trade": {
              "at_0.50": 0.0823,
              "at_0.52": 0.0623,
              "at_0.55": 0.0323,
              "at_0.58": 0.0023
            },
            "roi_pct": {
              "at_0.50": 16.47,
              "at_0.52": 11.99,
              "at_0.55": 5.88,
              "at_0.58": 0.4
            },
            "removed_vs_base": {
              "trades": 1735,
              "losers": 775,
              "winners": 960,
              "winner_retention": 0.1312,
              "loser_rejection": 0.8817
            }
          },
          "all_oof": {
            "label": "published 5m rule",
            "n": 866,
            "win_rate": 0.6097,
            "ci95": [
              0.5768,
              0.6416
            ],
            "ci95_low": 0.5768,
            "ev_per_trade": {
              "at_0.50": 0.1097,
              "at_0.52": 0.0897,
              "at_0.55": 0.0597,
              "at_0.58": 0.0297
            },
            "roi_pct": {
              "at_0.50": 21.94,
              "at_0.52": 17.25,
              "at_0.55": 10.85,
              "at_0.58": 5.12
            },
            "removed_vs_base": {
              "trades": 4964,
              "losers": 2171,
              "winners": 2793,
              "winner_retention": 0.159,
              "loser_rejection": 0.8653
            }
          }
        },
        "published 15m rule": {
          "select": {
            "n": 383,
            "wr": 0.6422976501305483,
            "wilson_lo": 0.5930976752772577,
            "wilson_hi": 0.6886714002306504,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": 0.5536,
            "folds": [
              {
                "fold": 0,
                "n": 100,
                "wr": 0.65
              },
              {
                "fold": 1,
                "n": 82,
                "wr": 0.5854
              },
              {
                "fold": 2,
                "n": 82,
                "wr": 0.6707
              },
              {
                "fold": 3,
                "n": 119,
                "wr": 0.6555
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.5854,
            "fold_consistent": true
          },
          "holdout": {
            "label": "published 15m rule",
            "n": 156,
            "win_rate": 0.609,
            "ci95": [
              0.5307,
              0.6821
            ],
            "ci95_low": 0.5307,
            "ev_per_trade": {
              "at_0.50": 0.109,
              "at_0.52": 0.089,
              "at_0.55": 0.059,
              "at_0.58": 0.029
            },
            "roi_pct": {
              "at_0.50": 21.79,
              "at_0.52": 17.11,
              "at_0.55": 10.72,
              "at_0.58": 5.0
            },
            "removed_vs_base": {
              "trades": 1828,
              "losers": 818,
              "winners": 1010,
              "winner_retention": 0.086,
              "loser_rejection": 0.9306
            }
          },
          "all_oof": {
            "label": "published 15m rule",
            "n": 539,
            "win_rate": 0.6327,
            "ci95": [
              0.5911,
              0.6723
            ],
            "ci95_low": 0.5911,
            "ev_per_trade": {
              "at_0.50": 0.1327,
              "at_0.52": 0.1127,
              "at_0.55": 0.0827,
              "at_0.58": 0.0527
            },
            "roi_pct": {
              "at_0.50": 26.53,
              "at_0.52": 21.66,
              "at_0.55": 15.03,
              "at_0.58": 9.08
            },
            "removed_vs_base": {
              "trades": 5291,
              "losers": 2311,
              "winners": 2980,
              "winner_retention": 0.1027,
              "loser_rejection": 0.9211
            }
          }
        }
      },
      "walk_forward": {
        "blocks": [
          {
            "block": 1,
            "train_through": 0.5,
            "rule": "p>=0.57 & session_us & no_vacuum & rsi_reversion",
            "select_n": 596,
            "select_wr": 0.594,
            "select_worst_fold": 0.5913,
            "n": 45,
            "wins": 16,
            "win_rate": 0.3556,
            "ci95": [
              0.2322,
              0.5016
            ]
          },
          {
            "block": 2,
            "train_through": 0.6,
            "rule": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion",
            "select_n": 3337,
            "select_wr": 0.5778,
            "select_worst_fold": 0.5669,
            "n": 45,
            "wins": 35,
            "win_rate": 0.7778,
            "ci95": [
              0.6373,
              0.8746
            ]
          },
          {
            "block": 3,
            "train_through": 0.7,
            "rule": "p>=0.55 & vol_hot & flow_deviates_same & rsi_reversion",
            "select_n": 3846,
            "select_wr": 0.5762,
            "select_worst_fold": 0.5737,
            "n": 39,
            "wins": 19,
            "win_rate": 0.4872,
            "ci95": [
              0.3386,
              0.638
            ]
          },
          {
            "block": 4,
            "train_through": 0.8,
            "rule": "p>=0.55 & flush & traj_reversal",
            "select_n": 4527,
            "select_wr": 0.5715,
            "select_worst_fold": 0.5538,
            "n": 174,
            "wins": 105,
            "win_rate": 0.6034,
            "ci95": [
              0.5293,
              0.6731
            ]
          },
          {
            "block": 5,
            "train_through": 0.9,
            "rule": "p>=0.58 & flow_opposite & participation_busy",
            "select_n": 740,
            "select_wr": 0.5811,
            "select_worst_fold": 0.562,
            "n": 21,
            "wins": 12,
            "win_rate": 0.5714,
            "ci95": [
              0.3655,
              0.7553
            ]
          }
        ],
        "pooled_n": 324,
        "pooled_wins": 187,
        "pooled_win_rate": 0.5772,
        "pooled_ci95": [
          0.5228,
          0.6297
        ],
        "blocks_above_0.60": 2,
        "blocks_above_0.65": 1,
        "candidates_evaluated": 1667
      },
      "ladder": [
        {
          "target": 0.65,
          "reached_on_select": true,
          "rule": "p>=0.56 & sweep_agree",
          "select_n": 277,
          "select_wr": 0.657,
          "select_worst_fold": 0.5741,
          "holdout_n": 110,
          "holdout_wr": 0.5909,
          "holdout_ci95": [
            0.4975,
            0.6782
          ]
        },
        {
          "target": 0.7,
          "reached_on_select": false
        },
        {
          "target": 0.75,
          "reached_on_select": false
        },
        {
          "target": 0.8,
          "reached_on_select": false
        },
        {
          "target": 0.85,
          "reached_on_select": false
        }
      ],
      "calibration": {
        "fit_on": "select half only",
        "n_fit": 18806,
        "n_eval": 8061,
        "holdout_brier": {
          "raw": 0.25215,
          "platt": 0.25,
          "isotonic": 0.25131
        },
        "chosen": "platt",
        "bands": [
          {
            "band": "0.50-0.55",
            "n": 6077,
            "model_p": 0.5231,
            "calibrated_p": 0.501,
            "actual": 0.494,
            "ci95": [
              0.4814,
              0.5066
            ],
            "raw_gap": -0.0291,
            "cal_gap": -0.007
          },
          {
            "band": "0.55-0.58",
            "n": 1505,
            "model_p": 0.5616,
            "calibrated_p": 0.501,
            "actual": 0.5183,
            "ci95": [
              0.493,
              0.5434
            ],
            "raw_gap": -0.0433,
            "cal_gap": 0.0173
          },
          {
            "band": "0.58-0.60",
            "n": 298,
            "model_p": 0.5883,
            "calibrated_p": 0.501,
            "actual": 0.5168,
            "ci95": [
              0.4602,
              0.5729
            ],
            "raw_gap": -0.0715,
            "cal_gap": 0.0158
          },
          {
            "band": "0.60-0.65",
            "n": 144,
            "model_p": 0.6174,
            "calibrated_p": 0.501,
            "actual": 0.4375,
            "ci95": [
              0.3591,
              0.5191
            ],
            "raw_gap": -0.1799,
            "cal_gap": -0.0635
          }
        ]
      },
      "stage2": {
        "meta": {
          "features": [
            "p_up",
            "p_conf",
            "flow_sided",
            "dev_sided",
            "sweep_agree",
            "flush",
            "vacuum",
            "vol_ratio_15_60",
            "atr14_pct",
            "range_pos_sided",
            "rsi_sided",
            "ret5_sided",
            "sign_flips_15",
            "trades_z_60",
            "funding_sided",
            "body_sided"
          ],
          "folds": [
            {
              "fold": 2,
              "test_n": 3761,
              "train_n": 8060,
              "C": 0.01,
              "test_from": "2026-03-17 15:00:00+00:00"
            },
            {
              "fold": 3,
              "test_n": 3762,
              "train_n": 11821,
              "C": 0.01,
              "test_from": "2026-04-25 19:15:00+00:00"
            },
            {
              "fold": 4,
              "test_n": 3761,
              "train_n": 15583,
              "C": 0.01,
              "test_from": "2026-06-03 23:45:00+00:00"
            },
            {
              "fold": 5,
              "test_n": 3762,
              "train_n": 19344,
              "C": 0.01,
              "test_from": "2026-07-13 04:00:00+00:00"
            },
            {
              "fold": 6,
              "test_n": 3761,
              "train_n": 23106,
              "C": 0.01,
              "test_from": "2026-08-21 08:30:00+00:00"
            }
          ]
        },
        "rows": [
          {
            "top_pct": 50,
            "select": {
              "n": 5373,
              "wr": 0.5451330727712638,
              "wilson_lo": 0.5317905471176932,
              "wilson_hi": 0.5584111058378264,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5196
            },
            "holdout": {
              "label": "s2",
              "n": 3600,
              "win_rate": 0.5489,
              "ci95": [
                0.5326,
                0.5651
              ],
              "ci95_low": 0.5326,
              "ev_per_trade": {
                "at_0.50": 0.0489,
                "at_0.52": 0.0289,
                "at_0.55": -0.0011,
                "at_0.58": -0.0311
              },
              "roi_pct": {
                "at_0.50": 9.78,
                "at_0.52": 5.56,
                "at_0.55": -0.2,
                "at_0.58": -5.36
              },
              "removed_vs_base": {
                "trades": 183,
                "losers": 96,
                "winners": 87,
                "winner_retention": 1.7882,
                "loser_rejection": 0.1092
              }
            }
          },
          {
            "top_pct": 30,
            "select": {
              "n": 3224,
              "wr": 0.5536600496277916,
              "wilson_lo": 0.5364464499673386,
              "wilson_hi": 0.5707459227934563,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5031
            },
            "holdout": {
              "label": "s2",
              "n": 1997,
              "win_rate": 0.5608,
              "ci95": [
                0.539,
                0.5825
              ],
              "ci95_low": 0.539,
              "ev_per_trade": {
                "at_0.50": 0.0608,
                "at_0.52": 0.0408,
                "at_0.55": 0.0108,
                "at_0.58": -0.0192
              },
              "roi_pct": {
                "at_0.50": 12.17,
                "at_0.52": 7.85,
                "at_0.55": 1.97,
                "at_0.58": -3.3
              },
              "removed_vs_base": {
                "trades": 617,
                "losers": 296,
                "winners": 321,
                "winner_retention": 1.0136,
                "loser_rejection": 0.3367
              }
            }
          },
          {
            "top_pct": 20,
            "select": {
              "n": 2150,
              "wr": 0.5688372093023256,
              "wilson_lo": 0.5477987837119638,
              "wilson_hi": 0.5896300782804873,
              "losing_months": 1,
              "months_seen": 5,
              "min_month_wr": 0.5
            },
            "holdout": {
              "label": "s2",
              "n": 1298,
              "win_rate": 0.5616,
              "ci95": [
                0.5345,
                0.5884
              ],
              "ci95_low": 0.5345,
              "ev_per_trade": {
                "at_0.50": 0.0616,
                "at_0.52": 0.0416,
                "at_0.55": 0.0116,
                "at_0.58": -0.0184
              },
              "roi_pct": {
                "at_0.50": 12.33,
                "at_0.52": 8.01,
                "at_0.55": 2.12,
                "at_0.58": -3.17
              },
              "removed_vs_base": {
                "trades": 958,
                "losers": 438,
                "winners": 520,
                "winner_retention": 0.6597,
                "loser_rejection": 0.4983
              }
            }
          },
          {
            "top_pct": 10,
            "select": {
              "n": 1075,
              "wr": 0.5813953488372093,
              "wilson_lo": 0.5516656287730407,
              "wilson_hi": 0.6105453946061098,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5219
            },
            "holdout": {
              "label": "s2",
              "n": 573,
              "win_rate": 0.5812,
              "ci95": [
                0.5403,
                0.6209
              ],
              "ci95_low": 0.5403,
              "ev_per_trade": {
                "at_0.50": 0.0812,
                "at_0.52": 0.0612,
                "at_0.55": 0.0312,
                "at_0.58": 0.0012
              },
              "roi_pct": {
                "at_0.50": 16.23,
                "at_0.52": 11.76,
                "at_0.55": 5.66,
                "at_0.58": 0.2
              },
              "removed_vs_base": {
                "trades": 1459,
                "losers": 660,
                "winners": 799,
                "winner_retention": 0.3014,
                "loser_rejection": 0.7509
              }
            }
          },
          {
            "top_pct": 5,
            "select": {
              "n": 538,
              "wr": 0.5910780669144982,
              "wilson_lo": 0.549030901838792,
              "wilson_hi": 0.6318337641447722,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.5185
            },
            "holdout": {
              "label": "s2",
              "n": 280,
              "win_rate": 0.5607,
              "ci95": [
                0.5021,
                0.6176
              ],
              "ci95_low": 0.5021,
              "ev_per_trade": {
                "at_0.50": 0.0607,
                "at_0.52": 0.0407,
                "at_0.55": 0.0107,
                "at_0.58": -0.0193
              },
              "roi_pct": {
                "at_0.50": 12.14,
                "at_0.52": 7.83,
                "at_0.55": 1.95,
                "at_0.58": -3.33
              },
              "removed_vs_base": {
                "trades": 1712,
                "losers": 761,
                "winners": 951,
                "winner_retention": 0.1421,
                "loser_rejection": 0.8658
              }
            }
          },
          {
            "top_pct": 2,
            "select": {
              "n": 215,
              "wr": 0.6093023255813953,
              "wilson_lo": 0.542711175167548,
              "wilson_hi": 0.6720560354541985,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.6
            },
            "holdout": {
              "label": "s2",
              "n": 134,
              "win_rate": 0.5448,
              "ci95": [
                0.4604,
                0.6267
              ],
              "ci95_low": 0.4604,
              "ev_per_trade": {
                "at_0.50": 0.0448,
                "at_0.52": 0.0248,
                "at_0.55": -0.0052,
                "at_0.58": -0.0352
              },
              "roi_pct": {
                "at_0.50": 8.96,
                "at_0.52": 4.76,
                "at_0.55": -0.95,
                "at_0.58": -6.07
              },
              "removed_vs_base": {
                "trades": 1850,
                "losers": 818,
                "winners": 1032,
                "winner_retention": 0.0661,
                "loser_rejection": 0.9306
              }
            }
          },
          {
            "top_pct": 1,
            "select": {
              "n": 108,
              "wr": 0.6203703703703703,
              "wilson_lo": 0.5261993725148564,
              "wilson_hi": 0.7062722659452514,
              "losing_months": 0,
              "months_seen": 4,
              "min_month_wr": 0.619
            },
            "holdout": {
              "label": "s2",
              "n": 84,
              "win_rate": 0.5,
              "ci95": [
                0.3954,
                0.6046
              ],
              "ci95_low": 0.3954,
              "ev_per_trade": {
                "at_0.50": 0.0,
                "at_0.52": -0.02,
                "at_0.55": -0.05,
                "at_0.58": -0.08
              },
              "roi_pct": {
                "at_0.50": 0.0,
                "at_0.52": -3.85,
                "at_0.55": -9.09,
                "at_0.58": -13.79
              },
              "removed_vs_base": {
                "trades": 1900,
                "losers": 837,
                "winners": 1063,
                "winner_retention": 0.038,
                "loser_rejection": 0.9522
              }
            }
          }
        ]
      },
      "robustness": {
        "holdout_monthly": [
          {
            "month": "2026-07",
            "n": 32,
            "win_rate": 0.5312
          },
          {
            "month": "2026-08",
            "n": 42,
            "win_rate": 0.5714
          },
          {
            "month": "2026-09",
            "n": 37,
            "win_rate": 0.5405
          }
        ],
        "leave_one_month_out": [
          {
            "slice": "2026-07",
            "n": 32,
            "wr_in_slice": 0.5312,
            "wr_excluding": 0.557
          },
          {
            "slice": "2026-08",
            "n": 42,
            "wr_in_slice": 0.5714,
            "wr_excluding": 0.5362
          },
          {
            "slice": "2026-09",
            "n": 37,
            "wr_in_slice": 0.5405,
            "wr_excluding": 0.5541
          }
        ],
        "sessions": [
          {
            "slice": "asia",
            "n": 32,
            "wr_in_slice": 0.625,
            "wr_excluding": 0.519
          },
          {
            "slice": "eu",
            "n": 36,
            "wr_in_slice": 0.5278,
            "wr_excluding": 0.56
          },
          {
            "slice": "late",
            "n": 13,
            "wr_in_slice": 0.3846,
            "wr_excluding": 0.5714
          },
          {
            "slice": "us",
            "n": 30,
            "wr_in_slice": 0.5667,
            "wr_excluding": 0.5432
          }
        ],
        "vol_regimes": [
          {
            "regime": "high-vol",
            "n": 111,
            "win_rate": 0.5495
          }
        ]
      },
      "loss_analysis": [
        {
          "family": "FLOW",
          "std_diff_winner_minus_loser": -0.0557
        },
        {
          "family": "PRICE_STATE",
          "std_diff_winner_minus_loser": -0.0408
        },
        {
          "family": "VOLATILITY",
          "std_diff_winner_minus_loser": 0.0345
        },
        {
          "family": "TRAJECTORY",
          "std_diff_winner_minus_loser": -0.0743
        },
        {
          "family": "FUNDING",
          "std_diff_winner_minus_loser": 0.1899
        },
        {
          "family": "MODEL",
          "std_diff_winner_minus_loser": 0.1021
        }
      ],
      "decision": "D",
      "decision_note": "no robust high-precision edge (rolling 57.7%)",
      "symbol_holdout": "NOT POSSIBLE - single symbol (BTCUSDT). A rule that cannot be shown to generalise across symbols must not be reported as an 80% model."
    },
    "1h": {
      "timeframe": "1h",
      "oof_n": 6716,
      "baseline": {
        "p_threshold": 0.55,
        "select": {
          "label": "p>=0.55 core",
          "n": 581,
          "win_rate": 0.5026,
          "ci95": [
            0.462,
            0.5431
          ],
          "ci95_low": 0.462,
          "ev_per_trade": {
            "at_0.50": 0.0026,
            "at_0.52": -0.0174,
            "at_0.55": -0.0474,
            "at_0.58": -0.0774
          },
          "roi_pct": {
            "at_0.50": 0.52,
            "at_0.52": -3.35,
            "at_0.55": -8.62,
            "at_0.58": -13.35
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "holdout": {
          "label": "base",
          "n": 157,
          "win_rate": 0.5414,
          "ci95": [
            0.4634,
            0.6174
          ],
          "ci95_low": 0.4634,
          "ev_per_trade": {
            "at_0.50": 0.0414,
            "at_0.52": 0.0214,
            "at_0.55": -0.0086,
            "at_0.58": -0.0386
          },
          "roi_pct": {
            "at_0.50": 8.28,
            "at_0.52": 4.12,
            "at_0.55": -1.56,
            "at_0.58": -6.65
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        }
      },
      "core": {
        "chosen": {
          "threshold": 0.55,
          "n": 581,
          "wr": 0.5025817555938038,
          "wilson_lo": 0.4620418337739785,
          "wilson_hi": 0.5430877602904657,
          "losing_months": 2,
          "months_seen": 8,
          "min_month_wr": 0.4151,
          "folds": [
            {
              "fold": 0,
              "n": 329,
              "wr": 0.5228
            },
            {
              "fold": 1,
              "n": 115,
              "wr": 0.4348
            },
            {
              "fold": 2,
              "n": 86,
              "wr": 0.5116
            },
            {
              "fold": 3,
              "n": 51,
              "wr": 0.5098
            }
          ],
          "folds_voting": 4,
          "worst_fold": 0.4348,
          "fold_consistent": false
        },
        "grid": [
          {
            "threshold": 0.55,
            "n": 581,
            "wr": 0.5025817555938038,
            "wilson_lo": 0.4620418337739785,
            "wilson_hi": 0.5430877602904657,
            "losing_months": 2,
            "months_seen": 8,
            "min_month_wr": 0.4151,
            "folds": [
              {
                "fold": 0,
                "n": 329,
                "wr": 0.5228
              },
              {
                "fold": 1,
                "n": 115,
                "wr": 0.4348
              },
              {
                "fold": 2,
                "n": 86,
                "wr": 0.5116
              },
              {
                "fold": 3,
                "n": 51,
                "wr": 0.5098
              }
            ],
            "folds_voting": 4,
            "worst_fold": 0.4348,
            "fold_consistent": false
          },
          {
            "threshold": 0.56,
            "n": 271,
            "wr": 0.5239852398523985,
            "wilson_lo": 0.46460383756024975,
            "wilson_hi": 0.5826961344963821,
            "losing_months": 1,
            "months_seen": 8,
            "min_month_wr": 0.375,
            "folds": [
              {
                "fold": 0,
                "n": 183,
                "wr": 0.5574
              },
              {
                "fold": 1,
                "n": 38,
                "wr": 0.4211
              },
              {
                "fold": 2,
                "n": 30,
                "wr": 0.4667
              },
              {
                "fold": 3,
                "n": 20,
                "wr": 0.5
              }
            ],
            "folds_voting": 3,
            "worst_fold": 0.4211,
            "fold_consistent": false
          },
          {
            "threshold": 0.57,
            "n": 130,
            "wr": 0.5,
            "wilson_lo": 0.41529081256565625,
            "wilson_hi": 0.5847091874343437,
            "losing_months": 1,
            "months_seen": 7,
            "min_month_wr": 0.5,
            "folds": [
              {
                "fold": 0,
                "n": 102,
                "wr": 0.5196
              },
              {
                "fold": 1,
                "n": 9,
                "wr": 0.5556
              },
              {
                "fold": 2,
                "n": 13,
                "wr": 0.3846
              },
              {
                "fold": 3,
                "n": 6,
                "wr": 0.3333
              }
            ],
            "folds_voting": 1,
            "worst_fold": 0.5196,
            "fold_consistent": false
          },
          {
            "threshold": 0.58,
            "n": 58,
            "wr": 0.3448275862068966,
            "wilson_lo": 0.23560916371859544,
            "wilson_hi": 0.4733246284213233,
            "losing_months": 1,
            "months_seen": 6,
            "min_month_wr": 0.3659,
            "folds": [
              {
                "fold": 0,
                "n": 50,
                "wr": 0.36
              },
              {
                "fold": 1,
                "n": 2,
                "wr": 0.5
              },
              {
                "fold": 2,
                "n": 2,
                "wr": 0.0
              },
              {
                "fold": 3,
                "n": 4,
                "wr": 0.25
              }
            ],
            "folds_voting": 1,
            "worst_fold": 0.36,
            "fold_consistent": false
          },
          {
            "threshold": 0.6,
            "n": 13,
            "wr": 0.5384615384615384,
            "wilson_lo": 0.2914343243183205,
            "wilson_hi": 0.7679424569851186,
            "losing_months": 0,
            "months_seen": 5,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 11,
                "wr": 0.5455
              },
              {
                "fold": 2,
                "n": 1,
                "wr": 0.0
              },
              {
                "fold": 3,
                "n": 1,
                "wr": 1.0
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          {
            "threshold": 0.62,
            "n": 4,
            "wr": 0.75,
            "wilson_lo": 0.3006360524426366,
            "wilson_hi": 0.9544139373553637,
            "losing_months": 0,
            "months_seen": 2,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 3,
                "wr": 0.6667
              },
              {
                "fold": 3,
                "n": 1,
                "wr": 1.0
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          {
            "threshold": 0.65,
            "n": 1,
            "wr": 1.0,
            "wilson_lo": 0.20654329147389294,
            "wilson_hi": 1.0,
            "losing_months": 0,
            "months_seen": 1,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 3,
                "n": 1,
                "wr": 1.0
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          }
        ]
      },
      "forward": {
        "name": "p>=0.55",
        "steps": [],
        "families": [],
        "candidates_evaluated": 85
      },
      "tier": {
        "select": {
          "label": "p>=0.55 [SELECT]",
          "n": 581,
          "win_rate": 0.5026,
          "ci95": [
            0.462,
            0.5431
          ],
          "ci95_low": 0.462,
          "ev_per_trade": {
            "at_0.50": 0.0026,
            "at_0.52": -0.0174,
            "at_0.55": -0.0474,
            "at_0.58": -0.0774
          },
          "roi_pct": {
            "at_0.50": 0.52,
            "at_0.52": -3.35,
            "at_0.55": -8.62,
            "at_0.58": -13.35
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "holdout": {
          "label": "p>=0.55 [HOLDOUT]",
          "n": 157,
          "win_rate": 0.5414,
          "ci95": [
            0.4634,
            0.6174
          ],
          "ci95_low": 0.4634,
          "ev_per_trade": {
            "at_0.50": 0.0414,
            "at_0.52": 0.0214,
            "at_0.55": -0.0086,
            "at_0.58": -0.0386
          },
          "roi_pct": {
            "at_0.50": 8.28,
            "at_0.52": 4.12,
            "at_0.55": -1.56,
            "at_0.58": -6.65
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "all_oof": {
          "label": "p>=0.55 [ALL OOF]",
          "n": 738,
          "win_rate": 0.5108,
          "ci95": [
            0.4748,
            0.5468
          ],
          "ci95_low": 0.4748,
          "ev_per_trade": {
            "at_0.50": 0.0108,
            "at_0.52": -0.0092,
            "at_0.55": -0.0392,
            "at_0.58": -0.0692
          },
          "roi_pct": {
            "at_0.50": 2.17,
            "at_0.52": -1.76,
            "at_0.55": -7.12,
            "at_0.58": -11.92
          },
          "removed_vs_base": {
            "trades": 0,
            "losers": 0,
            "winners": 0,
            "winner_retention": 1.0,
            "loser_rejection": 0.0
          }
        },
        "folds": [
          {
            "fold": 0,
            "n": 329,
            "wr": 0.5228
          },
          {
            "fold": 1,
            "n": 115,
            "wr": 0.4348
          },
          {
            "fold": 2,
            "n": 86,
            "wr": 0.5116
          },
          {
            "fold": 3,
            "n": 51,
            "wr": 0.5098
          }
        ]
      },
      "reference_rules": {
        "published 5m rule": {
          "select": {
            "n": 46,
            "wr": 0.6304347826086957,
            "wilson_lo": 0.48599833149184785,
            "wilson_hi": 0.7547644048569049,
            "losing_months": 0,
            "months_seen": 8,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 23,
                "wr": 0.6957
              },
              {
                "fold": 1,
                "n": 9,
                "wr": 0.6667
              },
              {
                "fold": 2,
                "n": 7,
                "wr": 0.5714
              },
              {
                "fold": 3,
                "n": 7,
                "wr": 0.4286
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          "holdout": {
            "label": "published 5m rule",
            "n": 10,
            "win_rate": 0.5,
            "ci95": [
              0.2366,
              0.7634
            ],
            "ci95_low": 0.2366,
            "ev_per_trade": {
              "at_0.50": 0.0,
              "at_0.52": -0.02,
              "at_0.55": -0.05,
              "at_0.58": -0.08
            },
            "roi_pct": {
              "at_0.50": 0.0,
              "at_0.52": -3.85,
              "at_0.55": -9.09,
              "at_0.58": -13.79
            },
            "removed_vs_base": {
              "trades": 147,
              "losers": 67,
              "winners": 80,
              "winner_retention": 0.0588,
              "loser_rejection": 0.9306
            }
          },
          "all_oof": {
            "label": "published 5m rule",
            "n": 56,
            "win_rate": 0.6071,
            "ci95": [
              0.4763,
              0.7242
            ],
            "ci95_low": 0.4763,
            "ev_per_trade": {
              "at_0.50": 0.1071,
              "at_0.52": 0.0871,
              "at_0.55": 0.0571,
              "at_0.58": 0.0271
            },
            "roi_pct": {
              "at_0.50": 21.43,
              "at_0.52": 16.76,
              "at_0.55": 10.39,
              "at_0.58": 4.68
            },
            "removed_vs_base": {
              "trades": 682,
              "losers": 339,
              "winners": 343,
              "winner_retention": 0.0902,
              "loser_rejection": 0.9391
            }
          }
        },
        "published 15m rule": {
          "select": {
            "n": 32,
            "wr": 0.59375,
            "wilson_lo": 0.4225972657298823,
            "wilson_hi": 0.744805975196862,
            "losing_months": 0,
            "months_seen": 7,
            "min_month_wr": null,
            "folds": [
              {
                "fold": 0,
                "n": 18,
                "wr": 0.5556
              },
              {
                "fold": 1,
                "n": 8,
                "wr": 0.75
              },
              {
                "fold": 2,
                "n": 1,
                "wr": 1.0
              },
              {
                "fold": 3,
                "n": 5,
                "wr": 0.4
              }
            ],
            "folds_voting": 0,
            "worst_fold": null,
            "fold_consistent": false
          },
          "holdout": {
            "label": "published 15m rule",
            "n": 9,
            "win_rate": 0.5556,
            "ci95": [
              0.2666,
              0.8112
            ],
            "ci95_low": 0.2666,
            "ev_per_trade": {
              "at_0.50": 0.0556,
              "at_0.52": 0.0356,
              "at_0.55": 0.0056,
              "at_0.58": -0.0244
            },
            "roi_pct": {
              "at_0.50": 11.11,
              "at_0.52": 6.84,
              "at_0.55": 1.01,
              "at_0.58": -4.21
            },
            "removed_vs_base": {
              "trades": 148,
              "losers": 68,
              "winners": 80,
              "winner_retention": 0.0588,
              "loser_rejection": 0.9444
            }
          },
          "all_oof": {
            "label": "published 15m rule",
            "n": 41,
            "win_rate": 0.5854,
            "ci95": [
              0.4337,
              0.7224
            ],
            "ci95_low": 0.4337,
            "ev_per_trade": {
              "at_0.50": 0.0854,
              "at_0.52": 0.0654,
              "at_0.55": 0.0354,
              "at_0.58": 0.0054
            },
            "roi_pct": {
              "at_0.50": 17.07,
              "at_0.52": 12.57,
              "at_0.55": 6.43,
              "at_0.58": 0.93
            },
            "removed_vs_base": {
              "trades": 697,
              "losers": 344,
              "winners": 353,
              "winner_retention": 0.0637,
              "loser_rejection": 0.9529
            }
          }
        }
      },
      "walk_forward": {
        "blocks": [
          {
            "block": 1,
            "train_through": 0.5,
            "rule": "p>=0.55",
            "select_n": 517,
            "select_wr": 0.5048,
            "select_worst_fold": 0.4981,
            "n": 48,
            "wins": 22,
            "win_rate": 0.4583,
            "ci95": [
              0.3258,
              0.5971
            ]
          },
          {
            "block": 2,
            "train_through": 0.6,
            "rule": "p>=0.55",
            "select_n": 565,
            "select_wr": 0.5009,
            "select_worst_fold": 0.4333,
            "n": 16,
            "wins": 9,
            "win_rate": 0.5625,
            "ci95": [
              0.3318,
              0.769
            ]
          },
          {
            "block": 3,
            "train_through": 0.7,
            "rule": "p>=0.55",
            "select_n": 581,
            "select_wr": 0.5026,
            "select_worst_fold": 0.4348,
            "n": 60,
            "wins": 30,
            "win_rate": 0.5,
            "ci95": [
              0.3773,
              0.6227
            ]
          },
          {
            "block": 4,
            "train_through": 0.8,
            "rule": "p>=0.55",
            "select_n": 641,
            "select_wr": 0.5023,
            "select_worst_fold": 0.3947,
            "n": 60,
            "wins": 35,
            "win_rate": 0.5833,
            "ci95": [
              0.4573,
              0.6994
            ]
          },
          {
            "block": 5,
            "train_through": 0.9,
            "rule": "p>=0.55",
            "select_n": 701,
            "select_wr": 0.5093,
            "select_worst_fold": 0.4507,
            "n": 37,
            "wins": 20,
            "win_rate": 0.5405,
            "ci95": [
              0.3838,
              0.6896
            ]
          }
        ],
        "pooled_n": 221,
        "pooled_wins": 116,
        "pooled_win_rate": 0.5249,
        "pooled_ci95": [
          0.4592,
          0.5897
        ],
        "blocks_above_0.60": 0,
        "blocks_above_0.65": 0,
        "candidates_evaluated": 1355
      },
      "ladder": [
        {
          "target": 0.65,
          "reached_on_select": false
        },
        {
          "target": 0.7,
          "reached_on_select": false
        },
        {
          "target": 0.75,
          "reached_on_select": false
        },
        {
          "target": 0.8,
          "reached_on_select": false
        },
        {
          "target": 0.85,
          "reached_on_select": false
        }
      ],
      "calibration": {
        "fit_on": "select half only",
        "n_fit": 4701,
        "n_eval": 2015,
        "holdout_brier": {
          "raw": 0.25052,
          "platt": 0.25031,
          "isotonic": 0.25094
        },
        "chosen": "platt",
        "bands": [
          {
            "band": "0.50-0.55",
            "n": 1858,
            "model_p": 0.5193,
            "calibrated_p": 0.4928,
            "actual": 0.5172,
            "ci95": [
              0.4945,
              0.5399
            ],
            "raw_gap": -0.0021,
            "cal_gap": 0.0244
          },
          {
            "band": "0.55-0.58",
            "n": 126,
            "model_p": 0.5588,
            "calibrated_p": 0.499,
            "actual": 0.5079,
            "ci95": [
              0.4217,
              0.5937
            ],
            "raw_gap": -0.0509,
            "cal_gap": 0.0089
          }
        ]
      },
      "stage2": {
        "meta": {
          "features": [
            "p_up",
            "p_conf",
            "flow_sided",
            "dev_sided",
            "sweep_agree",
            "flush",
            "vacuum",
            "vol_ratio_15_60",
            "atr14_pct",
            "range_pos_sided",
            "rsi_sided",
            "ret5_sided",
            "sign_flips_15",
            "trades_z_60",
            "funding_sided",
            "body_sided"
          ],
          "folds": [
            {
              "fold": 2,
              "test_n": 940,
              "train_n": 2015,
              "C": 0.1,
              "test_from": "2026-03-17 15:00:00+00:00"
            },
            {
              "fold": 3,
              "test_n": 940,
              "train_n": 2955,
              "C": 0.1,
              "test_from": "2026-04-25 19:00:00+00:00"
            },
            {
              "fold": 4,
              "test_n": 941,
              "train_n": 3895,
              "C": 0.1,
              "test_from": "2026-06-03 23:00:00+00:00"
            },
            {
              "fold": 5,
              "test_n": 940,
              "train_n": 4836,
              "C": 0.01,
              "test_from": "2026-07-13 04:00:00+00:00"
            },
            {
              "fold": 6,
              "test_n": 940,
              "train_n": 5776,
              "C": 0.01,
              "test_from": "2026-08-21 08:00:00+00:00"
            }
          ]
        },
        "rows": [
          {
            "top_pct": 50,
            "select": {
              "n": 1343,
              "wr": 0.5070737155621743,
              "wilson_lo": 0.4803527269729808,
              "wilson_hi": 0.533754351394661,
              "losing_months": 1,
              "months_seen": 5,
              "min_month_wr": 0.4631
            },
            "holdout": {
              "label": "s2",
              "n": 1082,
              "win_rate": 0.5176,
              "ci95": [
                0.4878,
                0.5472
              ],
              "ci95_low": 0.4878,
              "ev_per_trade": {
                "at_0.50": 0.0176,
                "at_0.52": -0.0024,
                "at_0.55": -0.0324,
                "at_0.58": -0.0624
              },
              "roi_pct": {
                "at_0.50": 3.51,
                "at_0.52": -0.47,
                "at_0.55": -5.9,
                "at_0.58": -10.77
              },
              "removed_vs_base": {
                "trades": 33,
                "losers": 18,
                "winners": 15,
                "winner_retention": 6.5882,
                "loser_rejection": 0.25
              }
            }
          },
          {
            "top_pct": 30,
            "select": {
              "n": 806,
              "wr": 0.5,
              "wilson_lo": 0.4655629425790294,
              "wilson_hi": 0.5344370574209706,
              "losing_months": 2,
              "months_seen": 5,
              "min_month_wr": 0.4388
            },
            "holdout": {
              "label": "s2",
              "n": 562,
              "win_rate": 0.5374,
              "ci95": [
                0.496,
                0.5782
              ],
              "ci95_low": 0.496,
              "ev_per_trade": {
                "at_0.50": 0.0374,
                "at_0.52": 0.0174,
                "at_0.55": -0.0126,
                "at_0.58": -0.0426
              },
              "roi_pct": {
                "at_0.50": 7.47,
                "at_0.52": 3.34,
                "at_0.55": -2.3,
                "at_0.58": -7.35
              },
              "removed_vs_base": {
                "trades": 68,
                "losers": 28,
                "winners": 40,
                "winner_retention": 3.5529,
                "loser_rejection": 0.3889
              }
            }
          },
          {
            "top_pct": 20,
            "select": {
              "n": 538,
              "wr": 0.4851301115241636,
              "wilson_lo": 0.4431532707874668,
              "wilson_hi": 0.5273178041539922,
              "losing_months": 3,
              "months_seen": 5,
              "min_month_wr": 0.375
            },
            "holdout": {
              "label": "s2",
              "n": 362,
              "win_rate": 0.5663,
              "ci95": [
                0.5148,
                0.6164
              ],
              "ci95_low": 0.5148,
              "ev_per_trade": {
                "at_0.50": 0.0663,
                "at_0.52": 0.0463,
                "at_0.55": 0.0163,
                "at_0.58": -0.0137
              },
              "roi_pct": {
                "at_0.50": 13.26,
                "at_0.52": 8.9,
                "at_0.55": 2.96,
                "at_0.58": -2.36
              },
              "removed_vs_base": {
                "trades": 94,
                "losers": 40,
                "winners": 54,
                "winner_retention": 2.4118,
                "loser_rejection": 0.5556
              }
            }
          },
          {
            "top_pct": 10,
            "select": {
              "n": 269,
              "wr": 0.5055762081784386,
              "wilson_lo": 0.4461718203461865,
              "wilson_hi": 0.5648235703860184,
              "losing_months": 2,
              "months_seen": 5,
              "min_month_wr": 0.3438
            },
            "holdout": {
              "label": "s2",
              "n": 146,
              "win_rate": 0.5685,
              "ci95": [
                0.4874,
                0.6461
              ],
              "ci95_low": 0.4874,
              "ev_per_trade": {
                "at_0.50": 0.0685,
                "at_0.52": 0.0485,
                "at_0.55": 0.0185,
                "at_0.58": -0.0115
              },
              "roi_pct": {
                "at_0.50": 13.7,
                "at_0.52": 9.33,
                "at_0.55": 3.36,
                "at_0.58": -1.98
              },
              "removed_vs_base": {
                "trades": 126,
                "losers": 58,
                "winners": 68,
                "winner_retention": 0.9765,
                "loser_rejection": 0.8056
              }
            }
          },
          {
            "top_pct": 5,
            "select": {
              "n": 135,
              "wr": 0.4962962962962963,
              "wilson_lo": 0.4132310749842746,
              "wilson_hi": 0.5795664727247695,
              "losing_months": 1,
              "months_seen": 5,
              "min_month_wr": 0.4688
            },
            "holdout": {
              "label": "s2",
              "n": 50,
              "win_rate": 0.64,
              "ci95": [
                0.5014,
                0.7586
              ],
              "ci95_low": 0.5014,
              "ev_per_trade": {
                "at_0.50": 0.14,
                "at_0.52": 0.12,
                "at_0.55": 0.09,
                "at_0.58": 0.06
              },
              "roi_pct": {
                "at_0.50": 28.0,
                "at_0.52": 23.08,
                "at_0.55": 16.36,
                "at_0.58": 10.34
              },
              "removed_vs_base": {
                "trades": 144,
                "losers": 65,
                "winners": 79,
                "winner_retention": 0.3765,
                "loser_rejection": 0.9028
              }
            }
          },
          {
            "top_pct": 2,
            "select": {
              "n": 54,
              "wr": 0.5185185185185185,
              "wilson_lo": 0.3885147504846543,
              "wilson_hi": 0.6460624396345678,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": 0.6538
            },
            "holdout": {
              "label": "s2",
              "n": 9,
              "win_rate": 0.7778,
              "ci95": [
                0.4526,
                0.9368
              ],
              "ci95_low": 0.4526,
              "ev_per_trade": {
                "at_0.50": 0.2778,
                "at_0.52": 0.2578,
                "at_0.55": 0.2278,
                "at_0.58": 0.1978
              },
              "roi_pct": {
                "at_0.50": 55.56,
                "at_0.52": 49.57,
                "at_0.55": 41.41,
                "at_0.58": 34.1
              },
              "removed_vs_base": {
                "trades": 155,
                "losers": 71,
                "winners": 84,
                "winner_retention": 0.0824,
                "loser_rejection": 0.9861
              }
            }
          },
          {
            "top_pct": 1,
            "select": {
              "n": 27,
              "wr": 0.6296296296296297,
              "wilson_lo": 0.442289046234463,
              "wilson_hi": 0.7846771293206314,
              "losing_months": 0,
              "months_seen": 5,
              "min_month_wr": null
            },
            "holdout": {
              "label": "s2",
              "n": 5,
              "win_rate": 0.8,
              "ci95": [
                0.3755,
                0.9638
              ],
              "ci95_low": 0.3755,
              "ev_per_trade": {
                "at_0.50": 0.3,
                "at_0.52": 0.28,
                "at_0.55": 0.25,
                "at_0.58": 0.22
              },
              "roi_pct": {
                "at_0.50": 60.0,
                "at_0.52": 53.85,
                "at_0.55": 45.45,
                "at_0.58": 37.93
              },
              "removed_vs_base": {
                "trades": 155,
                "losers": 71,
                "winners": 84,
                "winner_retention": 0.0471,
                "loser_rejection": 0.9861
              }
            }
          }
        ]
      },
      "robustness": {
        "holdout_monthly": [
          {
            "month": "2026-07",
            "n": 51,
            "win_rate": 0.4902
          },
          {
            "month": "2026-08",
            "n": 69,
            "win_rate": 0.5797
          },
          {
            "month": "2026-09",
            "n": 37,
            "win_rate": 0.5405
          }
        ],
        "leave_one_month_out": [
          {
            "slice": "2026-07",
            "n": 51,
            "wr_in_slice": 0.4902,
            "wr_excluding": 0.566
          },
          {
            "slice": "2026-08",
            "n": 69,
            "wr_in_slice": 0.5797,
            "wr_excluding": 0.5114
          },
          {
            "slice": "2026-09",
            "n": 37,
            "wr_in_slice": 0.5405,
            "wr_excluding": 0.5417
          }
        ],
        "sessions": [
          {
            "slice": "asia",
            "n": 41,
            "wr_in_slice": 0.5854,
            "wr_excluding": 0.5259
          },
          {
            "slice": "eu",
            "n": 58,
            "wr_in_slice": 0.569,
            "wr_excluding": 0.5253
          },
          {
            "slice": "late",
            "n": 12,
            "wr_in_slice": 0.5,
            "wr_excluding": 0.5448
          },
          {
            "slice": "us",
            "n": 46,
            "wr_in_slice": 0.4783,
            "wr_excluding": 0.5676
          }
        ],
        "vol_regimes": [
          {
            "regime": "low-vol",
            "n": 81,
            "win_rate": 0.4568
          },
          {
            "regime": "mid-vol",
            "n": 40,
            "win_rate": 0.675
          },
          {
            "regime": "high-vol",
            "n": 36,
            "win_rate": 0.5833
          }
        ]
      },
      "loss_analysis": [
        {
          "family": "FLOW",
          "std_diff_winner_minus_loser": 0.0303
        },
        {
          "family": "PRICE_STATE",
          "std_diff_winner_minus_loser": -0.0899
        },
        {
          "family": "VOLATILITY",
          "std_diff_winner_minus_loser": 0.1759
        },
        {
          "family": "TRAJECTORY",
          "std_diff_winner_minus_loser": 0.0478
        },
        {
          "family": "FUNDING",
          "std_diff_winner_minus_loser": 0.1649
        },
        {
          "family": "MODEL",
          "std_diff_winner_minus_loser": -0.1095
        }
      ],
      "decision": "D",
      "decision_note": "no robust high-precision edge (rolling 52.5%)",
      "symbol_holdout": "NOT POSSIBLE - single symbol (BTCUSDT). A rule that cannot be shown to generalise across symbols must not be reported as an 80% model."
    }
  },
  "decisions": {
    "5m": "D",
    "15m": "D",
    "1h": "D"
  }
}