Floating IRM

Interest Rate Mechanism

Floating-rate markets are spot borrowing rates which dynamically change with the utilization of the market (how much of the lent supply is being borrowed).

Utilization Definition

We first define our utilization as:

u(t)=Borrow(t)Lend(t)u(t) = \frac{Borrow(t)}{Lend(t)}

Where:

  • Borrow(t)Borrow(t) is the total assets borrowed from the market at time tt.

  • Lend(t)Lend(t) is the total assets lent (supplied) in the market at time tt.

Rate Calculation

Using the utilization, we can compute our rate:

r(t)=rT(t)×curve(u(t))r(t)=r_T(t)\times curve(u(t))

Here, rT(t)r_T(t) is the target rate (the rate if utilization is at it's target value utargetu_{target}). This value is set first at market creation and then drifts dynamically based on utilization over time.

rT(t)=rT(last(t))×exp(kpe(u(last(t)))(tlast(t)))r_T(t) = r_T(last(t))\times exp(k_p\cdot e(u(last(t)))\cdot(t-last(t)))

Where our utility function e(u)e(u) is defined as:

e(u)={uutargetutarget,if uutarget,uutarget1utarget,if u>utarget.e(u) = \begin{cases} \dfrac{u - u_{\text{target}}}{u_{\text{target}}}, & \text{if } u \le u_{\text{target}}, \\[8pt] \dfrac{u - u_{\text{target}}}{1 - u_{\text{target}}}, & \text{if } u > u_{\text{target}}. \end{cases}

As for our utility curve curve(u)curve(u), we define this as follows:

curve(u)={(11kd)e(u)+1,if uutarget,(kd1)e(u)+1,if u>utarget.\text{curve}(u) = \begin{cases} \left(1 - \dfrac{1}{k_d}\right)\, e(u) + 1, & \text{if } u \le u_{\text{target}}, \\[8pt] \left(k_d - 1\right)\, e(u) + 1, & \text{if } u > u_{\text{target}}. \end{cases}

The utility curve (unlike the rate target) is static and path-independent.

Therefore, the rate depends at any time depends on a path-independent utility curve and a path-dependent rate target which are both calculated based on utilization of the market.

Last updated