Discovery engine v1 : Statistical model [Live]
The engine runs on real-time on-chain data to relatively score available markets in a range of [0,1]. This is to note that the engine's scores are relative based on the parameters chosen by the user, and NOT an absolute measure of risk. The users are advised to do their own research before deploying assets into any of the integrated protocols.
The first set of inputs to the engine required from the user:
Supply asset (in case of lending)
Collateral asset and Debt asset (in case of borrowing)
The second set of inputs is the parameters users wish to optimise for. The parameters vary based on whether the user wishes to lend or borrow. The parameters are presented as toggles that users can opt to enable.
Lender
Parameter | Description |
---|---|
Supplied Liquidity | The total supplied liquidity in a protocol for the selected asset |
Net Supply APR | Net supply APY for the supply asset, including protocol rewards (if any) |
Borrower
Parameter | Description |
---|---|
Net APY | Supply APY + (LTV*Borrow APY) |
Available Liquidity | Total available liquidity of the borrow asset in a protocol The engine calculates two additional rewards: Borrow requirement reward (checks whether the debt requirement of a user is less than 10% of the available liquidity) ie, If BoReq < (0.1 * AvaiLiq) BoReqReward = 0.25 Else BoReqReward = 0 Utilisation reward (checks that the debt requirement of the user doesn’t cross the utilisation threshold of the pool) ie, If (ReserveSize − AvaiLiq + BoReq)/ReserveSize < Uth UthReward = 0.25 Else UthReward = 0 This parameter underscores the protocol's risk profile, as a function of TVL and market's utilisation. |
LTV | Loan-to-value ratio (Max borrowable amount)/(collateral supplied) This parameter can be selected if the user wishes to maximise exposure to the borrow asset |
LT | Liquidation Threshold: the ratio of borrowed/collateral amount at which a position is defined as undercollateralised |
Users have the option to select which parameters the engine should optimise for. Based on the user’s requirements and parameter selection, the engine uses a simple weighted sum model to score each lending pool.
Scoring
Normalisation
Parameter values across available marekts are generally spread across different ranges
These values are captured at a given timestamp through the Data engine
Model then identifies max & min values for the parameter’s range at the given timestamp
normalizedValue = (rawValue − minValue) / (maxValue − minValue)
This way, each parameter range is normalised within [0,1]
Scoring (when lending)
If optimising only one parameter
Score = selected normParameter
If optimising both parameters chosen
Score = (normSupplyAPY + normSupplyLiq) / 2
Both parameters are given equal weight
Scoring (when borrowing)
If optimising only parameter
Score = selected normParameter
If optimising two parameters
Including Available Liquidity (ex: Available Liquidity, Net APY)
BoReqReward + UthReward + normNetAPY/2
Excluding Available Liquidity (ex: Net APY, LTV)
(normNetAPY + normLTV)/2
If optimising three parameters
Including Available Liquidity (ex: Available Liquidity, Net APY, LTV)
BoReqReward + UthReward + (normNetAPY + normLTV)/4
Excluding Available Liquidity (ie, Net APY, LTV, LT)
(normNetAPY + normLTV normLT)/3
If optimising all parameters:
Score = BoReqReward + UthReward + (normNetAPY + normLTV + normLT)/6
Based on the above model, the engine scores each available market for the selected supply/borrow asset(s) within the range [0,1].
Note: The purpose of the discovery engine is to allow users to easily evaluate the available leverage sources relative to each other. Hence the each market is scored relative to other available markets for the selected asset(s). The score is not an absolute measure of risk, and and the users are expected to do their own research while deploying assets into any protocol.
Last updated