Skip to main content
2026-05-22 · 4 min read · ← 1 · strategy · research · events · evaluation

Event gates cost Sharpe when the event has edge

what you'll learn · Why an event-flatten gate underperforms its own baseline when the data generator gives the event a directional edge — and what the three arms (baseline, gate, gate's inverse) need to read together to find out.

Ran the 15-arm FOMC compare at a config where the synthetic has +50 bps drift baked into event days. Long-only wins (Sharpe 1.88), baseline trails at 1.24, the blackout and damping arms lose -0.11 and -0.14 Sharpe to baseline, the drift arm crashes to 0.64. The gates aren't broken — they're throwing away the exact exposure the synthetic data rewards.

The 15-arm FOMC compare at /strategies/compare/ ships a pinned result for one config — seed 7, 200 bars, FOMC vol multiplier 3.0, and the bit that does the work: fomc_drift_bps = 50. The synthetic generator adds a +50 bps directional drift on event days on top of the elevated vol. Every strategy reads the same price panel; the only difference between arms is which positions they hold near events.

The result reads top-to-bottom on Sharpe:

Arm Sharpe Δ vs baseline
long-only momentum 1.88 +0.64
equal-risk long-only 1.88 +0.64
baseline (long-short) 1.24
spread filter (gate never engages) 1.24 0.00
blackout (24h pre-event flatten) 1.13 −0.11
damping (continuous risk-off) 1.11 −0.14
spread filter tuned 0.83 −0.41
ts-momentum (absolute threshold) 0.63 −0.61
drift capture (4h post-event) 0.64 −0.60
vol-weighted momentum 0.58 −0.67
two-factor (momentum + z-score) −0.14 −1.39
three-factor −0.27 −1.51
four-factor (tuned) −0.53 −1.77
reversal (sign-flipped drift) −0.64 −1.88

The shape that matters: every event-gate arm underperforms its own baseline. Blackout flattens 24 hours before FOMC. Damping ramps risk-off smoothly. Both are giving up exposure during the window the synthetic rewards most. The drift-capture arm trades the wrong direction of the same mistake — it only holds for 4 hours after release, missing the broader drift. The reversal arm (drift’s sign-flipped counterfactual) is the cleanest reading of the data: at −0.64 Sharpe it confirms the event window is continuation-flavoured, not reversion-flavoured, by being the exact mirror of the drift arm.

Why this is the three-arm A/B doing its job

The two-arm shape baseline vs blackout answers “does the gate move the PnL number?” — yes, blackout’s PnL is $59,780 vs baseline’s $67,168. The gate moves the number ([[the-baseline-arm-you-forgot]] calls this out). What that two-arm result can’t tell you is which direction the event is moving the panel. The gate’s inverse — the drift-capture arm — answers that: positive capture-only Sharpe (0.64) and a positive PnL slice say the event window has continuation-flavoured edge.

The blackout arm isn’t broken. The blackout arm is correctly implementing “give up the event window” on a data generator where the event window is positive-edge. The deficit (−0.11 Sharpe) is the cost of the protection — what the gate is paying to avoid the volatility the synthetic also bakes in. On this data the volatility doesn’t show up as additional drawdown (max-DD is identical across baseline/blackout/damping), so the gate is paying without receiving the protection benefit it would on data where the event window had real left-tail risk.

Long-only’s lead is the same lesson from the other side

long_only (and its equal-risk variant) lead at Sharpe 1.88 because they’re concentrating exposure into the top-quantile basket — the same basket that captures the most of the +50 bps event-day drift. The cost is per-seed dispersion (see [[long-only-buys-asymmetric-exposure]] for the multi-seed Sharpe-stdev result), but at this single pinned seed the bet is paying off. The point isn’t that long-only is better — it’s that on data with positive event-day drift, strategies that maintain exposure beat strategies that give it up, and long-only is the cleanest “more exposure to the upper tail” arm in the catalog.

What the factor arms read

The two-/three-/four-factor variants all underperform negatively. This isn’t a long-vs-event question — it’s the [[higher-moments-add-noise-faster-than-signal]] problem on a different surface. On a synthetic with positive directional drift, adding z-score (mean-reversion) to the score pulls weight away from the directional bet that actually pays. The four-factor-tuned arm is worst (−0.53) because the human-tuned weights overfit the wrong objective.

This is also the reading [[drift-vs-reversal-as-counterfactual]] predicts: when drift and reversal sit symmetrically around baseline, you can read which sign the panel is leaning before investing in a multi-factor sort.

The honest caveat

[[synthetic-data-shows-what-you-were-solving-for]] applies. This result is what you get when you bake +50 bps of directional event-day drift into a synthetic and then ask the catalog what it thinks. Real FOMC days don’t come with a guaranteed directional drift — they come with a vol shock and a regime that depends on what was already priced in. The same comparison run with fomc_drift_bps = 0 would change the leader (the gates stop losing Sharpe; the long-only loses its directional edge). The right way to read /strategies/compare/ is as a shape test: which arms move in which direction relative to each other? The synthetic axis is a tool to vary that test; the absolute numbers don’t transfer.

What this is on the site

The visualised version of every Sharpe number above lives at /strategies/compare/ — same data, on a shared visual axis, grouped by intervention family. A reader who wants to verify can run the regen command at the bottom of that page and assert bytewise equality on the resulting JSON.

deskgdfindgfstrategiesgsfeaturesgepromotionsgpapigabotgbwritinggw

Shortcuts are no-ops while typing in an input or textarea.