ModelDriftMonitor
ModelDriftMonitor flags strategies whose live behaviour has decoupled from their backtest distribution.
What it does
ModelDriftMonitor flags strategies whose live behaviour has decoupled from their backtest distribution. It computes a drift score by comparing the rolling distribution of live signals or fill prices against the expected backtest baseline and hard-rejects new orders when drift exceeds the configured ceiling, preventing a degraded model from continuing to place orders.
Pipeline placement
Applies to: Every OrderIntent from a model-driven strategy — detects when live strategy behaviour has drifted from the backtest dist
Why it matters
| If this fails | Consequence |
|---|---|
| Model degradation undetected | A strategy whose signal quality has degraded continues placing orders, accumulating losses without any automated circuit-breaker. |
| Market regime change | A model trained on one market regime may produce pathological signals in a new regime; model drift detection provides an early-warning gate before significant capital is deployed. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Recent fill prices and strategy signal values | clob_auth | required | Compute rolling live distribution for comparison against backtest baseline. |
| Market metadata (category, volume, resolution type) | gamma | optional | Provide context for regime classification to distinguish genuine drift from expected regime variation. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Strategy backtest distribution summary (mean, std, percentiles) | internal | required | Define the expected baseline distribution against which live behaviour is compared. |
| KillSwitch active flag | KillSwitch | required | If active, reject immediately. |
Authority
What this bot is permitted to do
State
Readiness
Planned
Status
planned
Class
Guardrail
Default mode
planned
Developer owner
Polytraders core — Risk pod
Capital impact
Direct
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| KILL_SWITCH_ACTIVE | HARD_REJECT | Global kill switch active. | Immediate HARD_REJECT. |
| MODEL_DRIFT_EXCEEDED | HARD_REJECT | Strategy drift score exceeds the hard ceiling. | HARD_REJECT; log drift_score, strategy_id, and metric. |
| MODEL_DRIFT_WARN | WARN | Drift score is between warning and hard thresholds. | Attach WARN annotation; APPROVE. |
| MODEL_DRIFT_DATA_UNAVAILABLE | HARD_REJECT | Backtest baseline unavailable for this strategy. | HARD_REJECT (fail-closed). |
Related bots in Risk Guardrail
Used by
Reverse index — strategies that currently reference risk.modeldriftmonitor. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| BTC weekly — close-aware quotes | demo-wired | last triggered 10m ago |
Showing 1 of 1 · demo-wired ≠ production-live
Why this matters
Risk Guardrail bots does NOT propose intents or sign orders; only permits or blocks. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →