# Methodology

## Governance Parameters Validation Checklist

Every two weeks after Gauntlet’s parameter update we’ll run the following tests to validate the robustness of the Moonwell’s governance parameters. We’ll also run 3 price changes scenarios based on historical VaR to identify key risks in the system.

<table data-full-width="true"><thead><tr><th width="184.33333333333331">Test</th><th width="343">Methodology</th><th>Actionable items</th></tr></thead><tbody><tr><td><strong>Interest Rate Model</strong></td><td></td><td></td></tr><tr><td>1.1 Market utilization is optimal</td><td><p>For every market, given normal market conditions, validate that utilization is equal or below the kink.</p><p>1. If utilization is greater than kink, explore the following factors:</p><ol><li>The supply rate is not attractive for lenders, or too low for borrowers</li><li>Rewards are too aggressive or more attractive than comparable markets</li></ol><p>2. If utilization is significantly less than kink, explore following factors:</p><ol><li>Borrow cap is reached</li><li>Borrow rate is not attractive for borrowers</li><li>Rewards are not competitive compared to equivalent markets.</li><li>Reserve factor makes rates unattractive</li><li>Borrow demand for specific asset is inelastic (not much to do in that case)</li></ol></td><td><p>Cause of sub-optimal market utilization is often multifactorial. Best way to address the issue differs on a case by case basis.</p><p>Here’s a list of possible actions:</p><ul><li>Adjust interest rate model to move utilization closer to kink.</li><li>Adjust rewards rates (see test 2.1).</li><li>If the borrow cap is reached, increase the borrow cap within risk tolerance (see test 7.1).</li><li>Reduce reserve factor (see tests 3.1 and 3.2)</li></ul></td></tr><tr><td><strong>Rewards Rates</strong></td><td></td><td></td></tr><tr><td>2.1 Rewards incentivize desired behaviors</td><td><p>Validate that rewards are being distributed to markets that are relevant.</p><ul><li>Validate the borrow and supply activity</li><li>Interest rates including rewards need to remain competitive with comparable markets on equivalent protocols or similar assets.</li></ul></td><td>Adjust supply and/or borrow reward rates.</td></tr><tr><td><strong>Reserve Factor</strong></td><td></td><td></td></tr><tr><td>3.1 Lending / borrowing rates are competitive</td><td><p>Compare lending rate, borrowing rate, utilization and market size with comparable markets (i.e USDT vs other stablecoins).</p><p>Make sure equivalent markets are in line with each other in risk / reward terms.</p></td><td>Reduce or increase the reserve factor to match comparable markets</td></tr><tr><td>3.2 Protocol reserves are sufficient to protect protocol against bad debt</td><td>Volatile and illiquid markets should have higher reserve factors than stable markets to compensate the DAO for the additional risks.</td><td>Adjust reserve factors.</td></tr><tr><td><strong>Close Factor</strong></td><td></td><td></td></tr><tr><td>4.1 Small liquidations can be successfully executed</td><td><p>For every market, validate that a 100$ liquidation can be profitably executed given:</p><ul><li>Worst case historical gas price</li><li>Current or proposed liquidation incentive</li><li>Current or proposed close factor.</li></ul></td><td>Increase the close factor up until liquidation can be processed profitably.</td></tr><tr><td><strong>Liquidation Discount</strong></td><td></td><td></td></tr><tr><td>5.1 Worst case historical liquidation scenario can be executed profitably in under 60 min for all markets.</td><td><p>For every market, validate that the worst time to liquidation is lower than 60 min by running a liquidation backtesting simulation.</p><p>Liquidation backtesting input parameters:</p><ul><li><strong>Protocol:</strong> Moonwell Artemis or Moonwell Apollo</li><li><strong>Asset</strong>: Underlying asset of concerned market</li><li><strong>Period</strong>: Largest time period where market conditions are comparable to current. (i.e pre-shanghai historical data for LSD assets might not be relevant)</li><li><strong>Liquidation size</strong>: Sum of top 5 collateral positions for market.</li><li><strong>Conditional price change</strong>: Optional - Useful to scope down liquidation cost statistics to relevant downturn events and make simulation faster to run. Suggested: -5%</li><li><strong>Liquidation discount</strong>: Current or proposed liquidation discount.</li></ul></td><td>Increase liquidation discount so that liquidation can be processed in less than 60 min. If the worst time to liquidation for a given asset is far superior than others, review the asset’s collateral factor.</td></tr><tr><td><strong>Collateral Factor</strong></td><td></td><td></td></tr><tr><td>6.1 The collateral factor gives the protocol sufficient room to wait for 60 min to execute a liquidations profitably without incurring bad debts even if the collateral assets decrease by the max drawdown</td><td><p>For every concerned market, validate that <strong>(1 - collateral ratio) covers the sum of following values at minimum</strong>:</p><ul><li>Max drawdown for the duration of the worst case liquidation scenario identified at test 5.1</li><li>Liquidation incentive</li></ul></td><td>Decrease proposed collateral factor to cover total liquidation cost</td></tr><tr><td>6.2 Parameter change doesn’t make any account liquidatable</td><td><p>Validate no account is liquidatable by running a collateral at risk simulation with following inputs:</p><ul><li>Proposed collateral ratio for all markets.</li><li>Small asset prices decrease (-2%) across all collateral assets.</li></ul><p>Run another simulation:</p><ul><li>Proposed collateral ratio for all markets.</li><li>Small asset prices increase (+2%) across all debt assets.</li></ul></td><td>Increase proposed collateral factor to avoid liquidations</td></tr><tr><td>6.3 Parameter change doesn’t make any account liquidatable (on-chain)</td><td><p>On a local network fork, get the current liquidity for all accounts, then run the following simulation to evaluate system state after proposal is applied:</p><p>Simulation #1</p><ul><li>Apply proposed parameter changes</li><li>Force a small decrease in oracle prices for concerned markets</li></ul><p>Simulation #2</p><ul><li>Apply proposed parameter changes</li><li>Force a small increase in oracle prices for concerned markets</li></ul><p>Validate accounts remain liquid in both cases</p></td><td><p>Increase proposed collateral factor to avoid liquidations.</p><p>Reach out to the community to inform them to close their borrow positions.</p></td></tr><tr><td>6.4. Parameter changes do not increase market risk exposure beyond desired level</td><td><p>Run Collateral at risk simulations <strong>with and without proposed parameter changes</strong> for the following scenarios:</p><ul><li>Collateral assets 5% historical VaR (excl. stables)</li><li>Borrow assets 5% historical VaR (excl. stables)</li><li>Stablecoin depeg</li></ul><p>Make sure the risk exposure on the short and long side is within desired risk tolerance level if applicable.</p></td><td>Increase proposed collateral factor to maintain risk exposure within tolerance</td></tr><tr><td>Borrow Cap</td><td></td><td></td></tr><tr><td>7.1. Protocol short exposure to underlying assets is manageable</td><td><p>For every market, test the following</p><ul><li>Slippage for trading 100% of borrow cap to stables</li><li>Slippage for trading the current total borrow to stables</li><li>Trade size to reach 5% slippage in one trade</li></ul></td><td>Decrease the borrow cap liquidity and slippage to buy the asset has materially deteriorated.</td></tr></tbody></table>
