Mark price calculation

Dec 30, 2025

What is the mark price?

The mark price is a fair price measure for the futures market. It is used to calculate unrealized P&L, funding rate settlements, and to determine forced liquidation levels. It is one of the most critical price indicators in futures trading, serving as the key driver of market operations. Therefore, it must not be overly sensitive or sluggish in reflecting market changes.

Mark price calculation

For perpetual futures, the mark price is calculated by taking 3 raw price values and then using their median as the final mark price. The mark price is updated every second.

The 3 raw prices are:

Price 1: Last price on the OSL Futures market

Price 2: Calculated based on the index price and funding rate

Price 3: Calculated based on the index price and the futures order book basis

Price 2 calculation:

(i)  Price 2 = index price × (1 + latest funding rate × time until next settlement ÷ funding rate settlement interval). The funding rate settlement interval and the time until the next settlement are measured in minutes, with the specific length of time determined based on the funding rate settlement interval of the futures. For example, if the funding rate is settled every 8 hours, the funding rate settlement interval = 60 × 8 = 480 minutes.

(ii) Example:

i. Current index price of BTCUSDT perpetual contract: 91,500

ii. The funding rate settlement interval for BTCUSDT perpetual futures: 8 hours = 480 minutes

iii. The current time is 14:00 UTC, meaning 2 hours are left until the next settlement (at 16:00 UTC). So, time until the next settlement = 2 × 60 = 120 minutes.

iv. Latest funding rate = 0.01%

v. Price 2 = 91,500 × (1 + 0.01% × 120 ÷ 480) = 91,502.2875

Price 3 calculation:

(i) Price 3 = index price + MA (30-second order book basis)

(ii) Step 1:  Calculate the order book basis. Order book basis = (Bid1 + Ask1) ÷ 2 − index price. The order book basis is updated every second (e.g., at 1s, 2s, 3s, …, 30s of each minute). The Bid1, Ask1, and index prices are captured simultaneously.

(iii) Step 2: Calculate the arithmetic average of the 30-second order book basis. MA (30-second order book basis) = (Basis1 + Basis2 + ... + Basis30) ÷ 30. The order book basis is updated every second. Mathematically speaking, each basis is weighted equally at 1/30.

(iv) Step 3:Price 3 = index price + MA (30-second order book basis)

Mark price = median (Price 1, Price 2, Price 3)

If you experience any issues or require further assistance, please contact the OSL Global Support Team through the app, platform, or by emailing [email protected]