GRO/LRO Receive-Aggregation Burst Slippage Playbook

2026-03-20 · finance

GRO/LRO Receive-Aggregation Burst Slippage Playbook

Why this exists

In low-latency execution stacks, market-data quality is usually monitored via packet loss, median feed delay, and CPU usage.

Yet many desks still leak p95/p99 implementation shortfall because of receive-side packet aggregation:

This is a hidden infra tax: not pure market regime, not pure model error.


Failure mechanism (NIC/kernel -> execution)

  1. RX path coalescing/aggregation (GRO/LRO + interrupt moderation) increases packet batch size.
  2. Event delivery becomes bursty: long quiet gaps followed by dense message clusters.
  3. Book features (microprice, imbalance, refill) are computed on lumpy timestamps.
  4. Child-order logic overreacts to burst windows and underreacts during silent windows.
  5. Passive orders age out of favorable queue slots; aggressive catch-up flow increases.

Result: tail slippage inflation with deceptively stable averages.


Slippage decomposition with aggregation term

For parent order (i):

[ IS_i = C_{impact} + C_{timing} + C_{routing} + C_{rx-agg} ]

Where:

[ C_{rx-agg} = C_{stale-book} + C_{burst-dispatch} + C_{queue-decay} ]


Operational metrics (new)

1) RABI — Receive Aggregation Burst Index

[ RABI = \frac{p95(\text{msgs per recv-batch})}{p50(\text{msgs per recv-batch})} ] High RABI indicates clumpy delivery dynamics.

2) GGI — Gap-Gini Index

Gini coefficient over inter-arrival gaps at strategy ingress. Higher GGI = more uneven timing.

3) QAS95 — Quote-Age Skew p95

p95 of feed age at decision time minus matched low-aggregation baseline.

4) BCR — Burst Coupling Ratio

Fraction of child orders emitted within top-decile feed-burst windows. Direct coupling between bursty intake and bursty execution.

5) BAT — Burst Aggregation Tax

Incremental IS in high-RABI windows vs matched low-RABI windows. This is the money metric.


Feature set to log in production

Kernel/NIC features

Feed-shape features

Execution outcome features


Identification strategy (causal)

Use matched-window attribution, not simple correlation:

  1. Match windows on spread, volatility, participation, and TOD bucket.
  2. Split by low/high RABI (or BCR).
  3. Estimate incremental tail IS with host and symbol fixed effects.
  4. Validate with controlled canary toggles (e.g., GRO off on one host pool).

If BAT drops materially after aggregation reduction while market covariates stay matched, the uplift is infra-causal.


Regime state machine

RX_CLEAN

RX_AGGREGATING

RX_BURST_DISTORTED

RX_SAFE_CONTAIN

Use hysteresis + minimum dwell times to prevent state flapping.


Control ladder (ops + model)

  1. Tune receive coalescing first
    • revisit rx-usecs / rx-frames and adaptive-rx behavior under replay
  2. Disable LRO for latency-critical feed paths
    • LRO often harms timing fidelity for microstructure-sensitive workloads
  3. Evaluate GRO policy by host class
    • some hosts can keep GRO off safely; others need calibrated compromise
  4. Decouple feed-burst and dispatch-burst logic
    • enforce inter-child spacing floor and per-window burst caps
  5. Inject aggregation features into slippage model
    • include RABI/GGI/QAS95/BCR in both mean and tail heads
  6. Route urgent flow to clean-ingress pool during RX_BURST_DISTORTED
    • infra-aware routing can outperform aggressive repricing under distortion

Failure drills (must run)

  1. Coalescing sweep drill
    • canary through rx-usecs/rx-frames settings; measure BAT response
  2. GRO/LRO toggle drill
    • compare ingress burst stats + tail IS on matched symbols
  3. Burst-replay drill
    • replay captured burst traces to verify state transitions and dampers
  4. Rollback drill
    • prove deterministic rollback to known-good NIC/kernel profile

Anti-patterns


Bottom line

GRO/LRO/coalescing can silently rewrite your execution clock.

If receive aggregation is not measured and controlled, your strategy trades on burst artifacts rather than live market cadence—and pays a persistent tail slippage tax.


References