Yield Score and Risk Grade

Two numbers, two questions, deliberately never combined.

Why there are two

The score measures how much fee opportunity a pool offers. The grade measures how you can lose in it. Blending them into one number destroys both.

A thin, three-hour-old pool with enormous fee yield can be a 90 and an F at the same time. That combination is information. A single “medium” would have hidden it.

The six components

The opportunity score is a weighted blend of six measured components. These are the weights the implementation uses:

ComponentWeightWhat it measures
Fee efficiency30%24h fees divided by TVL. The core driver of LP return.
Volume intensity20%24h volume divided by TVL. Turnover leads fees.
Volume acceleration15%24h volume against the 7-day daily mean, log-scaled.
Fee stability15%One minus the coefficient of variation of daily fee yield over 7 days.
Depth quality10%Share of TVL sitting in the active tick range.
Trade breadth10%Distinct swappers over 24h, log-scaled. Separates real flow from one bot.

How the components become a score

Each component is normalised against the current cross-section of eligible pools, not against hardcoded thresholds. The bounds are the 5th and 95th percentile of that component across the cohort; values are clamped into that window and mapped to 0–1. A cohort with no spread yields a neutral 0.5.

The normalised values are multiplied by their weights and summed. When a component cannot be computed at all, its weight is redistributed across the components that could be computed, so a pool is not silently punished for a gap in SquirtFi’s data. What tells you coverage was incomplete is the confidence level, not a depressed score.

The cohort is rebuilt on every refresh. A score is therefore a statement about a pool relative to its peers at that moment, and is not comparable across days.

Confidence

LevelWhen
LowUnder 50% of the 7-day window was indexed, or three or more of the six components could not be computed.
MediumUnder 90% coverage, or at least one component unavailable.
HighFull 7-day coverage and all six components computed.

Low-confidence pools show a placeholder in place of the score in the screener. The number exists, but presenting it next to a fully-covered pool would imply a comparison that is not there.

The risk grade

The grade starts at A and is pushed down by specific, named conditions. Each one sets a floor: the worst applicable floor wins, and every reason that applied is shown on the pool page.

ConditionFloor
Either token is not in the canonical asset registryF
A v4 pool uses a hook that is not on the reviewed listF
TVL under $25,000 — exiting may move the priceD
Under 2% of TVL sits at the active priceD
Pool price has held more than 2% away from the oracleD
Realized 7-day volatility in the top decile of poolsC
Pool is under 72 hours oldC

One condition behaves differently. If either token is a tokenized equity, the grade is downgraded by one step from wherever it already landed, rather than floored. The token trades on-chain around the clock while its underlying market closes, so the exposure is additive to whatever else is true about the pool.

The grades are deliberately not a green-to-red temperature ramp. A grade is a category, and an F must not read as “slightly worse than a D”.