Risk Management
Search
⌃K

Interest Rate Strategy

This section describes the lending pool's interest rate parameters.
The interest rate strategy of Trava pool is designed to control liquidity risk while also maximizing utilization. The Utilisation Rate determines the borrow interest rates.
Each token in each Pool has a utilization rate
UtU_t
at each time
tt
, which is defined by the ratio
Ut=Lt/AtU_t = L_t/A_t
where
LtL_t
represents total borrows and
AtA_t
represents total liquidity. This ratio regulates how much of a deposited token is used in the market.
When this ratio approaches 100%, there will be a scarcity of tokens in the Pool. The borrower will be unable to borrow at this time, and the lender will be unable to withdraw funds from the Pool. To avoid this, interest rate and risk parameters must be calculated in precise detail for each token.

Interest Rate Model

Interest Rate Model tends to be a cost-effective way for the Pool to run itself. The parameters of the pool will aid in the adjustment of borrow and deposit rates to a balanced and reasonable point.
In practice, numerous models are used: linear rate, non-linear rate, and kinked rate. The kinked rate model is used in the Trava protocol. As with the non-linear model, such models have the virtue of significantly shifting the incentives for borrowers and lenders beyond some usage level. In contrast to non-linear models without a kink, they also introduce a point of abrupt change in the interest rate, beyond which interest rates begin to sharply rise.
The kinked model is based on several parameters and is described as follows. Firstly, the ratio optimal utilization rate
UoptimalU_\text{optimal}
is a parameter that determines the best-fit utilization rate for the protocol. It varies from token to token and depends on the risk and volatility of the token. For example, it could be 80% for stable tokens like DAI, or just 65% for unstable coins like LINK.
Next, the interest rate is a function that varies based on utilization rate. Three parameters are used to define this function: (1) Initial rate
R0R_0
, (2) the constant
Rslope1R_\text{slope1}
is used when
Ut<UoptimalU_t < U_\text{optimal}
, and (3) the constant
Rslope2R_\text{slope2}
is used when
UtUoptimalU_t \geq U_\text{optimal}
.
Specifically, the interest rate
RtR_t
is defined by:
  • If
    Ut<UoptimalU_t <U_\text{optimal}
    then
    Rt=R0+UtUoptimal×Rslope1R_t = R_0 + \frac{U_t}{U_\text{optimal}} \times R_\text{slope1}
  • If
    UtUoptimalU_t \geq U_\text{optimal}
    then
    Rt=R0+Rslope1+UtUoptimal1Uoptimal×Rslope2R_t= R_0 + R_\text{slope1} + \frac{ U_t - U_\text{optimal}}{1 -U_\text{optimal}} \times R_\text{slope2}
The interest rates have a kink in them: they sharply change at a certain point. A variety of protocols use interest rates like this, including Aave and Compound. As users mint, redeem, borrow, repay, or liquidate tokens, the interest rate changes with the utilization rate
UtU_t
. As a result, it's also known as a variable interest rate.

Interest rate parameters in Trava protocol

Token
Uoptimal
Base
Slope1
Slope2
DAI
80%
0%
4%
75%
USDC
90%
0%
4%
60%
USDT
90%
0%
4%
60%
ETH
65%
0%
8%
100%
BNB
65%
0%
10%
100%
BUSD
80%
0%
4%
100%
BTCB
65%
0%
7%
100%
AAVE
65%
0%
7%
100%
ADA
65%
0%
8%
100%
CAKE
65%
0%
8%
100%
XRP
65%
0%
8%
100%
DOGE
60%
0%
8%
150%
DOT
65%
0%
8%
100%
XVS
65%
0%
7%
100%
FTM
65%
0%
8%
100%

Borrow rate

The borrow rate is calculated using the current interest rate
RtR_t
(per year) and is updated every second. That is, borrowers will be charged interest that changes every second. He must pay more interest if the Utilisation Rate is higher, and vice versa. Mathematically, at each time t, the Borrow rate (per second) is
Bt=Rt/YB_t = R_t/Y
where
Y=31536000Y= 31536000
is the number of seconds in a year. If the user is currently borrowing
TtT_t
tokens then the interest payable is
Tt×BtT_t \times B_t
. The interest payable is accrued to the loan in the next second, that is
Tt+1=Tt(1+Bt)T_{t+1}=T_t(1+B_t)
.

Deposit rate

Deposit rate and Borrow rate are closely linked. Precisely, at each time
tt
, deposit rate
DtD_t
is determined based on Utilization Rate
UtU_t
and borrow rate
BtB_t
and reserve factor
rr
. Precisely, deposit rate is defined by
Dt=Ut×Bt×(1r)D_t = U_t \times B_t\times (1-r)
.
In terms of probability,
UtU_t
is probability that each token is borrowed, thus
DtD_t
is the average value of interest earned from each token deposited into the Pool.
For deposit, the calculation of interest is updated after each operation deposit, withdraw, borrow, repay. In particular, if a user is currently depositing
TtT_t
tokens, after a period of time
Δt\Delta{t}
(in seconds) he will receive an interest of
Tt×Dt×Δt,T_t \times D_t \times \Delta{t},
and this interest is accrued to the deposited token, i.e. after time
Δt\Delta{t}
he have
Tt+Δt=Tt×(1+Dt×Δt).T_{t+\Delta{t}} = T_t \times (1 + D_t \times \Delta{t}).