Proposal overview
Adjust interest rate to account for APY over-approximation
Simple Summary
- Update interest rate on AMPL market to account for over-approximation in compounded interest computation.
- Make use of the exponential curve due to the over-approximation to set higher max APY.
Motivation
In AAVEs MathUtils an over-approximation in the application of the interest rate for computing compounded interest was discovered.
In calculateCompoundedInterest method
Periodic rate (per second) is computed as:
uint256 ratePerSecond = rate / SECONDS_PER_YEAR;
in comparison to the exact computation.
derived from:
The deviation in the applied interest rate causes a small over-approximation for APYs <10%, but grows exponentially as can be seen below.
Expected APY | Effective APY | Expected daily rate | Effective daily rate |
---|---|---|---|
4.00% | 4.08% | 0.01% | 0.01% |
5.00% | 5.13% | 0.01% | 0.01% |
10.00% | 10.52% | 0.03% | 0.03% |
50.00% | 64.87% | 0.11% | 0.14% |
100.00% | 171.83% | 0.19% | 0.27% |
200.00% | 638.91% | 0.31% | 0.55% |
1000.00% | 2202543.09% | 0.68% | 2.78% |
10000.00% | 2.69E+43% | 1.30% | 31.52% |
This difference is especially noticeable in the AMPL market, where the configured interest rate can go up to 10,002% at max utilization.
The AAVE Genesis team has been made aware and they will publish more guidance on the discrepancy.
Specification
As mentioned in AIP-26, a nonlinear - logistic or exponential - interest curve is more suited for AMPL's market and potentially other assets on AAVE's platform.
The over-approximation mentioned above results in an exponential curve which allows for defining a more suitable interest curve for AMPL. We propose the following parameters, which produces the curve below.
- Optimal utilization = 80%
- Base rate = 1%
- Slope1 = 2%#
- Slope2 = 750%
APY table above 80% Utilization:
Utilization | APY |
---|---|
80.00% | 3.05% |
81.00% | 49.93% |
82.00% | 118.15% |
83.00% | 217.40% |
84.00% | 361.82% |
85.00% | 571.94% |
86.00% | 877.67% |
87.00% | 1322.50% |
88.00% | 1969.72% |
89.00% | 2911.43% |
90.00% | 4281.60% |
91.00% | 6275.19% |
92.00% | 9175.85% |
93.00% | 13396.29% |
94.00% | 19536.98% |
95.00% | 28471.63% |
96.00% | 41471.48% |
97.00% | 60386.14% |
98.00% | 87906.81% |
99.00% | 127949.14% |
100.00% | 186210.38% |
The part of the curve under 80% Utilization:
Rationale
- Accounting for the over-approximation of the existing Slope2=10,000% interest curve requires reducing the slope2 parameter.
- Taking advantage of the exponential curve allows for: a. Setting a higher optimal utilization rate. b. Setting a higher maximum APY to reduce the potential for utilization being at 100% for extended periods without creating a too steep of an interest rate increase right above the optimal utilization rate.
Implementation
A deployment of the existing implementation of the Interest Strategy will be used, with the following parameters:
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
variableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
variableRateSlope2: new BigNumber(7.5).multipliedBy(oneRay).toFixed(),
https://etherscan.io/address/0x84d1FaD9559b8AC1Fda17d073B8542c8Fb6986dd#readContract
Copyright
Copyright and related rights waived via CC0.
Your voting info
Voting results
YAE
472.01
NAY
0
472.01
472.01
16,000,000
Proposal details
~ 09 Sep 2021, 09:10 am
~ 09 Sep 2021, 09:10 am
Ahmed Naguib Aly (@ahnaguib)