Funding Rate & Utilization Curve

Unlike traditional perpetuals, Perennial uses a Compound-style funding rate, where the rate is determined as a curve over the utilization of takers versus makers in the market, where utilization represents the portion of the liquidity pool (maker positions) actively being utilized by open taker positions. This rate is used to incentivize a target utilization ratio. Each market has its own utilization curve.
This allows users to incur temporary funding slippage instead of permanent entry and exit price slippage when opening and closing positions.
Note that the funding rate can be negative (i.e. makers pay takers). This generally happens when the market overwhelmingly favors the maker side of the market (maker expected return is more negative than the magnitude of the risk free rate). However, to start, funding rate will always be positive, for simplicity (that is, takers always pay makers).
The market operator will need to define the utilization function which defines the funding rate at every level of utilization, allowing each market to have have a different cost of exposure. Perennial uses Compound-style utilization curves that are algorithmic & continuous.

Jump-rate Curves

Initially, Perennial will have 1 utilization curve that can be forked out of the box — JumpRate curve. JumpRate utilization curves, popularized by DeFi borrow/lend protocols like Compound and Aave, define a rate curve that targets an optimal (and high!) liquidity utilization. This is designed to create 1) Capital efficiency: liquidity utilization stays high (~80%), and 2) Liquid markets: this mechanism auto-rebalances supply & demand to create perpetual liquidity.
In JumpRate curves, the curve is parameterized to slowly increase in a linear fashion as utilization climbs to the target utilization at which it reaches its target rate. Then, beyond this target utilization, the rate increases rapidly to incentivize the market to rebalance back to the target utilization/rate.
To construct a jump rate curve, 4 parameters are needed:
Min Rate: Lowest acceptable rate
Max Rate: highest rate traders would be. willing to pay (sufficiently high to balance liquidity during times of high utilization)
Target Rate: The rate when the market is at equilibrium
Target Utilization: the equilibrium utilization level
{minRate+Utilization(targetRateminRate)UtilizationtargetUtilizationtargetRate+(UtilizationtargetUtilization)(maxRatetargetRate)Utilization>targetUtilization\begin{cases} minRate + Utilization * (targetRate - minRate) & Utilization \leq targetUtilization \\ targetRate+ (Utilization - targetUtilization) *(maxRate-targetRate) & Utilization > targetUtilization \end{cases}
Example of a JumpRate curve with the following parameters:
MinRate = 0% MaxRate = 125% TargetUtilization = 80% TargetRate = 15%
Note that shaping the perfect curve is an ongoing battle, and these curves will need to be actively managed. Future improvements will introduce PID utilization curves that auto adjust to a changing market.