Performance Fee

Performance Fees for pre-Sulu releases include the concept of a “crystallisation period”. While this concept is important in traditional finance, it is also complicated and gas-expensive to properly implement on-chain.
By removing the concept of “crystallisation period”, we can greatly simplify the implementation of the performance fee in the protocol.
This also implies that the performance fee is paid out at any time one of the triggering events happens.
Without a "crystallisation period" the manager can potentially earn more performance fees through continuous accrual instead of quarterly or yearly accrual. Managers should therefore set the rate for the new simplified performance fee lower than the rate of the previously used performance fee.


  • Performance fee is paid after a period of constant share supply. Share supply changes on the following actions:
    • buy shares
    • redeem shares
    • claim fees
  • Performance fee is only paid if the share price at the end of a share period is larger than the high watermark.
  • Only the wealth created for the share price above high watermark is taken into account.
  • Performance fee is paid out in shares, as all other fees.
  • Order of fee registrations: Management Fee, Performance Fee, Entrance Fees, Exit Fees


  • Call totalSupply =
    i.e. totalSupply before minting or burning shares for the action)
  • Read highWatermark from storage (this is the share price after the previous performance fee calculation, see below),
  • Current gross share price
    gi=GAVi/TSig_i = GAV_i / TS_i
  • Wealth created during period:
    Wi=max(gihwm,0)TSiW_i = max(g_i - hwm, 0) \cdot TS_i
  • Value of performance fee during period
    Fi=WixF_i = W_i \cdot x%
    , where
    is the performance fee percentage
  • Performance fee shares (dilute existing shares):
    fi=FiTSiGAViFif_i = \frac{F_i \cdot TS_i}{GAV_i - F_i}
  • Calculate share price (after all fees have been minted or burnt):
    gi=GAVi/TSig_i^\prime = GAV_i / TS_i^\prime
    is the new total supply after all fees have been settled. If
    gi>hwmg^\prime_i > hwm
    (i.e. also
    will be larger than zero), then update storage
    hwm=gihwm = g^\prime_i