Details
Election Momentum
Quote tight on 2026 US Senate · momentum signal from headline scanner · max-loss bounded by drawdown guard
Why this page is new
Today there is no Strategy detail page — only a list and a create form. The mock adds the page developers need: the bot pipeline visualised, per-bot parameters in one place, linked instruments, the reason-code allowlist the strategy can produce, and the promotion state. Everything the operator needs to understand and audit one strategy.State
demo-wired
Signal mode
Auto execute
Bots wired
7
Instruments
2
Decisions today
84
Bot pipeline
Every intent flows left to right. Each stage's bot reads from the registry, calls decide(), emits one envelope, passes (or rejects) to the next stage.
1. Intel
intel.macro_sentiment2. Discovery
disc.headline_scanner3. Strategy
strat.maker_tight4. Risk
risk.killswitchrisk.stalebookguardrisk.exposureguard5. Execution
exec.smartrouterLinked instruments
Markets this strategy is authorised to trade. Must all be V2-ready and trading.
| Market | Spread | State | |
|---|---|---|---|
| 2026 US Senate control election-2026-us-senate | 18 bps | trading | Open |
| UK snap election 2026 uk-snap-election-2026 | 47 bps | trading | Open |
Strategy parameters
Per-bot config. Defaults come from the spec; overrides are saved on this strategy.
Reason-code allowlist
Only these codes can appear in this strategy's envelopes. Anything else is a bug.
STRAT_MAKER_QUOTE_INSIDE
STRAT_MAKER_NO_EDGE
DISC_HEADLINE_MATCH
DISC_HEADLINE_NOISE
INTEL_MACRO_NEUTRAL
INTEL_MACRO_BEAR
RISK_KILLSWITCH_TRIPPED
RISK_BOOK_STALE_15S
RISK_EXPOSURE_CAP_HIT
RISK_DRAWDOWN_TRIGGERED
EXEC_ROUTE_CTFV2_ACCEPTED
EXEC_SLIPPAGE_EXCEEDED
Fixture pack
Test inputs the strategy is verified against. Promotion to shadow-ready requires all four to pass.
normal.json | 62 intents | pass |
warning.json | 14 intents | pass |
hard.json | 9 intents | pass |
failure.json | 5 intents | pass |
Promotion gates
| All bots in pipeline at demo-wired or higher | pass |
| Fixture pack 4/4 passing | pass |
| Reason-code allowlist enforced | pass |
| 24h shadow soak | pending |
Recent decisions
Last 8 envelopes this strategy produced. Click Trace to walk one through the full pipeline.
| Time | Correlation ID | Instrument | Stage · Bot | Decision | Reason code | |
|---|---|---|---|---|---|---|
| 14:48:21 | 01JG1Z5K7N3RD9XT | election-2026-us-senate | RISK risk.killswitch | REJECT | RISK_KILLSWITCH_TRIPPED | Trace |
| 14:46:02 | 01JG1Z3F2H8WK4PM | election-2026-us-senate | STRAT strat.maker_tight | APPROVE | STRAT_MAKER_QUOTE_INSIDE | Trace |
| 14:40:18 | 01JG1YYR4M2KX8VA | fed-rate-2026-q2 | EXEC exec.smartrouter | FILLED | EXEC_ROUTE_CTFV2_ACCEPTED | Trace |
| 14:38:44 | 01JG1YX1K5J3RH7B | uk-snap-election-2026 | RISK risk.exposureguard | REJECT | RISK_EXPOSURE_CAP_HIT | Trace |
| 14:31:09 | 01JG1YQ8X2K4M6PL | election-2026-us-senate | EXEC exec.smartrouter | FAILED | EXEC_BUILDERCODE_MISSING | Trace |
⚙ Configuration Pass B
Parameter overrides for this strategy. Defaults come from the bot spec. Changes are demo-only and do not persist.
Where this lives in the codebase
Phase 2 work: extendpackages/contracts with a StrategyConfig type that
references instrument IDs (not slugs), per-bot parameter blocks, and the reason-code allowlist.
The runner already loads strategy configs — this just adds the typed shape. The UI then
becomes a read/write view of one StrategyConfig.