Docs / Yield Scores

Yield Scores

The Yield page reranks DeFi stablecoin pools by risk-adjusted APY — the nominal yield discounted by the issuer's safety grade. A high-yield pool backed by a shaky stablecoin may rank lower than a modest-yield pool backed by USDC.

This gives analysts a single comparable number that incorporates both the upside (raw yield) and the downside risk (probability of losing principal).

Formula

Risk-Adjusted APY = Effective APY × (Safety Score / 100)

Effective APY is normally the raw APY, but when a pool is flagged as an APY spike (see below), the 30-day mean APY is used instead.

Examples:

  • 4% APY from an A+ issuer (safety score 96) → 3.84% risk-adjusted
  • 15% APY from a C+ issuer (safety score 35) → 5.25% risk-adjusted
  • 25% APY from an F issuer (safety score 2) → 0.5% risk-adjusted

⚠ APY Spike Detection

When a pool's current APY is 3× or more above its 30-day mean APY, it is flagged as a stress spike. These spikes almost always indicate a crisis event — exploit, oracle failure, or liquidation cascade — not a genuine yield opportunity.

Real example — Resolv/Morpho USDC (March 2026):
After the Resolv USR minting exploit, the RESOLVUSDC Morpho vault on Ethereum showed 38% APY while its 30-day mean was ~8% (spike ratio 4.77×). The elevated rate reflected liquidation stress and oracle risk — not a safe high-yield deposit opportunity. Gauntlet (vault risk curator) emergency-deallocated from all Resolv markets. Risk-Adj APY for this pool correctly used the 8% mean: 7.57% rather than the misleading 36.14%.

Spiked rows are marked with a icon on the Raw APY and an asterisk (*) on the Risk-Adj APY. Hover either for the spike ratio.

Pool Matching

Pools are fetched from the DeFiLlama yields API (stablecoin=true, TVL ≥ $1M, APY ≥ 0.1%, APY < 200%). Each pool is then matched to a safety grade entry in two steps:

  1. Address match — DeFiLlama's underlyingTokens addresses matched against our chain+address grade index.
  2. Symbol fallback — if no address match, the pool symbol is split on "-" and each part matched against the grade symbol index (e.g., "USDC-USDT" tries "USDC" then "USDT").

Pools with no match are included at the bottom of the table with no grade or risk-adjusted APY displayed.

Filters Applied

FilterValueReason
stablecointrueOnly stablecoin-denominated pools
outlierfalseExclude DeFiLlama statistical outliers
min TVL$1MFilter out thin, illiquid pools
min APY0.1%Exclude near-zero noise
max APY200%Exclude unsustainable outlier yields

Column Definitions

ColumnDescription
SymbolPool token pair(s) as reported by DeFiLlama.
ProjectProtocol name (Aave, Morpho, Curve, etc.).
ChainNetwork the pool is deployed on.
GradeSafety grade of the matched stablecoin (A+ to F). See Safety Grade docs.
Safety ScoreNumeric 0–100 safety score underlying the grade.
Raw APYNominal APY as reported by DeFiLlama.
Risk-Adj APYRaw APY × (Safety Score / 100). Primary sort column.
TVLTotal Value Locked in the pool (USD).

Update Cadence

  • Pool data — fetched fresh from DeFiLlama each run.
  • Safety grades — recalculated daily at 04:15 UTC; yield scores depend on them.
  • Yield scores output — recalculated daily at 04:30 UTC.
View Yield Page →Safety Grade Docs →← All Docs