Rate curve — borrow & supply APY across the full utilization range
Same base/slope1/slope2/kink/reserve-factor params as above, swept from 0% to 100% utilization. Watch supply APY curve up faster right around the kink — that's the market pricing in liquidity risk.
| Utilization | Borrow APY | Supply APY | Zone |
|---|
Why the curve bends instead of staying straight
A flat interest rate can't self-correct — if borrowing demand spikes, utilization just keeps climbing until the pool is fully lent out and depositors can't withdraw. The kinked model fixes that by making the second half of the curve punishingly steep: slope 2 is typically 10-40x slope 1, so crossing the optimal point turns a gentle rate increase into a sharp one within a few percentage points of utilization. That steepness is the entire mechanism — it exists to make borrowing expensive enough, fast enough, that rational borrowers repay and utilization falls back under the kink before liquidity actually runs out. See multi-collateral health factor for the liquidation side of the same lending market.
Reading the curve like a lender, not just a borrower
Every DeFi lending explainer walks through the formula — base rate plus slope 1 up to the kink, then base plus slope 1 plus a second slope beyond it — but almost none let you actually move the utilization slider and watch supply APY react. That reaction is non-obvious: supply APY isn't the borrow rate, it's the borrow rate scaled down twice. First by utilization itself, since only the borrowed fraction of the pool earns interest and idle liquidity earns nothing. Second by (1 − reserve factor), the protocol's cut that funds the safety module and treasury before anything reaches depositors. At 75% utilization with a 10% reserve factor, a lender only sees roughly 67.5% of the headline borrow rate — a gap that's easy to miss when comparing "borrow APY" and "supply APY" side by side on an app's UI without knowing why they differ.
The optimal utilization point itself is a risk decision, not an accident. Stablecoin markets on Aave and Compound typically run their kink around 90% because stablecoin demand and redemptions are relatively predictable — the protocol can safely let utilization run hot. Volatile blue-chip assets like ETH run the kink much lower, often 45-80% depending on the specific deployment, because a sharp price move can trigger a wave of simultaneous withdrawals or liquidation-driven repayments that the pool needs headroom to absorb. A market sitting well above its kink isn't just expensive to borrow from — it's a signal that liquidity is genuinely tight and large withdrawals may queue or fail until utilization drops.
FAQ
What is the "kink" in a DeFi lending interest rate model?
Aave and Compound-style money markets set borrow APY as a function of utilization (total borrowed ÷ total supplied), using two straight-line slopes joined at an "optimal utilization" point — the kink. Below the kink, rates rise gently with slope 1 to keep the market attractive. Above it, rate rises steeply with slope 2, sometimes 10-40x steeper, specifically to choke off further borrowing and pull utilization back down before the pool runs out of liquidity for withdrawals.
Why does borrow APY spike so fast once utilization crosses the optimal point?
Liquidity risk. If utilization hits 100%, no depositor can withdraw until someone repays a loan — the pool is fully lent out. The steep slope 2 exists purely to make borrowing painfully expensive above the optimal point so the market self-corrects before that happens. It's a deliberate design choice, not a bug: the protocol trades a smooth rate curve for a hard guardrail on withdrawal liquidity.
Why is supply APY always lower than borrow APY on the same asset?
Two reasons. First, not all supplied capital is being borrowed — supply APY is borrow APY scaled down by the utilization rate itself, since idle liquidity earns nothing. Second, the protocol takes a cut of every interest payment as a reserve factor (commonly 10-25%) before the rest passes through to suppliers. At 100% utilization and 0% reserve factor the two would converge; in practice they never do.