BL-SD-017: Accumulation and Distribution Footprint, Regime-Gated

BIJECTIVE LABS


BIJECTIVE LABS . SEP 7, 2026


BL-SD-017: Accumulation and Distribution Footprint, Regime-Gated

Status: RELEASED

Classification: PUBLIC

Revision: 1

Date: 2026-09-07

Venue: Bybit Programme: I Verdict: FALSIFIED Axis of death: Idea Transferability: UNIVERSAL


1. Identification

FieldValue
Internal codeM#5, accdist_shadow, later referred to as B3
FamilySymmetric smart-money accumulation and distribution footprint, regime-gated
VenueBybit perpetuals
ProgrammeI
Pre-registered2026-06-26
Verdict issued2026-07-14
Pre-registration documentThe pre-registration, dated 2026-06-26
Verdict documentD-017 section 4, updated 2026-07-14; the verdict report dated 2026-07-14
PredecessorBL-SD-015, whose three named defects this design set out to correct

2. Economic thesis

Large participants reveal themselves not only in trends but inside ranging phases, where they accumulate before a markup or distribute before a markdown. The design detects that footprint from order-flow microstructure, CVD-price divergence, open-interest build, funding crowding, and book absorption, combined into a confluence score, and takes a symmetric position: long on a confirmed accumulation footprint, short on a confirmed distribution footprint, gated by a market regime classifier so the strategy never longs into an active market-wide markdown and never shorts into an active market-wide markup.

Who is forced to lose. The design record does not name a structural forced loser directly, in the same way its predecessor and the cointegration family do not. The closest candidate the design itself identifies is implicit rather than stated as a thesis: on a distribution setup, the short side receives positive funding from a crowded, funding-paying long side, which is a genuine structural income component of that specific setup, but the record does not elevate it to a forced-loser argument for the strategy as a whole.


3. Falsifiable claim

Pre-registered in the design specification, locked before any live trade was evaluated:

Validated, per direction, iff sized-NET block-bootstrap confidence interval is positive on a taker, funding-inclusive basis, beta-adjusted alpha is positive, the result beats a matched random-entry-in-regime null, no single symbol or episode carries more than approximately 40 percent of total profit, the result holds across at least 3 distinct episodes, and the sample reaches at least 50 trades per direction. Rejected iff the interval is at or below zero under realistic cost, sizing kills it, the result is concentrated, or it fails the null. Below the sample or episode floor, the direction is inconclusive rather than settled in either direction.

MetricThresholdDecision if crossed
Sized-NET block-bootstrap CI95, per directionat or below 0, or spans 0 at adequate powerREJECTED
Beta-adjusted alphanot above 0REJECTED
Random-in-regime nullnot beatenREJECTED
Diffusionone symbol above approximately 40 pct of PnLREJECTED
Sample and episodesbelow 50 trades or below 3 episodesINCONCLUSIVE, not settled

The verdict record applied a tightened reading of the first row for the long arm: at adequate power, a confidence interval whose upper bound is barely positive was treated as a rejection rather than as inconclusive, since the sample already clears the power gate the design specification set for a settled verdict. This record states that tightening explicitly rather than silently inheriting the more permissive literal wording.


4. Mathematical specification

Notation per BL-D-011. Symmetric, direction in {+1 long, -1 short}.
 
Regime classification, trailing only, from OHLCV, CVD, OI, funding, and book state at or before t:
  layer1_t in {UPTREND, DOWNTREND, RANGE}          from higher-high/higher-low structure
  layer2_t = confluence over { CVD-price divergence, OI-build, funding crowding,
                                 book absorption, liquidation side }
  regime_t in {markdown, markup, accumulation, distribution, neutral}
 
market gate:
  LONG permitted only if regime_market,t != markdown
  SHORT permitted only if regime_market,t != markup
 
entry_confirmation(regime_t, price_t, range_low, range_high, reclaimed_t, turned_t):
  LONG:  regime_t == accumulation AND ( (reclaimed_t AND price_t >= range_low) OR turned_t )  -> +1
  SHORT: regime_t == distribution AND ( (reclaimed_t AND price_t <= range_high) OR turned_t ) -> -1
  else 0
 
exit, first of, evaluated causally at each tick:
  adverse_bps  = direction * (entry_price - price_t) / entry_price * 1e4
  breached     = (price_t <= struct_stop) if direction == +1 else (price_t >= struct_stop)
  breached OR adverse_bps >= hard_cap_bps (250.0)          -> invalidation
  direction * footprint_now <= -0.4                         -> target, footprint flipped against the position
  hold_sec >= timeout_sec (172,800 s, 48 hours)             -> timeout
 
sizing: 5 USD reference notional per shadow trade, driven through KellySizer and
        PortfolioRiskManager for the sized-portfolio verdict
 
cost:
  net_bps      = gross_bps - fees - funding_pnl
  gross_bps    = direction * (exit_price - entry_price) / entry_price * 1e4   [walk-the-book fills; slippage inside price]
  fees         = 5.5 bps per fill * 2 = 11.0 bps round trip, taker
  funding_pnl  = direction * sum( realised 8-hour rates crossed during the hold ) * 1e4

Causality holds by construction. Both regime layers use only trailing OHLCV, CVD, OI, funding, and book observations. The entry trigger is confirmatory rather than anticipatory: it requires a price turn already visible in the tape, not a prediction of one. The exit terms reference only the current price, the current footprint reading, and elapsed hold time.


5. Operating envelope

ParameterValue for this measurement
Round-trip cost assumed11.0 bps taker round trip, plus realised funding over the hold; maker fills modelled separately and not the verdict basis
Execution channelTaker entry and exit, walk-the-book fills with slippage carried inside the price
Latency bandCold path; structural poll cadence of approximately 5 minutes
Measurement cadence5-minute, 15-minute, and 4-hour OHLCV, continuous CVD, open-interest, funding, and 50-level book reads
Capital scaleProgramme default, BL-FM-002 section 6
Venue and instrumentsBybit USDT perpetuals, liquidity floor 20,000,000 USD, hardcoded denylist against tokenized stocks and commodities
Data eraNET-valid era begins at the funding-accrual live fix, 2026-07-07 16:57 UTC, through the verdict on 2026-07-14

6. Instrument

The regime classifier and orchestrator, the entry and exit pure functions, and the supporting regime and cost modules implement the footprint logic. The official verdict instrument carries 7 of 7 unit tests and produced the verdict report dated 2026-07-14.

PropertyValue
Episode rulePer-symbol run, gap below 24 hours
InferenceDay-block bootstrap, CI95
Total trades recorded290
Trades in the NET-valid era157

The verdict is computed only on the NET-valid era, after a funding-accrual defect in the earlier live feed was corrected; trades before the fix carried a funding field that read zero on every settlement crossed, and are excluded from the verdict rather than corrected retroactively.


7. Results

ArmnEpisodesMean (bps)Median (bps)Win rateCI95Result
LONG15237, across 16 symbols, 8 days-27.11-15.8434.2 pct[-59.11, +2.33]REJECTED
SHORT55, across 4 symbols, 3 days-51.57-57.9040.0 pct[-263.32, +4.43]INCONCLUSIVE, below the power floor

Universe hygiene was checked directly rather than assumed to be the cause: excluding the symbols already flagged by the denylist audit still leaves a long-arm mean of approximately -19.6 basis points, so contamination does not explain the result.

The worst five long-arm symbols by total contribution were MAGMAUSDT at -1,066 basis points, NEARUSDT at -746, HYPEUSDT at -697, WLDUSDT at -625, and FARTCOINUSDT at -423, distributed across five different names rather than concentrated in one.

A contrast against the pre-fix era is reported because it is instructive rather than because it carries a verdict: the era-bug sample of 106 trades, in which funding read zero throughout, showed a mean of +4.8 basis points. Once funding was accrued correctly, the sign inverted. The earlier positive reading was an accounting artifact, not a signal.


8. Verdict, axis of death, and transferability

Verdict: FALSIFIED. Axis: idea. Transferability: UNIVERSAL.

The long arm is well powered: 152 trades across 37 distinct episodes, 16 symbols, and 8 days, comfortably clearing the pre-registered floor of 50 trades and 3 episodes. Its mean and median are both decisively negative, its win rate sits well below breakeven at 34.2 percent, and excluding the already-known universe contamination barely moves the result. This is not a hygiene problem and not a power problem; it is the footprint failing to add predictive value once honestly regime-gated, entry-confirmed, and funding-accounted.

The predecessor hypothesis, BL-SD-015, failed on three named, correctable defects: no regime gate, an empty regime field, and a funding accrual that never ran. This design corrected all three, and still failed, on a different mechanism: the confluence of CVD divergence, open-interest build, funding crowding, and book absorption does not, on the observed sample, predict a profitable directional move. That is a stronger finding than the predecessor's, because it rules out the specific defects rather than leaving them as an open explanation for the loss.

The short arm remains genuinely unresolved rather than falsified: 5 trades across 5 episodes is far below the power floor, and no verdict is drawn from it in either direction.


9. Cost and capacity analysis

The NET-valid era carries zero trades with a funding-crossing accounting defect, confirming the live fix held for the full sample used in the verdict. No separate gross figure is reported alongside the net figures in section 7; the round-trip cost of 11.0 basis points is small relative to the negative point estimates, which is itself part of the section 8 argument that this is not a cost-bound result. Capacity was not measured, and per-symbol concentration, while present, does not exceed the pre-registered diffusion threshold once the worst five names are inspected individually.


10. Envelope sensitivity and reopening conditions

No binding parameter exists to name on the long arm, because the finding survives the removal of both the obvious candidates, universe contamination and cost.

Reversal condition:  none computable on the long arm.

Zeroing the 11.0 basis point round trip does not move the median of -15.84 basis points into positive territory, and excluding the denylist symbols still leaves a mean of approximately -19.6. BL-D-002 section 4's test, would this be positive under arbitrarily favourable envelope parameters, resolves to no on the evidence available.

What would reopen it: the design record itself names a distinct, untested path rather than a parameter substitution. Version one is a moment-by-moment order-flow footprint classifier; it does not detect true multi-timeframe swing structure, real support and resistance, or Wyckoff phase, and its spring and upthrust entry path was disabled in this version, with only the confirmed price-turn path live. A structurally-aware successor, built only because the flow-only footprint has now been shown insufficient rather than pre-emptively, is the reopening path the design record itself anticipates.

What would not reopen it: further universe cleanup or a cheaper fee tier. Both were checked directly and neither moves the result.

The short arm has a separate, narrower reopening condition: continued accumulation at the observed rate of approximately 5 trades per week would require roughly 10 weeks to reach the 50-trade power floor, which exceeds any runway available to this measurement and was not pursued further.


11. Reference implementation

Published as 05_INSTRUMENTS/strategies/python/src/accumulation_distribution.py, with 45 tests, carrying the regime classifier, the footprint score, the market gate, and the entry and exit signal functions. The predecessor it supersedes is published beside it as 05_INSTRUMENTS/strategies/python/src/oi_accumulation.py.

The spring and upthrust entry path was never live in this version, and that was verified against the source during publication rather than carried over from a note: the engine's only call site passed reclaimed=False unconditionally, so in every trade this hypothesis measured, only the confirmed-turn route could fire.

A future reader must therefore not read this verdict as having falsified the spring and upthrust entry. It falsified the confirmed-turn entry, on this substrate, at this cost. The published module keeps the reclaimed argument in its signature rather than removing it, precisely so the untested path stays visible instead of disappearing into the history of a deleted parameter, and the test suite pins both routes so a reader can see that the untested one works.

Two properties of the footprint are pinned rather than asserted, because inverting either would flip the whole score without failing anything else. A negative funding rate reads bullish, since shorts are the crowded side and paying. Longs being flushed in a liquidation reads bullish, since that is the capitulation tell rather than a warning. Both are contrarian channels and both have a test of their own.

One piece of structure in the score is worth naming. The open-interest term is multiplied by the sign of the flow divergence rather than carrying a sign of its own. Open interest building says commitment is arriving; it does not say whose. The divergence is what identifies the side, so the commitment term takes its direction from it. Every component is also squashed into a bounded range before its weight is applied, so the five declared weights are the weights that actually apply rather than being overridden by whichever channel happens to carry the largest raw magnitude.


12. Evidence register

Related artifactCarries
The verdict report dated 2026-07-14The official verdict report, per-direction sample, episode, mean, median, win rate, and confidence interval figures reported in section 7. Not yet assigned an evidence identifier in BL-A-001

13. Lessons extracted

Fixing every named measurement defect from a predecessor hypothesis is necessary and is not sufficient. BL-SD-015 failed with an unpopulated regime field, a long-only bias into a decline, and a funding accrual that never ran; this design corrected all three, and the mechanism still failed, on a footprint that does not predict direction once measured honestly. The general rule this echoes, that a cost or accounting term missing from the measurement path can manufacture a false positive, is the same class of error BL-D-009 rule R-01 addresses, here surfacing as the era-bug contrast in section 7 rather than as a newly produced rule.


14. Cross-references

BL-SD-015 for the predecessor and the defects this design corrected. BL-D-009 rule R-01 on cost terms absent from the measurement path. BL-D-004 for the evaluation standard this hypothesis was measured against. BL-SD-000 ledger row ACCDIST.


Copyright (c) 2026 Bijective Labs. All rights reserved.