Funding Arbitrage
How the spread is captured.
Funding Rate Basics
A perpetual contract does not expire. To keep its mark price anchored to the underlying spot, exchanges use a periodic payment called the funding rate. The rate is recomputed and settled every 1, 4, or 8 hours depending on the venue.
- Funding rate > 0 → longs pay shorts
- Funding rate < 0 → shorts pay longs
- Magnitude reflects the size of the premium / discount of perp vs spot
Settlement intervals vary by venue. Hyperliquid, Pacifica, Backpack, dYdX, Lighter use 1h. Variational, edgeX use 4h. Binance, Bybit, OKX and most other CEXs use 8h. ORBIT annualizes each rate using its actual interval; the cell shows APR, not the raw per-period rate.
How the Spread Forms
Each exchange runs its own internal funding-rate formula based on the local order book. Two venues looking at the "same" BTC perpetual will not produce identical rates because their participants, liquidity profiles, and funding formulas differ.
Persistent spreads tend to come from structural differences:
- DEX vs CEX user composition — DEXs often have more retail flow on one side
- Active points campaigns — venues with airdrop incentives attract long-biased flow
- Capital costs — venues with high cost of capital quote different equilibrium funding
- Order book depth — thin books amplify any directional pressure
Spread Formula
Annualizing a single leg
apr_pct = rate_per_interval × intervals_per_year × 100
intervals_per_year =
8760 if interval = 1h
2190 if interval = 4h
1095 if interval = 8hSpread between two legs
spread_pct = short_leg_apr_pct − long_leg_apr_pct
expected_pnl_usd_per_year =
(spread_pct / 100) × position_size_usdAfter execution cost
round_trip_cost_bps =
long_taker_bps + long_slippage_bps_long_side +
short_taker_bps + short_slippage_bps_short_side +
(mirror cost on exit)
net_apr_pct =
spread_pct − (round_trip_cost_bps / 100) ÷ hold_days × 365