Opening gap fill on ES (spec gf_spec.md). Run 2026-10-22T12:14:19.138Z; 500 control runs per variant. One contract, $30.76 a round trip; entry at the 09:31 open, target the previous close, exit at the session close. data: 2378027 bars 2020-01-01 18:01 .. 2026-09-25 16:59 New York; 1737 trading days, 1736 with a previous close gaps under 0.10% (not traded): 345 of 1736 days; fill rate by the close (traded sizes): 0.10% to 0.25% up n= 249 filled 72.7% (median 22 minutes after the open) 0.10% to 0.25% down n= 193 filled 75.1% (median 26 minutes after the open) 0.25% to 0.50% up n= 277 filled 50.2% (median 47 minutes after the open) 0.25% to 0.50% down n= 188 filled 55.3% (median 49 minutes after the open) 0.50% to 1.00% up n= 184 filled 33.2% (median 143 minutes after the open) 0.50% to 1.00% down n= 148 filled 32.4% (median 147 minutes after the open) 1.00% to more up n= 68 filled 19.1% (median 143 minutes after the open) 1.00% to more down n= 84 filled 19.0% (median 209 minutes after the open) === GF-1X: every gap of 0.10%+, stop one gap away === DEV n= 852 net -$48,908 avg -$57 PF 0.88 t -1.38 VAL n= 233 net +$9,408 avg +$40 PF 1.09 t 0.53 HOLDOUT n= 306 net +$19,712 avg +$64 PF 1.11 t 0.68 ALL n=1391 net -$19,787 avg -$14 a trade (gross +$17); in R: net -0.013, gross 0.026; PF 0.97 t -0.40; drawdown on closed trades -$58,229 winners 50.0% (95% 47.4-52.7%); ended by session close 319 (22.9%), target 562 (40.4%), stop 510 (36.7%); gap median 19.50 points; minutes held median 74; without the 10 best -$74,217 longs (gap down) n=613 net -$4,156 | shorts (gap up) n=778 net -$15,631 by gap size: 0.10%+ n=442 avg +$22 | 0.25%+ n=465 avg -$65 | 0.50%+ n=332 avg -$43 | 1.00%+ n=152 avg +$96 by year (n, net): 2020 228 -$22,763 | 2021 201 -$14,770 | 2022 218 -$5,443 | 2023 205 -$5,931 | 2024 184 -$1,660 | 2025 196 +$23,346 | 2026 159 +$7,434 control (entries moved to other days, 09:31, same distances, 500 runs, 1 s): mean trades 1391.00, median avg -$34, 5-95% -$79 .. +$14; real avg -$14 at percentile 72.80 [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.09 [PASS] 2 >= 50 trades in each period: 852 / 233 / 306 [FAIL] 3 t >= 2.0 on development: DEV t -1.38 [FAIL] 4 above 95th pct of the control: percentile 72.80 [FAIL] 5 positive without top-10 trades: -$74,217 [PASS] 6 holdout net positive (flagged used): HOLDOUT net +$19,712 PF 1.11 VERDICT Buried (2/6 gates) rule 3: 8 trades on days touching a known hole; without them avg -$9, gates 2/6 -> Buried (verdict unchanged) === GF-SMALL: gaps of 0.10% to 0.50% only, stop one gap away === DEV n= 542 net -$7,534 avg -$14 PF 0.95 t -0.49 VAL n= 168 net +$4,207 avg +$25 PF 1.07 t 0.41 HOLDOUT n= 197 net -$16,947 avg -$86 PF 0.81 t -1.32 ALL n=907 net -$20,274 avg -$22 a trade (gross +$8); in R: net -0.008, gross 0.044; PF 0.94 t -0.90; drawdown on closed trades -$31,388 winners 51.3% (95% 48.0-54.5%); ended by target 433 (47.7%), stop 389 (42.9%), session close 85 (9.4%); gap median 13.75 points; minutes held median 31; without the 10 best -$35,504 longs (gap down) n=381 net -$1,632 | shorts (gap up) n=526 net -$18,642 by gap size: 0.10%+ n=442 avg +$22 | 0.25%+ n=465 avg -$65 | 0.50%+ n=0 avg +$NaN | 1.00%+ n=0 avg +$NaN by year (n, net): 2020 123 +$4,179 | 2021 157 +$3,821 | 2022 109 -$3,665 | 2023 153 -$11,869 | 2024 137 -$77 | 2025 125 -$2,158 | 2026 103 -$10,506 control (entries moved to other days, 09:31, same distances, 500 runs, 1 s): mean trades 907.00, median avg -$33, 5-95% -$71 .. +$6; real avg -$22 at percentile 68.20 [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.07 [PASS] 2 >= 50 trades in each period: 542 / 168 / 197 [FAIL] 3 t >= 2.0 on development: DEV t -0.49 [FAIL] 4 above 95th pct of the control: percentile 68.20 [FAIL] 5 positive without top-10 trades: -$35,504 [FAIL] 6 holdout net positive (flagged used): HOLDOUT net -$16,947 PF 0.81 VERDICT Buried (1/6 gates) rule 3: 3 trades on days touching a known hole; without them avg -$24, gates 1/6 -> Buried (verdict unchanged) === GF-NS: every gap of 0.10%+, no stop === DEV n= 852 net -$52,933 avg -$62 PF 0.89 t -1.24 VAL n= 233 net +$9,158 avg +$39 PF 1.07 t 0.43 HOLDOUT n= 306 net +$13,887 avg +$45 PF 1.07 t 0.41 ALL n=1391 net -$29,887 avg -$21 a trade (gross +$9); in R: net -0.010, gross 0.029; PF 0.96 t -0.51; drawdown on closed trades -$69,627 winners 61.7% (95% 59.1-64.2%); ended by session close 684 (49.2%), target 707 (50.8%); gap median 19.50 points; minutes held median 318; without the 10 best -$84,317 longs (gap down) n=613 net +$2,782 | shorts (gap up) n=778 net -$32,669 by gap size: 0.10%+ n=442 avg +$7 | 0.25%+ n=465 avg -$33 | 0.50%+ n=332 avg -$111 | 1.00%+ n=152 avg +$127 by year (n, net): 2020 228 -$21,613 | 2021 201 -$22,445 | 2022 218 -$8,293 | 2023 205 -$581 | 2024 184 -$4,735 | 2025 196 +$30,359 | 2026 159 -$2,578 control (entries moved to other days, 09:31, same distances, 500 runs, 1 s): mean trades 1391.00, median avg -$46, 5-95% -$107 .. +$13; real avg -$21 at percentile 77.20 [FAIL] 1 PF >= 1.2 in validation: VAL PF 1.07 [PASS] 2 >= 50 trades in each period: 852 / 233 / 306 [FAIL] 3 t >= 2.0 on development: DEV t -1.24 [FAIL] 4 above 95th pct of the control: percentile 77.20 [FAIL] 5 positive without top-10 trades: -$84,317 [PASS] 6 holdout net positive (flagged used): HOLDOUT net +$13,887 PF 1.07 VERDICT Buried (2/6 gates) rule 3: 8 trades on days touching a known hole; without them avg -$16, gates 2/6 -> Buried (verdict unchanged)