Interest Rate Models

Interest rates fluctuate based on borrowing utilization.


The interest rate models in the Lodestar markets all operate with a "jump rate" mechanism. The jump rate model is a linearly scaling model that has a "kink" along the X-axis at a preset point (80% Utilization ratios in all models). We will construct this model with Utilization Ratio on the X-axis and Interest Rate on the Y-axis. Utilization Ratio (UR) is given by the following:
UR=borrows÷(cash+borrowsreserves) UR = borrows ÷ (cash + borrows - reserves)
Borrows refers to the total amount of assets lent out from a given market. Cash refers to the total amount of tokens in the pool currently. Reserves refers to extra protocol owned liquidity that builds up over time in the markets to facilitate deep liquidity and withdrawals at any time. Interest rates for a given pool scale linearly with UR. We can see an example of that below:
The interest rate is scaling linearly with the Utilization Ratio.
From a UR of 0% to 80% there is a slow linear increase in interest rate. This slope is given by the parameter multiplier per block. At 80% we see the kink, the kink location is a customizable parameter. Over 80% UR to 100% UR we see a rapid, albeit still linear increase in interest rate. The slope over this region is given by the parameter jump multiplier per block.
Interest accrued in each pool occurs on a block by block basis. The interest rate given by the model is displayed in the front end as the APR of the current block daily compounded for 1 year. For each block, the UR will be determined, and the proper amount of interest accrued will be charged to every debtor’s balance. Creditors of the asset will receive a portion of the interest accrued to their supply balance each block proportional to their share of the total pool, less what is allocated into reserves. To arrive at the interest for a given UR we will need to first define a series of parameters.


Multiplier per Block gives the slope for the 0-80% Utilization region and is given by:
MultiplierperBlock=MultiplierperYear÷(BlocksperYear×Kink)Multiplier per Block = Multiplier per Year ÷ (Blocks per Year × Kink)
Jump Multiplier per Block gives the slope scalar value over the 80-100% region and is given by:
JumpMultiplierperBlock=JumpMultiplierperYear÷BlocksperYearJump Multiplier per Block= Jump Multiplier per Year ÷ Blocks per Year
Normal Rate is an intermediate value used to calculate the interest rate over the 80-100% region. Normal Rate is given by:
NormalRate=Kink×MultiplierperBlockNormal Rate = Kink × Multiplier per Block
Excess Utilization tells the model where on the x axis UR lies with respect to the kink, when in the 80-100% region of utilization. Excess Utilization is given by:
ExcessUtilization=URKinkExcess Utilization = UR - Kink
Finally, to calculate the interest rate per block in the 0-80% region of utilization we use the following formula:
InterestRate=UR×MultiplierperBlockInterest Rate = UR × Multiplier per Block
In the 80-100% utilization region the formula becomes:
InterestRate=(JumpMultiplierperBlock×ExcessUtilization)+NormalRateInterest Rate =(Jump Multiplier per Block × Excess Utilization)+ Normal Rate