Skip to main content
Every tracked stablecoin gets a 0–100 risk score every 20 minutes (0 = pegged, 100 = critical depeg). It is a weighted composite of 16 normalized signals. Guards reduce the influence of thin or uncorroborated data on the score and tier. Higher always means riskier.

The Final Outputs

Risk Tiers

The tier is set from each 20-minute score; it is not smoothed across ticks. Noise is handled by the false-positive guards and data-gap rules below.

Signal Weights (the Building Blocks)

Each signal is normalized to 0–1 before weighting. When a signal has no data for a given token, it is skipped and all remaining weights are renormalized to sum to 1.0 — so a missing signal never drags the score down on its own. A missing price feed is different: see Alerting and Data Gaps below. The 16 core signals below sum to 1.0. Reserve Attestation Staleness (~4%) is a conditional 17th signal, scored only for tokens with a published attestation source; when it applies it is added and the full set renormalizes back to 1.0.

Price & Peg Deviation

Persistence (Duration Off-Peg)

Liquidity & Market Depth

Cross-Chain & Supply

Reserve Attestation

Volatility & Oracle

DEX/CEX disagreement adjustment: When both DEX and CEX prices are available and disagree — DEX stressed but CEX calm — the DEX price_deviation_5m weight is reduced by 30%, since the stress is likely a DEX-specific liquidity issue rather than a real depeg. The cex_only_stress guard (see below) handles the reverse case: CEX stressed, DEX calm.

Scoring Guards & Modifiers

Six post-computation guards adjust the final score to reduce false positives and prevent single-signal dominance.
When any guard fires, a meta-entry (corroboration_gated, confluence_demotion, supply_spike_gated, bridge_flow_spike, cex_only_stress) is appended to the drivers array so the dashboard and alert callers can surface why a tier was adjusted. When the tier is set to premium (trading 2%+ above peg with no risk signal), a premium_override meta-entry is appended the same way. It has weight 0 and contribution 0: it is a marker, not a scoring input, and adds nothing to the score.

Token Type Adjustments

Different token types have fundamentally different expected behaviors. A yield-bearing token like sUSDe is designed to accrue value above $1 — scoring it against a strict $1 peg would produce constant false positives. The model adjusts the price deviation normalization curve per type.

Alerting and Data Gaps

Tier-change alerts. Webhook subscribers get an alert when a token’s tier changes from the last tier we delivered for that token and chain. A token seen for the first time already above ok alerts too, so a token that appears in trouble is never silent. An escalation built on an untrusted price reading is suppressed; a recovery (a tier moving back toward ok) is still sent. Price feed gaps. When the price feed drops out, the deviation signal reads zero. If the token was already in watch, warning or critical, the last real score is carried forward instead of publishing a false all-clear. The carry stops after 6 hours, or immediately if the age of the last reading is unknown.
Earlier versions of this page described a velocity boost (up to +15 points for a fast-rising score) and two-tick confirmation before a tier change. The production monitor applies neither. The tier comes from each 20-minute score; the guards on this page reduce the influence of thin or uncorroborated data on it.

Low Signal Coverage Guard

When a score reaches ≥50 (Warning range) but fewer than 5 signals have data AND the price is currently at peg, the tier is automatically demoted from warning to watch. This prevents a thin-data token from entering a warning state on the strength of one or two signals alone. All 5+ active signals must agree before a warning is confirmed.

State Flags (Binary Crisis Indicators)

These six flags are computed separately from the numeric score and surfaced alongside it in the API. They name specific crisis types that are active right now — a score of 72 tells you how bad; the flags tell you what kind.

How Depeg Risk Feeds into Vault Scoring

The live depeg monitor output is merged into every vault’s composite risk score via the depeg overlay module. It runs at pipeline time, applies the worst-case signal across all chains where the underlying token trades, and contributes to the vault composite at 5% weight.

depeg_sub_score vs monitor score

The monitor score measures real-time market stress (all 16 signals: slippage, persistence, supply, oracle). The depeg_sub_score fed into the vault composite is narrower — it focuses on capital loss risk from peg deviation and persistence alone, plus a floor from the monitor score to catch liquidity collapse events even before price moves.

Vault Recommendation Actions

When a depeg is active, the overlay generates a recommendation for vault holders:
  • EXIT — critical tier + ≥30% peg deviation
  • REDUCE — critical + ≥5% deviation
  • MONITOR — critical/warning + any deviation
  • WATCH — warning tier OR score ≥50

API Response Fields

The /latest endpoint returns a snapshot of every tracked token. Vault objects from /vaults include monitor_tier and per-composition depeg_score.

Signal Weight Hierarchy at a Glance

Screenshot 2026 04 13 At 10 58 52 AM