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

ParameterDescription

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

ParameterDescription

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