Thank you for putting this together. A few thoughts:
I don’t think establishing floors is good (in fact, there may be a case where we should make the rate negative).
Likewise, I’d look at (5) as a case where we should be primarily looking at capital in the stability fund and liquidation pool (my proposal to improve this in KIP-006). I think this would influence our adjustment of the collateralization requirement, but not the stability fee. Happy to discuss this though.
I think that we should have clear criteria for when we move the rate. I think it should be established for both an upwards and downwards ratcheting. Additionally, I’d like to know how much things change when we make these changes. For example it would be cool to say "a 2% reduction generally causes a 0.5% move in peg. I think that’s hard to do at the moment, since I get the feeling that a lot of peg movement is caused by XTZ price volatility [1].
Eventually I think it might be interesting to make these adjustments automatically based on kUSD price, though for a variety of reasons I’m not sure if we can do this yet (lack of a DEX with an on-contract way to fetch prices, lack of liquidity may make this volatile, and the time it takes to write / test this code). I will be interested to see how ctez, which uses a similar methodology, performs in the wild.
In the meantime, I think that we should just form some criteria that we can re-evaluate with time. My proposal (generally based on KIP-002):
Process to Lower Stability Fee:
-
The EMA10 of peg on Quipuswap is below 1.5% for a week
Justification: Price volatility of XTZ and lack of liquidity seems cause peg volatility. 1 week is enough data it indicates trends and won’t cause us to over-react
-
A cut of 2.5% should be submitted
Justification: This is a small move that can easily be reverted
-
If during voting or timelock, we get an EMA of above 2.5%, then the proposal author should cancel the proposal rather than executing.
Justification: This is an indicator that something else is going wrong, or conditions have changed and the adjustment should be aborted.
The change to go higher is the opposite.
Process to increase Stability Fee:
- The EMA of Quipuswap is above 1.5% for a week
- An increase of 2.5% should be submitted
- If during the voting or timelock, we get an EMA of below 1%, then the proposal author should cancel the proposal rather than executing
Note: I’m not sure what the right value is here, 1% mirrors the 0.5% offset in the lowering proposal above, but I think that we might just see people arbitrage back to this point to get the proposal cancelled. It is unclear if that is working as intended.
Over time, I’d expect us to refine the parameters above (EMA10 thresholds, adjustment amount, and DEXes) and I think we could build some tools to automate this / alert us when it happens.
[1] I’d still expect that arbitrageurs would be taking advantage of this, and it might benefit us to understand how to encourage arbitrage. I think that additional DEXes and liquidity may help. The latter is perhaps possible for us to influence, the former is not.