Half-Day Session Compression Slippage Playbook
Date: 2026-03-14
Category: research (execution microstructure)
Scope: Slippage modeling and execution-control design for early-close / shortened sessions (e.g., 13:00 ET close)
TL;DR
Half-day sessions are not just “normal days with fewer bars.”
They compress the intraday liquidity clock, accelerate close-imbalance dynamics, and can trigger late-day crowding into thinner pre-close windows. If you run full-day priors on half-days, you usually under-forecast urgency and overestimate passive completion reliability.
Core fixes:
- introduce session-length-aware time normalization,
- estimate separate half-day volume curves and auction-share priors,
- tighten deadline-aware execution controls before the compressed close,
- monitor a dedicated Compression Tax metric.
1) Problem Statement
Many production execution stacks assume stable intraday structure:
- fixed session length,
- broadly reusable U-shaped volume priors,
- close-phase behavior similar to normal days.
On half-days (e.g., US equities early close at 13:00 ET on specific holidays), these assumptions fail:
- Volume-time mapping shifts (same wall-clock minute has different urgency meaning).
- Close auction/imbalance uncertainty arrives earlier and steeper.
- Liquidity replenishment cadence changes (fewer cycles before hard cutoff).
- Fallback options shrink (less time for passive retries before forced completion).
Net effect: latent slippage tax in q90/q95 tails, often hidden by aggregate daily averages.
2) Mechanism: Why Compression Raises Costs
Let:
T_full= standard session duration,T_half= shortened session duration,c = T_full / T_half= compression factor (>1on half-days),tau = elapsed_time / session_length= normalized session time in[0,1].
If your model uses wall-clock features trained on full days, then at real time t:
- urgency is under-estimated because
tau_half(t) > tau_full(t), - “time remaining” is overstated,
- passive queue optionality is overstated,
- close participation target is started too late.
This creates a deadline convexity effect: small delays near tau -> 1 produce disproportionately large market-impact jumps.
3) Data Contract Additions (Minimal)
3.1 Session Regime Metadata
Per venue/date:
isShortSession(bool)sessionOpenTs,sessionCloseTsscheduledAuctionCutoffTs(where applicable)holidayTag/ reason code
3.2 Intraday Shape Layer
Per symbol bucket (or symbol-venue):
- historical intraday volume curves conditional on
isShortSession - close-auction share prior distributions (mean + dispersion)
- imbalance-message time evolution templates near close
3.3 Execution Layer
Per parent/child:
- normalized start time
tau_start - normalized completion time
tau_done - fallback activation timestamps
- pre-close residual inventory path
Without explicit short-session tags, calibration silently blends incompatible regimes.
4) Feature Engineering
4.1 Replace Wall-Clock with Session-Clock
Use normalized time as first-class feature:
tau_now = (now - open) / (close - open)tau_remaining = 1 - tau_nowphase = {open, mid, preclose, auction}in normalized time bands
4.2 Compression-Aware Urgency Features
compressionFactor = T_full / T_sessionurgencyEffective = urgencyBase * f(compressionFactor, tau_remaining)residualToExpectedFlow = residualQty / expectedFlowRemaining(tau_now, regime)
4.3 Auction Risk Features
auctionSharePrior_mean,auctionSharePrior_std(short-session specific)imbalanceSlopeover recent auction updatespairedQtyAcceleration
4.4 Recovery-Capacity Features
retryBudgetRemaining(max realistic retry cycles until cutoff)passiveDwellCapacity(estimated queue dwell opportunities left)forcedCrossProbability
5) Model Architecture
5.1 Baseline
Standard slippage model (spread/volatility/imbalance/urgency/venue).
5.2 Regime Overlay
Add interactions:
isShortSession × tau_nowisShortSession × residualToExpectedFlowisShortSession × imbalanceSlopeisShortSession × childAggressiveness
5.3 Objective
Optimize tail-aware targets (q90/q95), not just mean bps.
Half-day failures concentrate in tails due to compressed fallback window.
6) Real-Time Control State Machine
State A: NORMAL
- No short-session flag.
State B: SHORT_SESSION_ACTIVE
Trigger: isShortSession=true.
Actions:
- switch to short-session volume/auction priors,
- increase minimum progress trajectory in normalized time,
- reduce passive dwell caps earlier than usual.
State C: COMPRESSION_STRESS
Triggers:
- residual-vs-flow gap breach,
- imbalance acceleration breach,
- projected completion miss probability above threshold.
Actions:
- step up aggressiveness in bounded increments,
- widen eligible liquidity destinations (within policy),
- pre-arm auction participation earlier.
State D: SAFE_COMPLETION
Trigger: hard cutoff risk high.
Actions:
- prioritize completion certainty,
- cap additional queue-risk exposure,
- enforce tail-budget protection logic.
Use hysteresis to avoid oscillation between B/C in noisy pre-close windows.
7) Control Levers That Usually Work
Time-Normalized POV/TWAP
Drive schedule bytau, not wall-clock.Pre-Close Inventory Guardrail
Hard cap residual inventory at key normalized checkpoints (e.g.,tau=0.85, 0.92).Adaptive Passive Dwell
Shrink maximum passive dwell as compression and imbalance risk rise.Earlier Auction Decision Gate
Move auction-join decision earlier on short sessions.Residual Convexity Penalty
Penalize plans that defer too much quantity into final compressed window.
8) Monitoring Metrics (Dedicated Dashboard)
- q50/q90/q95 slippage: short vs regular sessions
- completion miss probability calibration by
tau - residual inventory profile at normalized checkpoints
- forced-cross ratio in final phase
- auction participation error (planned vs realized)
- Compression Tax (CTAX):
CTAX = realized_slippage - counterfactual_slippage_if_full_session_model_corrected- track by symbol bucket and venue
If CTAX drifts positive for multiple short sessions, regime handling is stale.
9) Validation Protocol
Offline
- split backtests by
isShortSessionand by symbol-liquidity buckets, - compare baseline vs compression-aware policy on q95 cost + completion,
- include stress windows (index rebalance proximity, high volatility).
Shadow Online
- run old/new policies in parallel decisions,
- monitor decision divergence and projected deadline misses.
Canary
- small notional rollout on short sessions only,
- rollback gates on q95 degradation, completion miss, and control churn.
10) Common Failure Modes
“Same curve, fewer minutes” shortcut
Misses structural shift in close-phase behavior.Wall-clock features only
Creates hidden urgency miscalibration.No short-session auction priors
Auction participation becomes reactive, not planned.Late fallback activation
Leaves insufficient retry budget before cutoff.Average-only KPI governance
Tail damage stays invisible.
11) Deployment Checklist
- session calendar + early-close metadata integrated at runtime
- normalized session-clock features in production
- short-session-specific volume and auction priors calibrated
- compression-state controller enabled with hysteresis
- residual checkpoint guardrails configured
- q95 + completion canary rollback policy active
- CTAX dashboard live and reviewed after every short session
12) Key Takeaway
Half-day sessions are a distinct execution regime with compressed optionality.
Treating them as ordinary days causes systematic under-urgency and late forced impact. A session-clock-aware model plus compression-specific controls is usually enough to recover most of the hidden tax.
References (starting points)
- NYSE, Holidays & Trading Hours (early close schedule examples)
https://www.nyse.com/trade/hours-calendars - Traders Magazine, Closing Volume Discovery (closing-auction share context)
https://www.tradersmagazine.com/departments/ecns_and_exchanges/closing-volume-discovery/