BL-SD-035: Session Structure in Reversion Quality

BIJECTIVE LABS


BIJECTIVE LABS . SEP 8, 2026


BL-SD-035: Session Structure in Reversion Quality

Status: RELEASED

Classification: PUBLIC

Revision: 1

Date: 2026-09-08

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


1. Identification

FieldValue
Internal codeTOC3
FamilySession structure characterisation, reversion-quality axis
VenueHyperliquid perpetuals
ProgrammeI
Pre-registered2026-07-17, spec locked before the run
Verdict issued2026-07-17
Pre-registration document2026-07-17_TOC3_reversion_by_session_preregistration.md
Verdict documenthl_toc1_session_characterization_2026-07-17.md, section 7
PredecessorsBL-SD-033, cost by session; BL-SD-034, event supply by session

Unlike its two predecessors, this measurement touches a forward return. Reversion after cascade exhaustion is exactly the quantity BL-SD-032 trades, and asking whether its quality differs by session means computing a markout, which is the one thing the first two dossiers in this family were built specifically to avoid. Every choice that could be locked before looking at data was locked in the pre-registration: the event grid, the horizon, the price series, the direction convention, and the comparison method. This dossier is the last of three timing levers this family was built to close, and it is the only one of the three built to touch a label.


2. Economic thesis

Cost does not vary by session, BL-SD-033. Event supply does not either, BL-SD-034. If session is to matter at all to a cascade-exhaustion strategy, the only channel left is whether price, once it has exhausted a forced-liquidation displacement, reverts toward oracle with different strength depending on what session it happened in. A session with thinner resting liquidity or fewer informed participants absorbing the displacement might show weaker reversion; a session with deeper two-sided flow might show stronger reversion. This is a question about signal quality conditional on session, not about cost or opportunity count, and it is the only remaining route by which session could function as a conditioner for BL-SD-032 without those two prior findings being overturned.

There is no new counterparty named here beyond the one BL-SD-032 already names: the participant whose forced liquidation created the displacement. This dossier asks only whether the strength of the reversion that follows depends on when it happens.


3. Falsifiable claim

Pre-registered before the instrument was run:

Gross reversion markout at the BR1 primary horizon, 120 seconds, does not differ by session. The null is rejected only if a pair of sessions, each with n at or above 8, has non-overlapping 95 percent confidence intervals on gross reversion.

MetricThresholdDecision if crossed
Any powered session pair (both n at or above 8), CI95 non-overlappresentFlag as a candidate for a new pre-registration in a later round, not an edge and not a modification to BL-SD-032
All powered session pairsCI95 overlapping, or fewer than two sessions reach n at or above 8Door closed: no session differential reliable at the power available

A methodological correction was made before the run and is recorded rather than absorbed silently. The original criterion compared each session's interval against the pooled mean. A unit test demonstrated that criterion is biased: a single outlier session pulls the pooled mean toward it, which can make an ordinary majority session appear falsely separated from a pooled figure that outlier itself distorted. The criterion was replaced with pairwise comparison between sessions before any data was examined, which is symmetric and does not inherit that bias.


4. Mathematical specification

Notation per BL-D-011.
 
Event set, fixed grid, unchanged from BL-SD-034 and its predecessor BR1:
 
  E  =  detect_events( alpha = 0.75, beta_pct = 0.005,
                        band_pct = true, flow_from_trades = true )
 
Fixed horizon, the BR1 primary horizon and the only one tested:
 
  H*  =  120 s
 
Fade direction, per event e, resolved at exhaustion time t_ex(e):
 
  entry(e)    =  mid_px asof t_ex(e)          executable price, per BL-D-006 audit
  oracle0(e)  =  oracle_px asof t_ex(e)
  fd(e)       =  fade_dir( (entry(e) - oracle0(e)) / oracle0(e) )
                    +1 if price sits above oracle and is expected to fade down,
                    -1 if below and expected to fade up,
                     0 excluded, no displacement to fade
 
Gross reversion at horizon, no cost term:
 
  p_H(e)      =  mid_px asof ( t_ex(e) + H* )
  r_gross(e)  =  fd(e) * ( p_H(e) - entry(e) ) / entry(e) * 1e4      [bps]
 
Session assignment, identical mapping to BL-SD-034:
 
  session(e)  =  session_of_hour( utc_hour( t_ex(e) ) )
 
Grouping and inference:
 
  grouped(s)     =  { r_gross(e) : session(e) = s }
  mean(s), CI95(s)   from a 10,000-draw bootstrap, fixed seed, per session and pooled
  door_closed        =  no pair (s_a, s_b), both n(s) >= 8, with CI95 non-overlapping

Causality holds by construction. entry(e) and oracle0(e) are resolved as of t_ex(e) using an as-of lookup that only admits observations at or before that instant; p_H(e) is resolved at t_ex(e) + H*, strictly forward of entry and used only as the outcome, never as an input to fd(e) or to the session bucket. No term entering the session grouping or the direction convention is a function of the outcome it is later compared against.

This is the gross return, deliberately, and the pre-registration states why: BL-SD-033 established that half-spread is flat across the clock, so a gross-versus-net distinction that would ordinarily matter is immaterial here. Because cost does not vary by session, a differential in gross reversion is the same thing as a differential in net reversion, and computing gross isolates the signal component without a cost model contaminating a comparison this dossier was built specifically to keep simple. Reporting a gross return without noting this equivalence would be misleading in a different family; here it is exact.

The exit price is fixed at H* and no other horizon was computed. Testing additional horizons after seeing this result is barred by R-12; a reader wanting a different horizon must pre-register it against unseen data.


5. Operating envelope

ParameterValue for this measurement
Round-trip cost assumedNot applicable, gross reversion only. Zero, by the equivalence argument in section 4, since half-spread is flat across sessions per BL-SD-033.
Execution channelNot applicable
Latency bandNot applicable
Measurement cadenceEvent-level, at the BR1 exhaustion timestamp, one fixed horizon per event
Capital scaleNot applicable
Venue and instrumentsHyperliquid perpetuals: BTC, ETH, SOL, pooled
Data eraRecorded shadow lake, same window as BL-SD-034, 15.3 days

6. Instrument

The reversion-by-session test, test-driven with 6 of 6 unit tests passing, full suite of 412 tests run clean. Reuses fade_dir, reversion_ret, and bootstrap_ci from the M3 reversion instrument and event_sessions from BL-SD-034's instrument without modification.

PropertyValue
Samplen=40 events, pooled 3-coin: BTC 28, ETH 6, SOL 6
Cross-coin dependencyBTC supplies 28 of 40 events; the pooled distribution is close to the BTC distribution alone, reported as a hygiene caveat, matching the same caveat carried in BL-SD-034
Inference10,000-draw bootstrap, fixed seed, per session and pooled
Comparison rulePairwise CI95 non-overlap between sessions, both members of the pair at n at or above 8; corrected pre-run from a pooled-mean comparison found to be biased

7. Results

SessionnGross reversion mean (bps)CI95Contains pooled meanPowered (n at or above 8)
ASIA11+6.14[-0.65, +14.00]YesYes
EU12+6.33[-1.68, +14.01]YesYes
US13+2.69[-6.95, +11.85]YesYes
OFF4-0.73[-15.40, +7.52]YesNo, n=4
POOLED40+4.39[-0.25, +9.02]----

Every powered session's interval contains the pooled mean, and every pair of powered sessions overlaps the other. No pair meets the pre-registered kill criterion.

A second, honest fact belongs alongside the primary result rather than beneath it. The pooled gross reversion itself, +4.39 bps, carries a CI95 of [-0.25, +9.02], which contains zero. At n=40, even the pooled sign of reversion is not established at conventional significance, consistent with the parent hypothesis BL-SD-032 remaining unproven on its own merits at gross +3.53 bps. This dossier is not a test of whether reversion exists; it is a test of whether reversion, whatever its strength, differs by session. The two questions are separate and this result answers only the second.


8. Verdict, axis of death, and transferability

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

The idea under test, that reversion quality after cascade exhaustion differs structurally by session, does not clear the pre-registered bar. No pair of powered sessions shows a non-overlapping interval; the session that looks weakest, OFF at -0.73 bps, carries n=4 and is excluded from the comparison by its own underpower rather than included as a finding. This is an honest inconclusive result treated correctly: the pre-registration named in advance that "no differential found at this power" is itself a valid closure, not a placeholder for a future positive result, and that is the reading applied here.

The verdict is UNIVERSAL because nothing in this measurement is a function of an operator's cost schedule, capital, or execution channel. It states a fact about when, within the day, a market mechanism behaves the way it behaves, not a fact blocked by a parameter any operator controls.

Combined with BL-SD-033 and BL-SD-034, all three legs of the session question this family was built to answer are now closed. Cost is flat by session. Event supply is proportional to session length. Reversion quality does not measurably differ by session at the power available. Session structure is not a live conditioner for BL-SD-032, on any of the three channels through which it could plausibly have mattered.


9. Cost and capacity analysis

Not applicable to a characterisation, and doubly so here: the section 4 equivalence argument means no cost term was needed even to make the reversion figures comparable across sessions.


10. Envelope sensitivity and reopening conditions

No binding parameter exists to name, because no session pair separated under the pre-registered criterion.

Reversal condition:  none computable.

There is no operator-controlled term, fee tier, capital scale, or latency band that would turn four overlapping intervals into a separated pair; what would need to change is the underlying market behaviour itself, or the statistical power available to observe it.

What would reopen it: substantially more data. At roughly 10 events per session, the confidence intervals span 10 to 20 basis points, wide enough that a true differential of several basis points between sessions would plausibly still read as overlapping. A rerun at several times this sample, on the same fixed grid and horizon, is the only route that would either confirm the flat reading with tighter intervals or surface what this measurement lacked the power to see. That rerun is not scheduled here.

What would not reopen it: testing a different horizon, a different price series, or a different direction convention against this same data. Every one of those was locked in the pre-registration specifically to prevent a search for the combination that produces separation, and applying that search after seeing this result would be exactly the horizon-shopping R-12 prohibits. A reader wanting a different horizon needs a fresh pre-registration against data this programme has not seen.

What this closes for BL-SD-032: the full timing-lever question. Three measurements, BL-SD-033 on cost, BL-SD-034 on event supply, and this dossier on reversion quality, were run specifically to determine whether session-conditioning could serve as a lever for that hypothesis. None found one. BL-SD-032 remains bound by execution structure, not by timing, and no further session-conditioning work is warranted on the current sample.


11. Reference implementation

Published as 05_INSTRUMENTS/strategies/python/src/session_structure.py with 52 tests, carrying the session partition, the grouping, the interval machinery, the door criterion, and the fade direction and reversion return this row reuses from the predecessor reversion instrument. The BR1 detector and the event collection remain scheduled.

The door criterion carries a correction that is the methodological content of this row, and the published test suite pins it rather than describing it. A session is flagged only when some pair of sessions, both at or above the power floor, have non-overlapping intervals. The door closes when no such pair exists.

An earlier form compared each session's interval against the pooled mean, and that asks the wrong question. The pooled mean contains every session including the one being tested, so one session with an extreme mean and a large sample drags the comparison point toward itself and can make every other session look separated from it. The hypothesis asks whether reversion quality differs between sessions, not whether any session differs from an average that includes it. One test builds exactly that configuration: two quiet sessions whose intervals overlap each other, one extreme session holding most of the sample, and a pooled mean sitting far from both quiet sessions.

The power floor applies to both members of a pair rather than to one, so a three-observation session cannot flag a well-sampled one however extreme its mean. That has its own test.

One item is stated in the published module rather than resolved, and a reader re-running this row needs it. The intervals here come from a bootstrap that resamples observations independently. BL-IS-001 argues correlation-aware resampling is mandatory on this substrate and R-02 forbids per-leg statistics, but both arguments are made about legs held simultaneously across correlated instruments, where measured pairwise correlation is 0.737. These observations are events spread across coins and across time, so that argument does not transfer directly, and it does not obviously fail to either: a cascade hitting many coins inside one minute would produce exactly the clustering an independent resample understates. Whether these events cluster enough to require block resampling was not measured. The published function is named for the construction it uses, so the ambiguity sits in the signature rather than in a reader's assumption, and the direction of the risk is stated: narrower intervals make this door easier to trip, not harder.


12. Evidence register

IDArtifactCarries
E-0055 through E-0057Venue verification pulls establishing the Hyperliquid substrateContext for the book, assetctx, and trades fields the BR1 detector and the reversion computation read

This measurement is recorded in the narrative report shared with BL-SD-033 and BL-SD-034, backed by the instrument's own reproducible output, and is registered as D-027 in BL-A-006.


13. Lessons extracted

A pre-run methodological correction belongs in the record with the same weight as the result it produced. Comparing each session against a pooled mean rather than against its peers pairwise would have risked labelling an ordinary session artificially separated purely because a different session's outlier pulled the pooled figure toward it. Catching that with a unit test before the run, rather than after seeing a suspicious result, is the discipline this programme expects of every pre-registration that touches a forward return, and it is documented here because it changed the criterion actually applied rather than remaining a note that was never acted on.

The second lesson is procedural rather than statistical: an inconclusive result, arrived at honestly and at a pre-declared power threshold, is a legitimate way to close a question. This dossier did not find that session does not matter in some deeper sense; it found that at n=40 no differential is reliable enough to act on, and it says so rather than either overclaiming a null result as proof of nothing or treating the absence of significance as an invitation to keep looking.


14. Cross-references

BL-SD-033 for the cost measurement and BL-SD-034 for the event-supply measurement that precede this dossier in the same family. BL-SD-032 for the cost-bound hypothesis this three-part measurement was run to serve. BL-D-006 for the executable-price audit that governs the choice of mid_px over a smoothed mark. Ledger row TOC3.


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