Reg SHO Rule 201 (SSR) Slippage Playbook
Date: 2026-03-12
Category: research
Scope: US NMS short execution when the Rule 201 short-sale price test is active
1) Why this matters
Most slippage models assume both sides of the touch are symmetrically executable.
Under Rule 201 SSR (alternative uptick), that assumption breaks for short orders: execution/display at or below current NBB is restricted (unless an exception applies). The result is a structural execution wedge:
- lower immediate short-side executability,
- higher queue-loss/chase risk,
- nonlinear end-of-schedule catch-up costs.
If your scheduler ignores SSR state, it systematically underestimates short-side tail slippage on stress days.
2) Constraint-aware cost objective
Let parent short order have remaining size (R_t), horizon (H), and SSR state (z_t \in {0,1}).
Define action set (a_t) (rest, improve, cross, pause, reroute) and expected cost:
[ J(a_t\mid s_t,z_t)=\mathbb{E}[C_{spread}+C_{impact}+C_{delay}+C_{opportunity}+C_{constraint}\mid s_t,z_t,a_t] ]
Under SSR, add explicit constraint term:
[ C_{constraint}=C_{blocked}+C_{queue_drift}+C_{catchup_convexity} ]
where:
- (C_{blocked}): child orders rejected/invalid due to price test,
- (C_{queue_drift}): loss from repeated reposting above NBB,
- (C_{catchup_convexity}): later urgency after blocked passive attempts.
3) Effective executable depth under SSR
Define baseline executable short depth at time (t): (D^{base}_t).
Under SSR, only price levels strictly above NBB are generally eligible for non-exempt short execution. Let eligibility filter (\phi(p_t,\text{NBB}_t)\in{0,1}).
[ D^{ssr}t = \sum{\ell \in LOB_t} q_{t,\ell},\phi(p_{t,\ell},\text{NBB}_t) ]
with depth shrink ratio:
[ \text{DSR}_t = 1 - \frac{D^{ssr}_t}{D^{base}_t} ]
High (\text{DSR}) means displayed liquidity is mostly unusable for shorts under SSR.
4) Fill-toxicity tradeoff changes sign
Without SSR, waiting passively can improve spread capture.
With SSR active, waiting often has a different profile:
- fill hazard drops (fewer valid price points),
- delay hazard rises (schedule deficit accumulates),
- toxicity may still be high (stress regime that triggered SSR often has jumpy microstructure).
Use competing hazards:
- fill hazard (\lambda_f^{ssr}(t))
- adverse markout hazard (\lambda_a^{ssr}(t))
- deadline miss hazard (\lambda_d^{ssr}(t))
and optimize for q95/CVaR cost, not only mean IS.
5) SSR-specific metric stack
BCR (Blocked Child Rate)
Fraction of child intents that fail SSR price-test validity checks.UER (Uptick-Eligible Ratio)
Share of observed touch-near liquidity that is actually short-executable under SSR.QDR (Queue Drift Rate)
Queue-age loss from repeated repricing/reposting to remain compliant.SDR (Schedule Deficit Ratio)
Remaining-vs-planned completion gap under active SSR.SCC (SSR Constraint Cost)
Estimated contribution of (C_{constraint}) to total implementation shortfall.
Healthy trend on SSR days: BCR↓, QDR↓, SDR↓, SCC↓ while completion reliability stays within guardrails.
6) State controller for live execution
NORMAL
No SSR trigger. Standard short policy.
SSR_WATCH
Price approaches trigger zone; pre-arm SSR-safe tactics (smaller clips, fallback templates).
SSR_ACTIVE
SSR triggered; enforce constraint-aware routing:
- pre-trade validity filter on each child,
- avoid invalid-at-send behavior,
- prioritize completion policy that minimizes deadline convexity.
SSR_RECOVERY
SSR lifted; unwind defensive throttles gradually (hysteresis) to avoid overreaction.
SAFE
Activated on repeated rejects, stale quote risk, or budget-burn breach; preserve completion integrity over micro-alpha.
7) Practical policy updates
Constraint-first child generation
Validate SSR compliance before routing, not after reject.SSR-aware aggressiveness ladder
Increase urgency only when SDR and remaining horizon justify it.Deficit smoothing
Repay schedule deficits continuously; avoid end-window panic cross bursts.Venue- and order-type exception handling
Keep explicit handling for permissible exemptions (where policy/legal framework allows) with audit logs.TCA split by SSR state
Report IS separately for non-SSR vs SSR-active intervals.
8) Calibration workflow
Offline
- Label SSR active intervals from market-center trigger data.
- Reconstruct child-intent lifecycle (intent -> accepted/rejected -> fill -> markout).
- Estimate BCR/UER/QDR/SDR/SCC by symbol regime (ADV, volatility, spread class).
- Fit quantile models for shortfall with SSR interaction terms.
- Stress-test with synthetic high-DSR and high-SDR scenarios.
Online
- Track SCC budget-burn in real time.
- Auto-tighten controls when BCR or SDR spikes.
- Weekly recalibration of hazard parameters; daily refresh of regime multipliers.
9) Guardrails
- hard cap on invalid/rejected short child rate,
- minimum remaining-time buffer before urgency escalation,
- anti-oscillation hysteresis on aggressiveness state,
- venue quarantine when SSR reject anomalies appear,
- rollback trigger on q95/CVaR deterioration even if mean IS looks better.
10) Implementation checklist
- SSR trigger feed integrated and versioned
- Pre-trade SSR validity check in child-order builder
- SSR-aware deficit smoother enabled
- BCR/UER/QDR/SDR/SCC dashboard + alerting
- TCA attribution split by SSR vs non-SSR state
- Canary rollout with deterministic rollback gates
11) References
- SEC, Rule 201 of Regulation SHO (FAQ, Division of Trading and Markets).
https://www.sec.gov/rules-regulations/staff-guidance/trading-markets-frequently-asked-questions-7 - SEC Release No. 34-61595 (2010), Amendments to Regulation SHO (Final Rule PDF).
https://www.sec.gov/files/rules/final/2010/34-61595.pdf - Boehmer, Ekkehart, and Wu, Juan Julie (2013), Short Selling and the Price Discovery Process.
https://doi.org/10.1111/jofi.12000 - Reed, Adam V. (2013), Short Selling (Annual Review of Financial Economics).
https://doi.org/10.1146/annurev-financial-110311-101813 - Battalio, Corwin, and Jennings (2024), Circumventing SEC Rule 201 Short Sale Restrictions with Options (JFE).
https://www.sciencedirect.com/science/article/abs/pii/S154461232300363X
One-line takeaway
On SSR days, short execution is a constrained-control problem: model the constraint cost explicitly or you will underprice tail slippage and overpay in deadline catch-up.