05DarkBook documentation
What it costs
Size privacy is a purchase. This page is the receipt: what the taker pays for it, who does not pay for it, and the configuration where the whole thing stops working.
The question that decides whether a size-blind book is worth building is simple
to ask and awkward to answer: if a maker cannot see how much you want to trade,
do they quote you tighter or wider? The agent-based literature predicted wider
unless the size bands carry enough signal to price against. A simulation in
research/band-signal agrees, and puts a number on it.
On the live five-band schedule a maker breaks even at a 1.991 bps half-spread against 1.790 bps on an otherwise identical transparent book. The gap is +0.201 ±0.075 bps, about 11% wider. The uninformed taker crossing that spread pays 1.771 bps against 1.532 bps transparent. Half-spreads are per lot in basis points of the reference mid of 106.5 USD.
Baseline. Informed flow slices its orders and the maker detects the split. Maker profit per lot: +0.017 bps.
What DarkBook runs. +0.201 ±0.075 bps against the paired transparent run. Maker profit per lot: -0.011 bps.
One band, no size information at all. +2.555 ±0.063 bps. This is what the schedule is buying you out of.
Read from research/band-signal/run_full.log, section A, at commit f5a832f. 56 configurations, 300,000 rounds after a 100,000-round burn-in, 16 seeds, band schedule read live from constants.rs. Bars show the break-even maker half-spread; the bracket is the reported interval across seeds.
The taker pays, not the maker
Every row in that comparison is break-even calibrated. The maker is held to zero expected profit by construction in 50 of the 56 configurations, including both rows above: the live schedule maker earns -0.011 bps per lot and the transparent maker earns +0.017 bps. Neither of those is a margin. The widening is not maker profit, it is a transfer from the taker into the spread.
| Configuration | Break-even maker half-spread | Uninformed taker half-spread | Maker profit per lot |
|---|---|---|---|
| Transparent CLOB | 1.790 ±0.039 | 1.532 | +0.017 |
| Live five-band schedule | 1.991 ±0.064 | 1.771 | -0.011 |
| Fully blind, no size | 4.346 ±0.050 | 4.394 | +0.011 |
All figures in bps per lot of the reference mid 106.5 USD, from section A of the run log.
The control that could have failed
A measured gap between two regimes is only about size information if the two regimes differ in size information and nothing else. The run includes a control for exactly that: a 128-band partition identical to the transparent maker's own, with over-declaring disabled, so the two information sets match. It reads +0.029 ±0.079 bps, which is zero. Two regimes with matched information sets collapse onto each other, as they must, so the +0.201 is about size and not about the plumbing.
The run also carries five self tests that each have a failing branch, and the model is rejected if any of them fails. The sharpest is the mechanism test: the band-minus-exact gap reads +2.615 bps when the size signal is switched on and +0.395 bps when it is switched off. If hiding size were not what moved the spread, that gap would not shrink.
Where it breaks
The 0.2 bps number assumes a risk-neutral maker. Drop that assumption and the picture changes, not by widening but by withdrawal. At a risk aversion of gamma 0.05 the gap goes to +1.351 ±0.114 bps, and the share of volume declared in the Block band collapses from 14.7% to 2.8%.
Read from research/band-signal/run_full.log, band usage section, rows 'LIVE rust schedule' and 'live gamma=0.05 (raw)'. The risk-aversion runs are not break-even calibrated; they are the six configurations out of 56 where the maker's profit is allowed to read as the risk premium it charges.
Read that as a behaviour, not a price. A risk-averse desk does not widen its large-band quote and keep trading. It stops quoting the large bands and the flow moves down into Medium and Large. That is the live risk to this product: if real desks price large size the way a gamma 0.05 maker does, the top of the schedule becomes decorative and DarkBook is a venue for mid-size flow that happens to hide its size.
How stable the number is
The +0.201 figure comes from one parameter set. The run sweeps around it so a reader can see how much of the result is the assumption and how much is the mechanism.
| Sweep | Extra half-spread vs its paired transparent run |
|---|---|
| Base case, informed fraction 0.20 | +0.201 ±0.075 |
| Informed fraction 0.05 | +0.274 ±0.025 |
| Informed fraction 0.10 | +0.384 ±0.044 |
| Informed fraction 0.35 | +0.230 ±0.075 |
| Informed fraction 0.50 | +0.097 ±0.069 |
| Maker cannot detect order splitting | +0.202 ±0.054 |
| Informed trader rotates wallets, 50% | +0.201 ±0.064 |
| Informed trader rotates wallets, 100% | +0.237 ±0.065 |
| Uninformed flow pads bands, 25% cover | +0.844 ±0.084 |
| Uninformed flow pads bands, 60% cover | +1.134 ±0.067 |
| Thin size tail | +0.505 ±0.061 |
| Fat size tail | +0.207 ±0.044 |
| Fast reveal horizon, 10 rounds | +0.067 ±0.027 |
| Slow reveal horizon, 90 rounds | +0.776 ±0.136 |
Read from research/band-signal/run_full.log, sections B, C, E and G. The sign
never flips: across every sweep in the run the banded book is at least as wide as
its paired transparent run.
Two of those rows deserve attention rather than a glance. Cover traffic, the strategy where uninformed orders deliberately pad into higher bands to hide the real ones, more than quadruples the cost at 25% adoption and does not stay contained at 60%. And the slow-reveal row shows the result is partly about how long the information stays valuable: when the informed trader's edge decays over 90 rounds instead of 30, the cost of hiding size rises to +0.776 bps.
Method
- 56 configurations, 300,000 rounds each after a 100,000-round burn-in, 16 seeds, break-even located on a grid of 8 quote multipliers across 5 seeds.
- The band schedule is read live from
programs/darkbook/src/constants.rsat run time, so the study cannot drift away from the deployed ceilings without the log saying so. - The transparent maker gets its own 128-bin geometric size partition, the finest schedule in the sweep, so the baseline is never handicapped by being coarser than the thing it is compared against.
- Base parameters: informed fraction 0.20, event probability 0.03, event mean 0.055, reveal horizon 30 rounds, price impact kappa 4000, max size 32,768 lots, split detection on, risk aversion 0, collateral carry 3e-06, fee 0.0021 per lot.
- All half-spreads are per lot, in basis points of the reference mid of 106.5 USD.
What this does not establish
The maker in this simulation is a break-even Bayesian learner with a bandit over quote multipliers. A real desk has inventory limits, hedging venues and a risk officer, and none of those are in the model. The 0.201 bps figure is the model's estimate awaiting desk validation. It is not a measured venue statistic, and it should not be quoted as one.
Why this page exists
A venue that hides something has an obvious incentive to describe the hiding as free. The cost is here, at the top of the page, in the same units a trader uses to compare venues, because a privacy claim with no price attached is a claim nobody has checked.