Pool Interest Rates

Pool-Level APY Dynamics

The aggregate variable rate earned by the pool is:

IRPool=WAave  IRSOFR+n=1NWnIRn\text{IR}_{\text{Pool}} = W_{\text{Aave}}\;\text{IR}_{\text{SOFR}} + \sum_{n=1}^{N} W_{n}\,\text{IR}_{n}

where

WAave: idle liquidity in Aave (earns IRSOFR)Wn: weight of borrower n:(nWn=1WAave) \begin{aligned} W_{\text{Aave}} &: \text{ idle liquidity in Aave (earns }\text{IR}_{\text{SOFR}}\text{)} \\[2pt] W_{n} &: \text{ weight of borrower }n \\ &: \bigl(\sum_{n} W_{n}=1-W_{\text{Aave}}\bigr) \end{aligned}

Cash-flows are then split between the senior and junior tranches:

WUSD3  IRUSD3+WsUSD3  IRsUSD3=IRPool,WUSD3=0.85,  WsUSD3=0.15W_{\text{USD3}}\;\text{IR}_{\text{USD3}} + W_{\text{sUSD3}}\;\text{IR}_{\text{sUSD3}} = \text{IR}_{\text{Pool}},\qquad W_{\text{USD3}} = 0.85,\; W_{\text{sUSD3}} = 0.15

USD3 and sUSD3 APY

IRUSD3=IRPoolWsUSD3  IRsUSD3WUSD3\text{IR}_{\text{USD3}} = \frac{\text{IR}_{\text{Pool}} - W_{\text{sUSD3}}\;\text{IR}_{\text{sUSD3}}} {W_{\text{USD3}}}

USD3 receives interest first and benefits from a real-time cash reserve that enables most redemptions to clear instantly.

IRsUSD3=IRUSD3+(Excess SpreadReserve Accrual)WsUSD3\text{IR}_{\text{sUSD3}} = \text{IR}_{\text{USD3}} + \frac{\bigl(\text{Excess Spread} - \text{Reserve Accrual}\bigr)} {W_{\text{sUSD3}}}

sUSD3 earns every remaining basis-point of spread after senior distributions and reserve top-ups, but it also absorbs first losses.

Merchant Discount Factor Rate

3Jane gives you an upfront advance and, in return, buys a fixed specified amount of your future yield. The Discount Factor Rate (DFR) is a discount that reduces the specified amount if you repay the advance amount early, effectively charging you less. The discount shrinks towards zero over time as the days since funding increases.

RP(N)=A×(1+n=1NPn)DFR(N)=1RP(N)AA×(F1)\text{RP}(N) = A \times \left( 1 + \sum_{n=1}^{N} \text{P}_{n} \right)\\[2em] \text{DFR}(N) = 1 - \frac{\mathrm{RP}(N) - A}{\mathrm{A} \times (F-1)}
N:days since fundingA:advance amount at fundingF:fixed Factor (set at funding)RP:repurchase amount by day NDFR:discount factor rate by day NPn:daily pacing increment\begin{aligned} N &: \text{days since funding} \\[2pt] A &: \text{advance amount at funding} \\[2pt] \text{F} &: \text{fixed Factor (set at funding)} \\[2pt] \text{RP} &: \text{repurchase amount by day N} \\[2pt] \text{DFR} &: \text{discount factor rate by day N} \\[2pt] \text{P}_{n} &: \text{daily pacing increment} \\[2pt] \end{aligned}

Each day, a tiny pacing increment is applied:

(1) the pool’s baseline conditions (utilization) → base factor

(2) your credit risk profile → credit factor

(3) whether you were late that day → timeliness factor

Those three slices add up to your daily fraction Pn​.

Pn:Bn+Cn+LnBn:daily base factor, pool-wide. Derived from the pool’s utilization curveCn:daily credit risk factor, per-user. Derived from the 3CA algorithmLn:daily timeliness factor, per-user. Applied on days flagged late\begin{aligned} \text{P}_{n} &: \text{B}_{n} + \text{C}_{n} + \text{L}_{n} \\[2pt] \text{B}_{n} &: \text{daily base factor, pool-wide. Derived from the pool’s utilization curve} \\[2pt] \text{C}_{n} &: \text{daily credit risk factor, per-user. Derived from the 3CA algorithm} \\[2pt] \text{L}_{n} &: \text{daily timeliness factor, per-user. Applied on days flagged late} \\[2pt] \end{aligned}

Example:

  • Advance: A = 100,000

  • Factor: F = 1.15

  • Specified Amount: A⋅F = 115,000

D

Bn

Cn

Ln

Pn

Sum Pn

RP(N)

DFR(N)

1

0.000115

0.000049

0

0.000164

0.000164

100,016

99.8904%

2

0.000112

0.000052

0

0.000164

0.000328

100,032

99.7808%

3

0.000117

0.000046

0.000136

0.000301

0.000630

100,063

99.5799%

4

0.000109

0.000050

0

0.000160

0.000790

100,079

99.4731%

5

0.000120

0.000053

0

0.000173

0.000964

100,096

99.3571%

Last updated