Skip to main content

How Ozone Scores Work

The Ozone Score is a composite risk score (0–10) assigned to each monitored vault. Lower scores indicate higher risk. The score aggregates three risk dimensions — market, oracle, and protocol — into a single number suitable for monitoring, alerting, and cross-vault comparison.

note

Ozone Scores are updated on each data snapshot cycle. They reflect the state of the vault at the time of the most recent snapshot, not a prediction of future performance.

Score dimensions

1. Market Risk

Market risk captures the financial exposure of the vault — how it would perform under stress, how close borrowers are to liquidation, and how concentrated liquidity and borrowing are.

Market risk is composed of seven weighted components grouped into three subcategories:

Stress Test (50% of market risk weight)

ComponentWeightWhat it measures
Extreme Event Resilience80 (40%)Expected shortfall under a 10x volatility shock at the 99.99th percentile. Simulated via GBM Monte Carlo with 10,000 iterations over a 365-day horizon. Score = 1 − (LenderES₀.₉₉₉₉ / 100).

Liquidation Resilience (12.5% of market risk weight)

ComponentWeightWhat it measures
Liquidation Buffer20 (10%)Position-weighted average gap between each borrower's current LTV and their liquidation LTV. Score = pool_buffer / 0.2, clamped to [0, 1]. A buffer ≥ 20% scores 1.0; a buffer of 0% scores 0.0.

Available Liquidity (37.5% of market risk weight)

ComponentWeightWhat it measures
Utilization30 (15%)Penalizes high vault utilization using the formula 1 − U^6.579, where U is the utilization rate. At 90% utilization the score drops to 0.5; above 90% it drops steeply.
Borrower Nakamoto Coefficient5 (2.5%)Minimum number of borrowers controlling ≥50% of borrowed principal. Score = ln(k) / ln(10), clamped to [0, 1]. A single borrower scores 0; 10+ borrowers score 1.
Borrower Max Power Ratio5 (2.5%)Largest borrower's share of total principal. Score = 1 − max_share.
LP Nakamoto Coefficient10 (5%)Minimum number of LPs controlling ≥50% of supplied liquidity. Same log-scale scoring as Borrower Nakamoto.
LP Max Power Ratio10 (5%)Largest LP's share of total supplied liquidity. Score = 1 − max_share.

The market risk score is the weighted sum of all seven components:

pool_market_score = Σ (component_weight / 160) × component_score

2. Oracle Risk

Oracle risk captures the reliability of the price feeds used to value vault collateral. Each oracle contract is scored (0.0–1.0) based on its architecture, governance surface, and dependency risk. Scores are computed at three levels:

  1. Oracle contract score — per individual feed address, based on source type and contract properties
  2. Market oracle score — geometric mean of all feeds in a market's price path (penalizes weak links)
  3. Vault oracle score — allocation-weighted average of market oracle scores
Oracle sourceTypical scoreWhy
Chainlink V2 Aggregator (major pairs)0.7–1.0Decentralized node network, wide coverage, proven track record
Lido Wrapper + Chainlink0.5–0.6Two-hop derivation, wrapper dependency
ERC-4626 Vault Rate0.3–0.4Accounting-derived price (totalAssets/totalSupply), not market-discovered
Upgradeable Proxy0.1–0.2Logic can change without address change, admin surface
Permissioned ERC-46260.1–0.2Manager-gated, redemption queues, transfer restrictions

For Chainlink feeds, evaluation considers node coverage, operational history, deviation threshold, and heartbeat interval. For smart contract oracles, evaluation covers upgradeability, admin surface, price derivation method, external dependencies, and redemption mechanics.

3. Protocol Risk

Protocol risk captures the structural and governance properties of the protocol itself, scored across six subcategories:

SubcategoryWhat it covers
Smart Contract & TeamsContract discoverability, team identity disclosure, responsiveness to security reports.
DocumentationTechnical whitepaper, architecture documentation, code documentation coverage, traceability, informativeness.
TestingTest-to-code ratio, test coverage, test reports, formal verification.
SecurityProtocol auditability, audit applicability matrix, bug bounty program, protocol monitoring, front-end monitoring.
Admin Controls & GovernanceCode mutability, upgradeability documentation, role clarity, distinct human signers, transaction signing policy.
OraclesOracle documentation, flash loan robustness.

Each metric within these subcategories is scored 0–1 and weighted according to its impact on protocol safety.

Probability of Liquidation

Ozone computes a Monte Carlo-simulated probability of liquidation for each vault position. This uses the same underlying engine as the Bitpulse Risk API.

Simulation parameters for the stress test:

ParameterValueRationale
ModelGBM (Geometric Brownian Motion)Standard diffusion model for asset price paths
Volatility shock9.0 (10x current volatility)Models a black-swan crisis where portfolio volatility spikes 10-fold
Quantile0.9999Worst 0.01% tail outcomes
MC iterations10,000Sufficient for stable 0.9999 quantile estimation
Loan duration365 daysConservative full-year horizon
Model lookback365 daysHistorical window for volatility calibration

The simulation uses the vault's actual collateral weights, loan weights, and collateral ratios (N, M, L, R parameters) derived from on-chain state.

Score composition

The three dimension scores (market, oracle, protocol) are normalized and combined into a weighted average. Weights are calibrated against historical DeFi stress events to maximize predictive accuracy for adverse outcomes.

Scores are bounded [0, 10]. A score of 7+ is considered low risk. A score below 3 triggers critical-tier alerting.

Alert thresholds

Score rangeRisk levelDefault alert behavior
7.0 – 10.0LowNo alert
5.0 – 6.9ModerateMonitoring — no alert by default
3.0 – 4.9ElevatedAlert on entry
0.0 – 2.9CriticalImmediate alert

Thresholds are configurable per vault and per metric in the Ozone dashboard.

Limitations

  • Scores reflect the most recent snapshot. They do not predict future events.
  • Oracle risk metrics depend on on-chain data availability. Protocols without on-chain price feeds may have reduced oracle risk coverage.
  • Monte Carlo simulations use historical volatility as a calibration input. In novel market regimes (no historical precedent), estimates carry higher uncertainty.
  • Some collateral types are excluded from the stress test if unsupported by the Risk Engine (e.g., Pendle PT tokens, USTB). Excluded collateral weight is reported but does not contribute to the resilience score.
  • Concentration metrics (Nakamoto, Max Power) are based on on-chain addresses. A single entity operating through multiple addresses may appear less concentrated than reality.
  • The Ozone Score is not a recommendation to buy, sell, or hold any asset. See Terms of Service.
Disclaimer

The Ozone Score and all associated risk metrics are provided for informational and institutional monitoring purposes only. They do not constitute financial advice, investment recommendations, or an offer or solicitation to buy or sell any asset or financial instrument. Scores are generated by quantitative models calibrated on historical on-chain data; they are not guarantees of future performance and should not be relied upon as the sole basis for any investment or risk management decision. This platform is intended for use by qualified institutional counterparties in eligible jurisdictions only. See Terms of Service for full terms of use.