BL-IS-012: Session Characterisation

BIJECTIVE LABS


BIJECTIVE LABS . SEP 9, 2026


BL-IS-012: Session Characterisation

Status: RELEASED

Classification: PUBLIC

Revision: 1

Date: 2026-09-09


1. What it measures

Microstructure state bucketed by UTC hour and by an a-priori session label, on two separate axes.

Environment. Half-spread, impact-spread, top-five depth, absolute oracle premium, realised volatility, trade rate, and notional turnover, each read from book, context, trade, and candle state observed at the same instant it is bucketed.

Event supply. A count of a pre-registered cascade-exhaustion event definition, bucketed by the same clock and compared against a session's share of the twenty-four-hour day through a concentration index.

utc_hour(t)        = floor(t_ms / 3,600,000) mod 24
session_of_hour(h) = US    13-21 UTC
                      EU     7-16 UTC
                      ASIA   0-8  UTC
                      OFF    otherwise, priority US > EU > ASIA at overlap

Neither axis touches a forward return anywhere in its computation. Section 2 is the reason that omission is a design choice rather than a gap.


2. Why it computes no forward return

Whether time of day is a usable lever on a strategy resolves into exactly three separable questions: does the cost of trading vary by hour, does the supply of tradeable events vary by hour, and does the quality of the outcome once an event fires vary by hour. The first two questions are answerable with a clock and a counter. Neither requires a cost model, a sizing rule, or a single basis point of profit and loss.

This instrument answers the first two and stops there by construction. The third question, whether reversion quality differs by session, does require a forward-return calculation, and that calculation is held in a separate, pre-registered instrument outside this specification's boundary. Folding it in here would let an environment reading double as an undeclared strategy screen, which is exactly what R-12 and the pre-registration this instrument was built under both prohibit. The boundary is not caution for its own sake: it is what makes it possible to close two-thirds of a timing question at the cost of a count against a clock, before any pre-registration budget is spent on the more expensive third.


3. Interface

characterize_session(lake, coin, book_sample) -> SessionReport
 
  lake          recorded venue lake: book, assetctx, trades, candle streams
  coin          instrument, run independently per coin
  book_sample   stride for sampling the book stream, which is heavy at
                full resolution
 
Returns, per metric in {half_spread_bps, impact_spread_bps, depth_top5_usd,
abs_premium_bps, realized_vol_bps, trade_rate_per_min, notional_per_min_usd},
bucketed by UTC hour: n, mean, median.
 
concentration_by_session(events) -> ConcentrationReport
 
  events   a pre-registered event set from one fixed detection grid, never
           searched for this measurement
 
Returns, per session: n, share of events, share of the 24-hour clock,
concentration index.

A structural finding on either axis is trusted only when it appears on at least two of the three coins tested. A single-coin reading is reported as a hygiene caveat, not as structure.


4. Specification

dispersion_ratio(m, coin) = quantile_90{ median(m, coin, h) : h = 0..23 }
                            / quantile_10{ median(m, coin, h) : h = 0..23 }
 
clock_share(s)   = count( h in 0..23 : session_of_hour(h) = s ) / 24
obs_share(s)     = count( e in events : session(e) = s ) / |events|
concentration(s) = obs_share(s) / clock_share(s)

concentration(s) = 1 means event supply proportional to session length; above 1, a session supplies more events than its clock share predicts; below 1, fewer. Causality holds by construction on both axes: every environment quantity resolves on state at or before the instant it is bucketed, and every event is bucketed on its own pre-registered exhaustion timestamp, which itself resolves only on data at or before that instant. No future price enters either computation.


5. Results

Environment, dispersion ratio by metric, BTC, 16 days of recorded lake:

MetricDispersion ratioReading
Half-spread1.01Flat across 24 hours
Impact-spread1.01Flat
Depth, top 51.09Marginal
Absolute oracle premium1.70Mild
Realised volatility, 1 minute1.74Moderate, roughly 2x peak over trough
Trade rate / notional2.4 / 3.0Strong, concentrated in the US session

Half-spread held constant at approximately 0.079 bps on BTC, 0.28 on ETH, and 0.064 on SOL, every hour of the day, on all three coins tested.

Event supply, cascade-exhaustion events under the fixed pre-registered grid, n = 40, 15.3 days, BTC 28, ETH 6, SOL 6:

SessionnPct of eventsPct of clockConcentration
ASIA1127.529.20.94x
EU1230.025.01.20x
US1332.533.30.98x
OFF410.012.50.80x

Half-spread and impact-spread are mechanically tight around the clock: a dispersion ratio of 1.01 settles the cost question with no cost model required. Activity concentrates hard in the US session, trade rate and notional running two to three times the trough, which raises the natural next question of whether tradeable event supply follows activity the same way. It does not. Every session's concentration index sits within 0.80 to 1.20 of proportional, indistinguishable from a clock-proportional null at this sample size. Two of three timing levers are closed here, and neither closure needed a single basis point of realised return.


6. Why this is the cheapest way to close a lever

A cost claim and a supply claim are both, at bottom, a distribution of a directly observed quantity against a clock: a spread in basis points, a count of events. Settling either requires only that quantity and a dispersion or concentration statistic on it. A reversion-quality claim is different in kind: it requires knowing what happened after an event, a forward-return calculation with its own pre-registration, null, and power budget. Testing the cheap two questions first, reaching for the expensive third only if the lever survives them, is what let this family close two-thirds of a timing hypothesis inside a single day's work.


7. What it does not do

It does not measure reversion quality. That third lever was tested separately, under its own pre-registration, in a distinct instrument this specification does not cover; it is named here only so a reader understands where the timing question was finally settled.

It does not authorise a session-conditioned strategy from either axis alone. A flat cost surface and a proportional event count are permission to stop looking at timing as a lever, not permission to start trading a session. Nor does it correct for two hygiene facts worth carrying alongside the headline: the event-supply sample is 70 percent BTC (28 of 40), so its session distribution is close to the BTC distribution alone; and no weekday-versus-weekend split was run on the environment axis, immaterial to a result this flat but not exercised.


8. Cross-references

BL-SD-033 for the cost-axis dossier this instrument's first half produced. BL-SD-034 for the event-supply dossier this instrument's second half produced. BL-SD-035 for the reversion-quality axis, tested outside this instrument. BL-D-009 rule R-12. Source report D-026.


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