trading / confluences / b_stopband

b_stopband — stop-width band gate DEAD

Corpus lane — EN-26 (ledger-order column) · Scored and did not clear its own noise floor.

BURNED DATA — 2019–2026 was selected on before this lab existedNOT TV-VERIFIEDSCREENING ≠ CERTIFICATIONOPTIMISTIC FILL MODEL — touch fills, zero slippageMES ONLY · P1 M2 managementSOLO LEDGER IS NOT A BOOK — never summed

What it asks

Reject freak-width setups: the bit wants this trade's stop distance to sit within 0.5×–1.5× the median stop distance of the previous 20 signals.

Exact definition

Stop distance within [0.5, 1.5] x the trailing 20-SIGNAL median stop distance.

NOT a MarketView bit: the trailing median is a function of the previous 20 CANDIDATES, and the bit interface is f(candidate, view) with no access to other candidates. Computed instead as a ledger-order column in the screen script, strictly from candidates with an earlier decision_ct.

Fixed parameters & provenance

Every parameter below was fixed in the design document before any candidate value was computed. No sweep, no tuning: a bit that needs tuning to pass has failed.

FieldValue
Source componentEN-26-stop-size-band-gate
Evidence tierCLAIMED
Backlog rank#7
hi1.5
lo0.5
trailing_signals20
Noteledger-order column, not a MarketView bit — see SCREEN_DROPPED['b_stopband']
Design docbacktests/conf_lab/SCREEN-2026-08-07-DESIGN.md
Doc sha256e2ba7ca77acce01c03ebcdb7afb51ffade7bb7a591303a2923329dba13a91d94

Full-prefix causality proof

Because this column is a function of earlier candidates rather than of market bars, it does not go through the bit interface and cannot be certified by the harness's sampled coverage. It carries a stronger proof instead — every candidate, not a sample.

LayerCheckedViolations
Layer 1 — each candidate recomputed from its own prefix2,8820
Layer 2 — whole-column rebuilds on truncated ledgers, every retained row compared2050

Screen analytics — screen-2026-08-07

Conditional association on mean solo R, stratified on the count of the OTHER live bits, against a per-bit prevalence-matched null (50,000 i.i.d. Bernoulli draws at this bit's own prevalence, scored on its own strata). Population: 2,882 candidates, 2,289 filled, MES, 2019-06-04 → 2026-07-31.

Prevalence
82.66%
of filled rows
Pooled Δ mean R
-0.0152
stratified, vs bit=0
Matched-null p
0.8402
15.98th pctile of own null
BH q (15-bit family)
0.9517
q=0.25 gate
Bootstrap 95% CI
[-0.158, +0.124]
week-block, n=20,000 · p=0.8284
Win-rate Δ
-0.0083
secondary statistic

Per era · reported separately, never pooled into a verdict — each cell is a smaller sample than the headline

Eran filledPrevalenceΔ mean Rmatched pboot 95% CIflag
pre-20251,79082.91%+0.01230.8795[-0.157, +0.176]
2025+49981.76%-0.07410.6591[-0.371, +0.197]

Funnel & fill conditioning · a bit that mostly predicts whether a limit FILLS is not the same discovery as a bit that predicts whether a trade WINS

MeasureValue
Candidate rate (all 2,882)82.69%
Limit fill rate — bit = 179.40%
Limit fill rate — bit = 079.56%
Fill-conditioning gap-0.0016
Live take rate — bit = 118.09%
Live take rate — bit = 014.23%

Novelty vs the six live bits · high agreement means the bit is mostly restating a gate that is already in the stack

Live bitAgreementJaccard
c1_trend38.62%0.3034
c2_vwap58.15%0.5544
c3_volume72.21%0.7091
c4_sweep68.33%0.6667
c5_htf37.09%0.2760
c6_room24.07%0.0971

By stratum — does it work where the method actually trades? · the live A/B take rule is count >= 4, so the count>=4 rows are the only ones that could change a live trade

Stratumn onn offmean R onmean R offcrude Δ
other live bits == 0 SMALL11+0.3762-1.3246+1.7007
other live bits == 18026-0.1835-0.5556+0.3721
other live bits == 2537132-0.0767-0.0248-0.0519
other live bits == 3790163-0.0037-0.1162+0.1125
other live bits == 441264+0.0696+0.4056-0.3360
other live bits == 56411-0.0920+0.3556-0.4476
other live bits == 6 SMALL80-0.1948

Drop record — verbatim

NOT a MarketView bit: 'stop distance within [0.5, 1.5] x the trailing 20-SIGNAL median stop distance' is a function of the previous 20 CANDIDATES, and the bit interface is f(candidate, view) with no access to other candidates. It is computed instead as a ledger-order column in the screen script, strictly from candidates with an earlier decision_ct, and carries its own full-prefix causality proof (every candidate, not a sample) rather than the harness's sampled coverage.

Status — DEAD

NULL: pooled −0.015 R, matched p=0.840 (16.0th percentile), q=0.952. Its real contribution to the record is architectural. It is NOT a MarketView bit — 'the trailing 20 SIGNALS' is a function of previous CANDIDATES, and the bit interface f(candidate, view) has no access to those. It was therefore computed as a ledger-order column strictly from candidates with an earlier decision_ct, and it carries a stronger causality proof than any other column in the screen: full-prefix, every candidate recomputed from its own prefix (2,882 checked, 0 violations) plus 205 whole-column rebuilds on truncated ledgers with every retained row compared, 0 violations.

Retest path

None. The band is a hygiene rule that turned out not to be an edge; if it is ever wanted it should be argued as risk policy, not as a confluence.

Standing caveats

screen-2026-08-07stream conflab-pop-v1opportunity sha256 b62ca795de4a647b…harness ok · 0 real violations