# Interest Rate Model

{% hint style="info" %}
The interest rate for each market is determined dynamically, purely based on supply and demand of that market. Interest is calculated and accrued on a per-block basis, with an average of \~1.25s mainnet [blocktime](https://docs.onflow.org/cadence/measuring-time/#time-on-the-flow-blockchain) and \~0.8s testnet blocktime as of June 2023.
{% endhint %}

### Interest Rate Model for {Flow, stFlow, BLT, USDC, FUSD} markets&#x20;

<table><thead><tr><th width="150">baseRate</th><th width="150">criticalRate</th><th width="150">criticalPoint</th><th width="150">baseSlope</th><th width="150">jumpSlope</th><th>reserveFactor</th></tr></thead><tbody><tr><td>0.1%</td><td>10.1%</td><td>80%</td><td>0.125</td><td>3.5</td><td>10%</td></tr></tbody></table>

<figure><img src="https://3251356001-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOYVGTCPlwadp5cBBtffl%2Fuploads%2FgGN8eu94MlnQKlE42ich%2Fimage.png?alt=media&#x26;token=834a4ab7-2e6d-4aab-aa46-3165aa84e183" alt=""><figcaption></figcaption></figure>

Users will be charged interests for borrowing fungible token assets. The borrow interest rate is algorithmically-set based on supply and demand of the asset - which is reflected by the asset pool utilization rate.&#x20;

### Utilization Rate

$$
poolUtilizationRate = \frac{poolBorrows}{poolBorrows + poolCash - poolReserve}
$$

### Borrow Interest Rate

A critical point (80%) exists in the borrow interest rate model:&#x20;

* When utilization rate is below the critical point, a flatter slope is applied
* Once utilization rate exceeds the critical point, the slope becomes much steeper - This incentives borrowers to pay back the borrowed assets while at the same also incentives suppliers to deposit assets to earn a high APR.&#x20;

$$
borrowInterestRate=\left{
\begin{array}{ll}
baseRate\ +\ baseSlope\cdot utilRate, & \mbox{utilRate$\<criticalPoint$}\\
jumpSlope\cdot\left(utilRate-criticalPoint\right)+criticalRate, & \mbox{utilRate$\ge criticalPoint$}
\end{array}
\right.
$$

### Supply Interest Rate

Supply interest rate is inferred from borrow interest rate after deducting the fraction goes to the pool reserve:

$$
supplyInterestRate = (1 - reserveFactor) \cdot utilRate \cdot borrowInterestRate
$$

### Reserve

Each asset pool maintains a FungibleToken Vault as pool reserve, whose balance comes from a fraction of generated interests, determined by **reserveFactor**. Reserve serves the purpose of incentivization and risk mitigation, such as protection against smart contracts exploits, oracle attacks, emergency shutdown, etc.&#x20;
