Skip to main content

Pricing

Previously, an offchain pricing module was used for cover products. This model has been sunset and pricing has now moved onchain, with a dynamic pricing model that determines the price of cover products.

When a cover product is added to a staking pool, the price starts at the initial price and decreases over time toward the target price set by each staking pool. The initial price for each cover product is determined by the Advisory Board and the target price is set by members running staking pools, who are referred to as staking pool managers.

With this approach, the price - per pool per risk - starts high and decreases to the minimum a staking pool is willing to accept, like a Dutch auction. This allows for price discovery; should risk be mispriced, demand at a given price will signal the willingness of members to buy cover at that price floor.

The dynamic pricing mechanism is reviewed in detail below.

Spot price

The spot price decreases linearly from bumpedPrice to targetPrice, depending on the Speed(PRICE_CHANGE_PER_DAY) and the time passed since the last cover buy.

Spot price formula

spotPrice = MAX(bumpedPrice - priceDrop, targetPrice)

Where:

  • bump = 0.2% addition to the spot price per 1% of pool capacity used
  • Bumped price = spotPrice + capacity% of the pool to be used / 1% x 0.2
  • priceDrop = timeSinceLastCoverBuy * speed
  • speed = PRICE_CHANGE_PER_DAY / 1 dayInSeconds
  • targetPrice is set by the staking pool manager and can be updated at any time

Bumped price

The Bumped Price gets updated after each cover buy and is used to calculate the spot price of the NEXT cover.

Example

  • spotPrice = 2.5%
  • capacity % of the pool to be used = 15%
  • bumpedPrice = 2.5 + 15% / 1% x 0.2 = 5.5 price per annum

Note: when a cover product is first added to a staking pool, the BumpedPrice is equal to the InitialPrice set by the Advisory Board.

Price drop

This is determined by taking the timeSinceLastCoverBuy and multiplying by the Speed, which moves at 2.0% per day. The price drop is subtracted from spot price.

Example

  • speed = 2.0% per day
  • timeSinceLastCoverBuy = 3 days
  • priceDrop = 3 * 2.0% = 6.0%

Calculating spot price

You can see an example of the variables being used to calculate the price of an individual cover product within a staking pool:

Example

  • speed = 2.0% per day
  • timeSinceLastCoverBuy = 3 days
  • priceDrop = 3 * 2.0% = 6.0%
  • bumpedPrice = 6.5%
  • targetPrice = 4%
  • spotPrice = MAX(6.5% - 6.0%, 3%) = 3.0%

Surge loading

When the capacity for a cover product falls between 90% to 100%, surge pricing, referred to as loading, is applied to a cover product’s price.

  • If the cover product has 0% to 90% of capacity reserved for existing covers, then no loading applies
  • If the cover product has 90% to 100% of capacity reserved for existing covers, then loading is applied, where loading is a linear function related to capacity used post cover purchase
    • For loading of 2% per 1% of capacity used above 90%

Price formula including surge loading

premium = basePremium + surgePremium

Where:

  • basePremium = cover amount * spotPrice
  • surgePremium = cover amount * surgeLoading / 2

    • Where surgeLoading is referred to as the surge loading factor in the examples below

Example: capacity starts at 88% and goes to 95%

  • used capacity % before = 88%
  • used capacity % after = 95%

loading = 0.02 for every 1% of capacity over 90%

surge loading factor at 95% = (95% - 90%) / 1% * 0.02 = 5 * 0.02 = 0.1

Example: capacity starts at 91% and goes to 95%

  • used capacity % before = 91%
  • used capacity % after = 95%

surge loading factor at 95% = (95% - 90%) / 1% * 0.02 = 5 * 0.02 = 0.1

surge loading factor at 91% = (91% - 90%) / 1% * 0.02 = 1 * 0.02 = 0.02

and

premium = basePremium + surgePremium

Where:

  • basePremium = cover amount * spotPrice
  • surgePremium = surgePremium 90% to 95% - surgePremium 90% to 91%

  • surgePremium 90% to 95% = amount * surge loading factor at 95% / 2 =

  • surgePremium 90% to 91% = amount * surge loading factor at 91% / 2 =

Benefits

Dynamic pricing adjusts based on changes in demand and utilization. This allows for reactive pricing without the need for immediate action by staking pool managers.

The dynamic pricing model allows a staking pool to diversify risk across cover products no matter if demand is high or low. In each instance, the price will increase or decrease to reflect the market rate.

High utilization, high price to signal demand

Should the perceived risk associated with a single cover product increase in a short period of time, the increase in cover buys will shift the cover price higher. When this happens, the Mutual captures more revenue as exposure to any single risk increases. If the utilization for one cover product rises above 90%, then surge pricing is applied to the cover product’s price.

Rising prices and surge pricing can serve as a signal to staking pool managers that the risk needs to be re-evaluated to determine:

  • If more staked NXM should be allocated to open up additional capacity for that cover product; or
  • If the pool should reduce exposure to that risk over time by adjusting the staking parameters

Low utilization, low price

Cover products in a staking pool with ample capacity but infrequent cover buys will decrease in price toward the target price set by the staking pool manager. If a smaller amount of staked NXM is allocated to a cover product, the target price can still be achieved, though when additional cover is purchased, the cost of cover will move up in price faster than a pool with a larger number of staked NXM allocated to the same risk.

Managing exposure to risk

As the cost of cover increases, demand will begin to decrease once the price reaches a certain level and continues to rise. This can limit exposure to risk, while generating more revenue for the Mutual and members participating as NXM stakers.

Dynamic pricing plays an important role in risk management, though it’s not the only way the protocol manages exposure to risk.