← Back to the risk check

Risk methodology

Every number Fortress shows you is deterministic and traceable to its inputs plus the documented assumptions on this page — no black box, no “AI insights.” This is what we mean by verifiable: you can reproduce it. The same engine that powers this page is exposed at POST /api/risk/assess, and the live API returns a var.assumptions object with the exact figures it used.

1 · Distance to liquidation

For each position we compare the current mark price to the venue’s reported liquidation price and express the gap as a fraction of mark:

distanceToLiqPct = |markPx − liquidationPx| / markPx

A value of 0.12 means a 12% adverse move liquidates that position. The weakest link is simply the position with the smallest distance — the headline metric. Positions without a venue liquidation price are excluded from this ranking.

2 · Severity bands

Distance-to-liquidation maps to a severity used for colour-coding and flags:

critical≤ 3% to liquidation
danger≤ 8% to liquidation
watch≤ 20% to liquidation
safe> 20% to liquidation
3 · Value at Risk (parametric, variance-covariance)

We aggregate net signed notional per symbol (a short hedges a long), then compute portfolio variance with a single off-diagonal correlation:

variance = Σᵢ Σⱼ  netᵢ · netⱼ · volᵢ · volⱼ · ρᵢⱼ
         ρᵢⱼ = 1            (same symbol)
         ρᵢⱼ = baseCorrelation  (different symbols)

sigmaUsd = √variance · √horizonDays
VaRₚ     = z(p) · sigmaUsd        (z from the normal quantile)

This is a normal approximation — documented, not a guarantee. Crypto tails are fatter than normal, so realised losses can exceed the modelled 95%/99% VaR. We report it because it is reproducible from public inputs, not because it is the last word on tail risk.

4 · Default assumptions (live from the engine)

These are the exact defaults the engine ships with. They are imported into this page from the same module the API uses, so they cannot drift from production.

Base correlation (ρ)
0.65
Default daily vol
6.0%
VaR horizon
1 day
Per-symbol daily volatility
BTC3.5% / day
ETH4.5% / day
SOL6.0% / day
BNB4.5% / day
XRP5.5% / day
DOGE8.0% / day

Symbols not listed use the default daily vol above. These are conservative starting values; the API accepts a per-call config override.

5 · Risk score & grade

The 0–100 risk score is a weighted blend of three drivers (higher = riskier):

Liquidation proximity50%Nearest distance-to-liquidation; ramps up as it shrinks below 50%.
Leverage30%Gross leverage across the book; 20× hits the cap.
Concentration20%Largest single position as a share of gross notional.

The score maps to a letter grade A–F for at-a-glance reading. Grades are presentation only — the underlying score and its components are always shown so you can audit them.

6 · Stress test

A stress scenario applies a single correlated market-wide move to every position: longs lose, shorts gain, proportional to notional. A position is flagged as liquidated when the shocked mark price crosses its venue liquidation price. The account “survives” if post-shock equity stays above maintenance margin and nothing liquidates.

Data & honest limits
  • Data source today: Hyperliquid’s public info API (clearinghouseState + allMids), read-only by public address. dYdX and GMX coverage is in progress; until each is wired, only Hyperliquid positions are returned.
  • Read-only and non-custodial by construction — no keys, no signing, no wallet connect anywhere in this path.
  • VaR is a normal-approximation estimate; crypto tail losses can exceed it.
  • This is risk analytics, not financial advice.

Run a free wallet risk check →