Skip to content
Finance Lessons

DeFi Lending & Borrowing

Interest-Rate Models: Where the Yield Comes From

DeFi interest rates are set by code, not a committee: the utilization rate, the kinked two-slope borrow curve, the reserve factor, and how the supply APR falls out of all three — with worked numbers and a live curve.

9 min Updated Jun 3, 2026

In a bank, your interest rate is the end of a long, opaque chain: a central-bank target, a risk committee, a pricing desk, and a fee schedule nobody reads. In a DeFi pool there is no committee, no desk, and no human at all. The rate is a public formula anyone can read on-chain, and it stares at exactly one number: how busy the pool is right now. That’s it. Deposits flow in, loans flow out, and a curve recomputes the rate every block. This lesson is about that curve — where the yield you earn (and the cost you pay) actually comes from.

Before you read — take a guess

Guess before reading: what does a DeFi pool's interest-rate formula watch to set the rate?

Utilization: how busy the pool is

Picture the pool as a reservoir. Suppliers pour water in; borrowers pump water out. Utilization (UU) is simply how much of the reservoir is currently pumped out:

U=total borrowedtotal suppliedU = \frac{\text{total borrowed}}{\text{total supplied}}

Worked example: suppliers have deposited $10,000,000 and borrowers have taken $8,000,000 of it. Then

U=8,000,00010,000,000=0.8=80%.U = \frac{8{,}000{,}000}{10{,}000{,}000} = 0.8 = 80\%.

That leftover $2,000,000 is the free liquidity — the part suppliers could still withdraw on demand. As UU climbs toward 100%, that free slice shrinks toward zero: the pool is fully lent out, and a supplier who wants their money back may find the cupboard bare. Utilization is the single dial every other number in this lesson turns on.

Fill in the definition of utilization.

Pick the right option for each blank, then check.

Utilization equals total divided by total , so a pool that is fully lent out has U near .

The kinked (two-slope) model

Here’s the clever part. A naive pool would just let the rate rise in a straight line as UU goes up. DeFi pools instead use a kinked, two-slope curve, and the kink is the whole point.

Below an optimal utilization UU^{*} (the kink — say 80%), the borrow rate rises on a gentle slope: borrowing is cheap and the protocol is happy to lend out more. Cross UU^{*}, though, and the rate jumps onto a much steeper slope. The message to borrowers is blunt: the pool is running low, so each extra dollar you borrow now costs a lot more. That steep section is a deliberate brake to keep some liquidity free so suppliers can still withdraw.

The model, in two pieces. For UUU \le U^{*}:

rborrow=r0+UUs1r_{borrow} = r_0 + \frac{U}{U^{*}}\,s_1

and for U>UU > U^{*}:

rborrow=r0+s1+UU1Us2r_{borrow} = r_0 + s_1 + \frac{U - U^{*}}{1 - U^{*}}\,s_2

Here r0r_0 is the base rate at zero utilization, s1s_1 is the gentle first slope, and s2s_2 is the steep second slope. Take the common example parameters r0=0r_0 = 0, s1=4%s_1 = 4\%, s2=75%s_2 = 75\%, U=80%U^{*} = 80\%.

Borrow APR at U=50%U = 50\% (below the kink, so the first formula):

rborrow=0+0.500.80×4%=0.625×4%=2.5%.r_{borrow} = 0 + \frac{0.50}{0.80}\times 4\% = 0.625 \times 4\% = 2.5\%.

Borrow APR at U=90%U = 90\% (above the kink, so the second formula):

rborrow=0+4%+0.900.8010.80×75%=4%+0.100.20×75%=4%+0.5×75%=4%+37.5%=41.5%.r_{borrow} = 0 + 4\% + \frac{0.90 - 0.80}{1 - 0.80}\times 75\% = 4\% + \frac{0.10}{0.20}\times 75\% = 4\% + 0.5 \times 75\% = 4\% + 37.5\% = 41.5\%.

Notice the violence of that jump: going from 50% to 80% busy only takes the rate from 2.5% to 4%, but pushing past the kink to 90% rockets it to 41.5%. That asymmetry is the kink doing its job.

Info:

Why two slopes, not one?

A single gentle slope would let utilization drift to 100% with barely a rate change — and then nobody could withdraw. A single steep slope would make normal borrowing absurdly expensive. The kink gives you both: cheap borrowing in the normal zone, and a panic-button slope that defends the last slice of liquidity.

See the curve move

Drag the slider below. Watch the borrow curve bend sharply upward at the kink, and watch the supply curve (the next section) track underneath it.

The interest-rate modelU 80%
Borrow APRSupply APROptimal utilization (kink)
Utilization
80.0%
Borrow APR
4.00%
Supply APR
2.88%

Drag utilization. Below the kink the borrow rate rises gently; above it the second, steep slope kicks in to defend the pool's last liquidity. The supply rate is the borrow rate scaled by utilization and the reserve cut.

The supply rate falls out of it

Suppliers don’t get their own formula — their rate is derived from the borrow rate:

rsupply=rborrow×U×(1reserveFactor).r_{supply} = r_{borrow}\times U \times (1 - \text{reserveFactor}).

The intuition is fair, once you see it. Suppliers only earn interest on the fraction that’s actually lent out — that’s the ×U\times\,U. Money sitting idle in the reservoir earns nothing. Then the protocol skims a cut for itself before paying the rest to suppliers — that’s the ×(1reserveFactor)\times\,(1 - \text{reserveFactor}).

Worked example at U=80%U = 80\% (right at the kink, so rborrow=4%r_{borrow} = 4\%) with a reserve factor of 10%:

rsupply=4%×0.80×(10.10)=4%×0.80×0.90=2.88%.r_{supply} = 4\% \times 0.80 \times (1 - 0.10) = 4\% \times 0.80 \times 0.90 = 2.88\%.

A side-by-side at our example parameters:

Utilization UUBorrow APRSupply APR (reserve 10%)
50%2.5%2.5%×0.50×0.90=1.125%2.5\% \times 0.50 \times 0.90 = 1.125\%
80%4.0%4.0%×0.80×0.90=2.88%4.0\% \times 0.80 \times 0.90 = 2.88\%
90%41.5%41.5%×0.90×0.90=33.62%41.5\% \times 0.90 \times 0.90 = 33.62\%

Because the supply rate multiplies the borrow rate by two factors that are each less than 1: utilization UU (you can’t lend out more than 100% of the pool, so U1U \le 1) and (1reserveFactor)(1 - \text{reserveFactor}) (the protocol always keeps a non-negative cut, so this is 1\le 1 too). Multiplying any positive number by two sub-1 factors can only shrink it. So rsupply<rborrowr_{supply} < r_{borrow} always — the gap is where idle liquidity and the protocol’s reserve quietly eat your yield.

Compute it: a pool has borrow APR = 10%, U = 60%, reserve factor = 20%. What's the supply APR?

The reserve factor

The reserve factor is the slice of borrower interest the protocol keeps for itself instead of forwarding to suppliers. It funds a safety buffer — a treasury that can absorb bad debt if a liquidation goes wrong, or backstop the pool in a shortfall. A reserve factor of 10% means suppliers receive 90% of the interest borrowers pay (after the utilization adjustment); 10% accrues to the protocol. Riskier assets often carry higher reserve factors, because they’re more likely to need that buffer.

Match each rate-model term to what it means.

Pick a term, then its definition.

Why the kink exists

The deepest reason for the kink is a bank-run problem. A bank promises you instant withdrawals but lends most of your deposit out; if everyone shows up at once, there isn’t enough cash, and you get a run. A DeFi pool faces the same trap: if UU hits 100%, every dollar is lent out and no supplier can withdraw until a borrower repays.

The steep second slope is the pool’s automatic defense — a pure price signal. As utilization creeps past the kink, borrowing gets punishingly expensive, which prices borrowers out (some repay to escape the high rate) and the soaring supply rate lures fresh suppliers in. Both forces push UU back down toward UU^{*}, restoring free liquidity — no committee required, just incentives doing the steering. (The flip side, what happens to your loan when liquidity or prices move against you, is the liquidation story we tackle in lesson 5.)

Sort each force by which way it pushes utilization.

Place each item in the right group.

  • Borrowers repay to escape a high rate
  • Borrowers take out more loans
  • Suppliers withdraw their deposits
  • A juicy supply APR attracts new deposits
  • Borrow rate spikes past the kink

Variable vs stable rates

Most DeFi borrow rates are variable: they float every single block as UU moves, so the cost of your loan can change minute to minute. Some protocols also offered a stable rate — typically set higher than the variable rate at borrow time, but steadier, so you trade a premium for predictability (in practice these can still be re-balanced under extreme conditions, so “stable” means “smoother,” not “fixed forever”).

Key Takeaways

Success:

What to remember

  • Utilization runs everything: U=borrowed/suppliedU = \text{borrowed} / \text{supplied}, and the entire rate is a public function of it.
  • The borrow rate is a kinked two-slope curve: gentle below the optimal utilization UU^{*}, brutally steep above it — that steepness defends the pool’s last liquidity.
  • The supply rate is derived, not set: rsupply=rborrow×U×(1reserveFactor)r_{supply} = r_{borrow}\times U \times (1 - \text{reserveFactor}), so it’s always below the borrow rate.
  • The reserve factor is the protocol’s cut, building a safety buffer out of borrower interest.
  • No human sets these rates — incentives push utilization back toward UU^{*} on their own.

Big picture

The rate model at a glance

  • Interest-rate model
    • Utilization U = borrowed / supplied
      • High U → little free liquidity
      • Drives every rate
    • Borrow rate (kinked)
      • Below kink: gentle slope s1
      • Above kink: steep slope s2
    • Supply rate (derived)
      • × U: earn only on lent funds
      • × (1 − reserveFactor): after the cut
    • Reserve factor
      • Protocol's safety buffer
Utilization is the dial; everything else turns on it.
Question 1 of 60 correct

A pool has supplied $20,000,000 and borrowed $15,000,000. What is utilization?

Check your answer to continue.

Next up in lesson 4: when prices move against a borrower, the health factor decides whether their position survives or gets liquidated — and how that keeps the whole pool solvent.

Mark lesson as complete