Offline size/depth bid-structuring study (2026-07-16/17), the last untested fill lever after the live canary confirmed the 13.6pt fill −EV. Tested whether sizing DOWN to avoid reaching into stale/deep book improves per-share fill EV. Verdict: sizing is a NO-GO — fill EV is driven by BOOK DEPTH (exogenous liquidity), not our order size. The only (partial) survivor is depth-selectivity, which shaves btc/eth/sol to breakeven but not +EV.

VERDICT — Sizing is a NO-GO: it's liquidity, not size

Held order size ~constant (~10 shares in EVERY book-depth bucket), yet per-share net EV swings from −8¢ (thin book) to ~breakeven (deep book). The improvement is ALL book depth; our size doesn’t vary → it’s an exogenous liquidity effect, not a size effect. You cannot size a thin book into a deep one, so size-down cannot help. This joins the depth-aware sizing NO-GO from the opposite direction — the entire sizing lever is now dead.

Hypothesis Tested

Size DOWN to avoid reaching into stale/deep book → better per-share fill EV. Motivated by two prior signals:

  • The canary hint that small-order fills looked cleaner.
  • The 2× sizing NO-GO (sizing UP didn’t help; maybe sizing DOWN would).

The mechanism under test: our clip reaches into deeper, staler layers of the book → worse fills → so shrink the clip.

Why It Fails — EV Is a Function of Book Depth, Not Our Size

The decisive control: order size was held ~constant (~10 shares) across every book-depth bucket, yet per-share EV still varies enormously with the book’s depth. If size were the driver, holding it constant would flatten EV. It doesn’t.

Book depth (best_ask_sz)Per-share net EVWin rateRead
Thin (10–25)−8¢Worst fills
(monotone improve)
Deep (>150)−0.15¢ (~breakeven)76%Best fills

Order size in each bucket: ~10 shares (unchanged). The EV gradient is entirely the book, not us.

Depth-reach dose-response is NON-monotone

depth_reach = filled_size / best_ask_sz. If “exhausting top-of-book” (reach > 1) were the mechanism, it would be the worst bucket. It is NOT — the 0.5–1.0 reach bucket is worse than reach > 1. So “avoid exhausting top-of-book” is not the lever. The earlier “small orders fill better” intuition was a confound: low reach meant a deep book, not a small order.

The Partial Survivor — Depth SELECTIVITY (a fill gate), Not Sizing

The only real lever is a depth-conditioned fill gate: only bid when best_ask_sz ≥ ~50. It holds for the three MAJORS but not the alts:

AssetDeep-book net ¢Thin-book net ¢Holds?
btc−1.4¢−6.7¢Yes (→ ~breakeven)
eth+0.8¢−9.0¢Yes (→ ~breakeven)
sol+0.4¢−2.9¢Yes (→ ~breakeven)
xrp+2.2¢ (regardless of depth)+2.2¢No — depth-independent
dogedeep n=20 (noisy/reversed)No — too few, unreliable

Depth-selectivity only shaves majors to breakeven — not a cure

  • Real for btc/eth/sol only; shaves them to ~breakeven, not +EV.
  • Does not hold for xrp (+2.2¢ regardless of depth) or doge (deep n=20, noisy/reversed).
  • Costs volume (drops thin-book fires).
  • Confound not yet controlled: deep books may correlate with a calm/benign regime (size was held constant, regime was NOT). If pursued, nail the regime confound first — otherwise the gate may just be a calm-regime proxy.

Strategic Read — The Fill-Structuring Space Is Exhausted

Every bid-structure lever has now been examined with rigor and come back negative or marginal:

The only survivor is a marginal depth-gate to breakeven on 3/6 assets. Leaning toward CALLING IT: the edge is not capturable to +EV via any bid structure found → pivot to hunt a new edge where we are not the structurally-picked-off taker. Reaffirms signal-healthy-fill-is-the-problem and the signal-healthy read: the model is fine; the loss is at the fill.

Method (Reproduce)

  1. pm_fak_attempts (filled) → emitted_signals (join condition_idwindow_id, carry emit_ts).
  2. observations nearest as_of ≤ emit_ts, side-appropriate best_ask_sz / down_best_ask_sz via a LATERAL join.
  3. depth_reach = filled_size / ask_sz.
  4. label = sign(orders.realized_pnl_usd) per (condition_id, token_id).
  5. net ¢ = (win ? 1 − px : −px) − 0.07·px·(1 − px).

Sample: 1398 fills, 100% book-joined, 16% exhaust top-of-book (matches the 2× study’s ~18%). Depth columns confirmed present: crypto_shortterm.observations.best_ask_sz etc.