How we calculate
Every formula, rule and number behind DefiLab, in plain words. Everything here is an estimate, not advice. We never predict payouts or prices.
1. What DefiLab estimates
For each yield we estimate what you would keep: the earnings, minus gas, minus a small allowance for the risk of losing your deposit.
kept = earnings - gas - risk allowance
We then turn that into a verdict by dividing what you keep by the time you spend setting it up and getting out (10 min, 20 min, 1 hour, 3 hours are the choices in the lab). The answer is dollars kept per hour of your time.
These are estimates from today's data and your inputs. We do not predict future rates, token prices or airdrop payouts. Airdrop payouts are always numbers you type in, never forecasts.
2. Earnings
- We take today's APY and hold it for your whole period. Real rates move, so treat it as a snapshot.
- APY already includes compounding. We assume it is quoted as compounding daily, so 365 days at a 5% APY earns exactly 5%.
- Fixed-rate Pendle pools earn only until their maturity date. If your period is longer, we count earnings up to maturity only.
- Rewards paid in extra tokens are part of the APY we show. We do not guess how the reward token price will move, so no drop is applied by default.
- A looped yield can have a negative net APY. In that case we count it as a loss, not as zero.
3. Costs
Gas
Gas is what the blockchain charges for each transaction. We price one round trip: an approval (EVM chains only), the deposit, and the withdrawal. The values below are placeholders for typical prices, not live prices, and are marked as estimated in the lab.
| Chain | Round trip |
|---|---|
| Ethereum | $6.09 |
| Base | $0.027 |
| Arbitrum | $0.027 |
| Optimism | $0.027 |
| Polygon | $0.005 |
| BNB Chain | $0.24 |
| Avalanche | $0.020 |
| Solana | $0.005 |
| Any other chain | about $0.050 (flagged as estimated) |
Risk allowance
Any protocol can be hacked. We do not know if or when, so we set aside a small yearly amount as if the chance were fixed. It is an expected cost you may never pay, shown so safer pools are not penalised for paying less. For your period it is: deposit x yearly % x (days / 365), assuming a total loss if an exploit happens.
| Tier | A year | Which protocols |
|---|---|---|
| 1 Established | 1% | Aave, when the pool holds $10M or more. |
| 2 Mature | 2% | Morpho and Kamino, when the pool holds $10M or more. |
| 3 Developing | 5% | All Pendle pools, and any pool under $10M. |
| 4 Unproven | 10% | Any other protocol. |
| 5 Very high risk | 2% x leverage + 3% | Looped yields only (section 5). |
The size rule comes first: a small pool is tier 3 even on a protocol that would otherwise be higher.
What is not included
- Protocol fees beyond the quoted APY.
- Impermanent loss on pools that pair two assets.
- Taxes.
- Reward-token price moves.
- Bridging to the chain, and the price of the time you spend (that is the verdict, not a cost).
4. Verdict thresholds
The verdict compares what you keep against doing nothing, divided by the hours you spend.
| Verdict | Rule |
|---|---|
| Not worth it | You keep nothing, or under $5 per hour of your time. |
| Worth it | At least $25 per hour and at least $10 kept. |
| Marginal | Everything in between. |
5. Looped yields
A loop deposits a staked token, borrows SOL against it, buys more of the token and repeats. It earns more when borrowing is cheap and loses money when it is not. We show Kamino SOL loops only, hidden until you switch them on.
net APY = staking yield x leverage - SOL borrow rate x (leverage - 1)
Example: 7% staking yield, 5% borrow rate, 2x leverage gives 9% a year. The net APY turns negative when the borrow rate rises above staking yield x leverage / (leverage - 1).
- Leverage options: we offer 1.5x, 2x and 2.5x, up to what the maximum loan-to-value allows (keeping a 0.05x margin), plus that maximum when it is a little higher than the last option. For example, a 1.5x, 1.9x set for a 50% maximum.
- Loan-to-value at a given leverage is (leverage - 1) / leverage.
- Liquidation distance: 1 - loan-to-value / liquidation threshold. This is how far the token can fall against SOL before you are liquidated.
- When the feed gives no liquidation threshold we assume it is 5 points above the maximum loan-to-value, and say so next to the number.
- Safety charge: 2% x leverage + 3% a year (so 7% at 2x): the usual protocol allowance on the whole leveraged position, plus an extra for liquidation and depeg.
- Gas is the normal round trip x 3 (open, one rebalance, close).
- Loops are always labelled "Very high risk", and earnings are in SOL. Kamino's own fees are not included.
6. Health factor calculator
You type your collateral and debt. Prices and protocol terms are examples you should change to the real ones. Nothing is read from your wallet.
health factor = collateral value x liquidation threshold / debt value
- Below 1.00 the position can be liquidated.
- Liquidation price, both directions: if the collateral falls, it is debt value / (collateral amount x threshold). If the debt asset rises, it is collateral value x threshold / debt amount. The what-if moves whichever price can hurt you.
- Extra you could borrow to reach a target health factor (1.25, 1.5, 2, 3): collateral value x threshold / target - debt value.
- To get back to the target you can repay debt, or add collateral. We show both amounts.
- Morpho liquidation penalty: 1 / (0.3 x LLTV + 0.7) - 1, capped at 15%. At 86% LLTV that is 4.38%.
- Interest drift: debt grows at the borrow rate and collateral at its yield, compounded continuously. We show how the health factor slides if prices stand still, and how long until it reaches your target or 1.00.
- Penalty loss: if you are liquidated, the liquidator takes the repaid value plus the penalty. That bonus is what you lose.
- Close factor: Aave can only liquidate 50% of the debt at a time. We use that single figure as a simplification and do not model Aave's rules that allow more.
- The prefilled thresholds and penalties for Aave and Kamino are examples, not live market values.
7. Data sources and refresh
Pool rows come from mydefilife's own refined data first, then from our own daily feeds of the Kamino, Morpho and Pendle public APIs. Looped yields also use Kamino staking yields. Everything is refreshed daily at 02:00 UTC, so a rate can be up to a day old.
| Source | Used for | Licence |
|---|---|---|
| mydefilife's own refined data | Pool rows (rate, size, chain, asset), tried first. | Ours. |
| Kamino public API | Lending pools, and staking yields and borrow rates for looped yields. | Public API. We show rates and link to the protocol. |
| Morpho public API | Vault pools. | Public API. We show rates and link to the protocol. |
| Pendle public API | Fixed-rate pools and their maturity. | Public API. We show rates and link to the protocol. |
| Aave | Collected, but hidden until we have confirmed the terms for showing it. | Not shown yet. |
| DefiLlama | Not used. No DefiLlama data is shown. | Not applicable. |
Aave pools are collected but hidden until we have confirmed the display terms. No DefiLlama data is shown.
8. The sanity filter
Before any number is used, each row must pass these checks. A row that fails any of them is left out and counted in the "hidden" note in the lab. It is never silently used.
- Freshness: not reported in over 48 hours, and not dated more than 60 minutes in the future.
- Complete: APY, pool size and date must be present, and neither may be negative.
- Size: at least $10,000 in the pool.
- APY cap: stable assets over 50%, and volatile or unclassified assets over 500%.
- Minimum APY: yields paying under 0.1% are hidden and counted (looped yields are exempt, since a low or negative result is the point).
- Outliers: a large pool paying far more than is plausible for its size is dropped (limits in the table below).
- Cross-check: if a second source disagrees by more than the larger of 5 points or 50% of its rate, the row is left out. No second source is connected today, so this check does not fire.
| Asset type | Cap | Size-based limits |
|---|---|---|
| Stable assets | 50% | $1B+ pool: over 10%; $100M+ pool: over 25% |
| Volatile assets | 500% | $1B+ pool: over 50%; $100M+ pool: over 150% |
| Not classified | 500% | $1B+ pool: over 50%; $100M+ pool: over 150% |
Looped yields follow the same 48-hour freshness rule and are dropped if a number they need is missing.
9. Yield check
The yield check at /check runs nine checks on a pool's rate, size, deposits and protocol, and says why each one passed or not. A pool is flagged when one check is red or two are amber. It replaces the small flag hints the lab showed before.
| Check | Amber | Red |
|---|---|---|
| Rate vs its own average | 1.5x its 30-day average | 3x |
| Rate vs similar pools | 2x the median for the same asset | 3x |
| Pool size | under $5M | under $1M |
| Deposits leaving | down 15% in 7 days, or 30% in 30 days | down 30% in 7 days |
| Where the yield comes from | 50% paid in reward tokens | 80% |
| Rate swings | spread over 50% of its average | over 100% of it |
| Fixed-rate term | matures within 14 days | never red |
| Protocol track record | under a year live | unaudited, or under 6 months |
| How long we have tracked it | under 14 days | never red |
- Today's rate and pool size are the pool's latest numbers. Earlier days come from our daily snapshots of the last 30 days. The own-average check needs 7 earlier readings and the rate-swing check needs 14.
- Similar pools: the median rate of the pools on the same asset when at least 3 share it, otherwise the median of all stablecoin pools. Looped yields are not part of it.
- Deposits leaving compares today's pool size with the reading closest to 7 and to 30 days back. With no reading that old, that comparison is skipped.
- Protocol track record uses a short hand-kept list of audits and launch dates (Aave, Morpho, Kamino and Pendle). We have no protocol-wide deposit totals, so size is judged on the pool only. An audit means a contract was reviewed, not that it is safe.
- A check we can't run is shown as can't check. It never counts as passed.
- Pools paying under 0.1% and looped yields are left out of the list. Looped yields carry their own very-high-risk warning.
- Nothing unusual found is not a safety rating. Smart-contract and depeg risks do not show up in these numbers. Estimate, not advice.
10. What we never do
- We never hold your funds.
- We never ask for a token approval.
- We never read your wallet.
- We link out to the protocol, and you do the deposit there yourself.
11. Changelog
When a number or rule that changes results changes, it is listed here. Dates are UTC.
- Shared links now show a preview card with the result. Card numbers are worked out with the same code as the page, at the time the card is made.
- Yield check added: nine checks per pool, flagged when one is red or two are amber. Replaces the earlier screener flag hints.
- Rate-history charts added. Kamino, Morpho and Pendle pools include up to 180 days from each protocol's own published history, marked as such on the chart.
- Health factor calculator added.
- Looped Kamino SOL yields added, with a yearly safety charge of 2% times leverage plus 3%.
- "Use this yield" links added.
- Calculator defaults set: risk allowance 1, 2, 5 and 10% a year; verdict red under $5 an hour, green at $25 an hour and $10 kept or more. The lab does not price impermanent loss yet.