BL-IS-012: Session Characterisation
BIJECTIVE LABS
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 overlapNeither 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:
| Metric | Dispersion ratio | Reading |
|---|---|---|
| Half-spread | 1.01 | Flat across 24 hours |
| Impact-spread | 1.01 | Flat |
| Depth, top 5 | 1.09 | Marginal |
| Absolute oracle premium | 1.70 | Mild |
| Realised volatility, 1 minute | 1.74 | Moderate, roughly 2x peak over trough |
| Trade rate / notional | 2.4 / 3.0 | Strong, 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:
| Session | n | Pct of events | Pct of clock | Concentration |
|---|---|---|---|---|
| ASIA | 11 | 27.5 | 29.2 | 0.94x |
| EU | 12 | 30.0 | 25.0 | 1.20x |
| US | 13 | 32.5 | 33.3 | 0.98x |
| OFF | 4 | 10.0 | 12.5 | 0.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.