trading / confluences / b_dryup
Corpus lane — EN-37 (inversion) · One arm too rare to refute anything.
The opposite of a volume spike: does the breakout work BETTER when the decision bar is quiet — 0.70× or less of the 20-bar average?
EN-37 volume dry-up (the ANTI-c3 hypothesis). 1 iff the decision 5m bar's volume is <= 0.70 x the mean volume of the 20 preceding 5m bars on the CONTINUOUS series (the same series and lookback c3 / `b_volhard` use). Fewer than 21 closed 5m bars, or a non-finite / non-positive mean -> 0. The 0.70 multiple is OURS, not sourced: the backlog card gives no number. Declared as such in SCREEN-2026-08-07-DESIGN.md §A.1 and in `SCREEN_PROVENANCE`; it was fixed there before any value was computed.
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.
| Field | Value |
|---|---|
| Source component | EN-37-volume-dry-up |
| Evidence tier | CLAIMED |
| Backlog rank | #36 · 2 source threads |
| frame | "m5" |
| lookback_bars | 20 |
| series | "continuous" |
| vol_mult | 0.7 |
| Note | the 0.70 multiple is OURS, not sourced — the card gives no number; fixed in the design doc before any value was computed (design §A.1, and §A.2 records why the same latitude was refused to EN-12) |
| Design doc | backtests/conf_lab/SCREEN-2026-08-07-DESIGN.md |
| Doc sha256 | e2ba7ca77acce01c03ebcdb7afb51ffade7bb7a591303a2923329dba13a91d94 |
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.
| Era | n filled | Prevalence | Δ mean R | matched p | boot 95% CI | flag |
|---|---|---|---|---|---|---|
| pre-2025 | 1,790 | 2.90% | +0.1161 | 0.5289 | [-0.233, +0.491] | — |
| 2025+ | 499 | 1.00% | -0.1096 | 0.8636 | [-0.942, +0.720] | — |
| Measure | Value |
|---|---|
| Candidate rate (all 2,882) | 2.15% |
| Limit fill rate — bit = 1 | 91.94% |
| Limit fill rate — bit = 0 | 79.15% |
| Fill-conditioning gap | +0.1279 |
| Live take rate — bit = 1 | 6.45% |
| Live take rate — bit = 0 | 17.66% |
| Live bit | Agreement | Jaccard |
|---|---|---|
| c1_trend | 66.80% | 0.0219 |
| c2_vwap | 39.14% | 0.0393 |
| c3_volume | 16.95% | 0.0000 |
| c4_sweep | 25.64% | 0.0252 |
| c5_htf | 70.42% | 0.0188 |
| c6_room | 88.42% | 0.0221 |
| Stratum | n on | n off | mean R on | mean R off | crude Δ |
|---|---|---|---|---|---|
| other live bits == 0 SMALL | 0 | 2 | — | -0.4742 | — |
| other live bits == 1 | 5 | 101 | +0.1462 | -0.2956 | +0.4418 |
| other live bits == 2 | 28 | 641 | -0.0234 | -0.0683 | +0.0449 |
| other live bits == 3 | 20 | 933 | -0.3125 | -0.0167 | -0.2958 |
| other live bits == 4 | 4 | 472 | +2.1602 | +0.0974 | +2.0627 |
| other live bits == 5 | 0 | 75 | — | -0.0263 | — |
| other live bits == 6 SMALL | 0 | 8 | — | -0.1948 | — |
UNDERPOWERED, and that word was chosen before the number was seen. The bit fires on 2.5% of filled rows (61 of 2,289), so one arm holds well under 5% of the data and the screen declared in advance that a null here means 'we could not tell', NOT 'refuted'. The measured pooled delta is +0.103 R with matched p=0.562 and a bootstrap CI spanning [−0.207, +0.440] — a range wide enough to contain almost any hypothesis. Its 0.70 multiple is also OURS, not sourced: the backlog card gives no number, and the design doc says so out loud (§A.1) while §A.2 records why the same latitude was refused to EN-12.
It needs POWER, not a rerun: many more rows in the rare arm, which means a longer forward window or a wider population, and a pre-declared minimum detectable effect. Re-running it on these 2,289 rows would produce the same shrug and spend another multiplicity slot.