Crypto Perpetual Trading Costs: Calculate Fees, Spread, Slippage, and Funding
Estimate a perpetual trade's realized cost by separating opening and closing fees, execution drag, funding, and account charges without double-counting.
In this guideOrder cost is a reserve; realized trading cost is determined later
Short summary
Trading costs for a crypto perpetual position are not just one fee or the margin reserved to place an order. Separate the fee on each fill, the difference between a reference price and the actual execution price, funding debits or credits, and any product-specific charges. Reconcile the final account result against actual fills and the venue’s statement.
Order cost is a reserve; realized trading cost is determined later
An order confirmation may show the funds needed to place an order. Depending on the venue, that reserve can include initial margin plus estimated opening and closing fees. It is not an expense already paid or a maximum-loss amount. Because the closing price is not yet known, a venue may estimate the closing fee using an assumed price and its default taker rate.
Actual costs depend on how much fills, at what prices, which fee tier applies at the time, and whether a position is open at a funding event. A canceled order may release reserved funds without creating a fill fee. A partial fill can incur a fee on the executed quantity while the remainder stays pending. Keep “cash needed to place the order” separate from “amount posted to the account after fills.”
Bybit’s order-cost guide describes reserving initial margin and estimated opening and closing fees for USDT, USDC, and inverse contracts. Since the closing price is unknown, its close-fee estimate can use the bankruptcy price and a non-VIP taker rate; actual fees depend on order type, fill price, and VIP tier. This reserve is an input to determine order capacity, not a realized debit in the cost ledger.
Separate the cost components before adding them
For a position that is opened and later closed, separate the main items:
- Opening fee: the rate applied to the notional value of the opening fills
- Closing fee: the applicable closing rate multiplied by the notional value of the closing fills
- Execution difference: the gap between a chosen reference price and the actual fill price
- Funding: a payment or receipt determined by the position and venue rules at an event
- Other account charges: items such as automatic borrowing interest or product-specific settlement or liquidation charges, only when the terms apply
Funding is not a trading fee, and receiving funding does not erase an execution fee. Price P&L is separate from fees. Wallet deposits and withdrawals or blockchain network fees are also separate from the perpetual execution ledger. They can matter in a total account-cost comparison, but mixing them with execution costs makes it harder to see where the balance changed.

Reconcile a hypothetical round trip in two equivalent ways
For a single entry and exit, P&L from reference prices and P&L from actual fills differ by execution drag. The actual-fill method uses the prices at which the orders traded. The reference-price method uses a chosen benchmark immediately before execution and reports favorable or unfavorable execution separately. In the linear example below, both accounting paths agree when fees and funding are recorded after price P&L as separate lines.
Funding depends on the event rule and the position at that time
Funding intervals, reference prices, formulas, sign conventions, and eligibility rules vary by venue. Coinbase International Exchange’s funding guide says funding is paid or received for positions open at the end of each interval; closing before an interval ends avoids that event. Its current funding-interval page states that the interval is one hour as of September 25, 2026. Coinbase has also announced a derivatives infrastructure change targeted for October 1, 2026, while noting that timing and details could change. If reading this after that date, recheck the new venue’s terms instead of assuming the hourly interval still applies. This is current information about Coinbase, not a universal perpetual-contract rule.
Funding can be paid or received, and the amount can change with position value and rate. A simple product may estimate it as position value multiplied by the funding rate, but the value basis, multiplier, caps, rounding, and payment currency depend on the contract rules. The perpetual funding-rate guide explains why a rate by itself does not establish the amount or payer for every contract.
Contract denomination changes the currency of the result
A linear contract often has a notional value based on quantity times price, but an inverse contract can use different contract units and a different settlement currency. Some venues deduct fees in USDT or USDC; others may deduct them in an underlying asset such as BTC or ETH. Recording only the percentage rate can hide the currency actually deducted and the effect of translating that currency into dollars.
Leverage changes the margin required for an order, but does not automatically reduce the fee on the same executed notional. Return on margin may rise when the margin denominator is smaller, while a fee in dollars is still calculated separately from contract value and the applicable rate. Do not combine account cash flows, realized position P&L, and return on margin into one number.
Keep a ledger that can be recalculated after fills
Record the contract, position direction and size, contract multiplier, fee tier, each fill price and maker/taker classification, fee amount and currency, funding rate and event time, and other charges. If you use a reference price to estimate spread or slippage, record that benchmark and its timestamp. Changing the benchmark changes the execution-difference calculation.
Bybit publishes a trading-fee calculation guide separately from order cost and provides funding history. Hyperliquid’s fee schedule sets that venue’s own tiers and rebates. Do not assume that labels or rates mean the same thing across exchanges. Check which currencies and signs appear in order, fill, and funding records. The account tier, fill-specific discounts, and conversions actually applied are best verified from the trade ledger, not inferred from a rate table.
To compare venues, hold constant the notional, order role, assumed entry and exit prices, holding period, number of funding events, and fee currency. A lower headline rate is not necessarily cheaper if one example assumes maker fills and the other taker fills, or if multiplier and funding interval differ. A cost scenario is not a price forecast or a recommendation to trade on a particular venue.
Actual fills and reference prices are different starting points for reconciliation
Calling slippage one fixed fee rate hides which price you are comparing against. First define the benchmark: the midpoint at execution time, the best quote, or the displayed price before the order. Then compare each fill with that benchmark—for a buy, whether it paid more than the then-current ask or consumed several levels; for a sell, whether it received less than the then-current bid. The benchmark is an analysis reference, not a fill price guaranteed by the venue.
Use the linear example from the ledger: entry midpoint $64,000, actual buy $64,010, exit midpoint $65,000, actual sell $64,990, and 0.5 BTC. Reference-price P&L is 0.5 × ($65,000 − $64,000) = $500. The buy was $10 above its benchmark, an unfavorable difference of 0.5 × $10 = $5; the sell was $10 below its benchmark, another $5. Total execution drag is $10, so actual-fill price P&L is $500 − $5 − $5 = $490. Each $5 is the quantity-weighted difference for one side of the round trip.
The opening notional is 0.5 × $64,010 = $32,005; the closing notional is 0.5 × $64,990 = $32,495. At an assumed 0.05% taker rate, the fill fees are $32,005 × 0.0005 = $16.0025 and $32,495 × 0.0005 = $16.2475, totaling $32.25. Reconciling from reference-price P&L gives $500 − $10 − $32.25 = $457.75. Starting from actual-fill P&L gives $490 − $32.25 = $457.75. These are two equivalent paths; do not subtract the same execution drag twice.
This example chooses the midpoint immediately before the order, so a different benchmark, such as the best ask, would produce a different slippage figure. Bybit’s market-order slippage-tolerance guide describes a buy tolerance relative to Ask1 and a sell tolerance relative to Bid1; if the remaining quantity falls outside the permitted range, part may fill and the rest may be canceled. Tolerance is an order condition limiting the price, not a guarantee of a full fill or a waiver of fees.
Record time, direction, and sign in the funding ledger
If a linear contract’s venue rule defines notional as quantity × mark price and multiplies it by the funding rate, then 0.5 BTC at a $64,500 mark has notional of $32,250. A rate of 0.01% is 0.0001, so the absolute funding amount is $32,250 × 0.0001 = $3.225. Under the example convention that a long pays when the rate is positive, record −$3.225 in the account ledger. At the same time and notional, a short may receive the opposite amount under that venue’s rules. This sign convention is only the example; not every product labels funding the same way.
Bybit’s funding-fee calculation guide uses quantity times mark price as the linear contract value and contract quantity divided by mark price for an inverse contract, then applies the funding rate. Funding applies to the position open at that event; if the balance is insufficient, it may be deducted from isolated margin and can affect liquidation risk. Bybit also notes that opening or closing within a few seconds of a scheduled time can be affected by internal settlement processing. Do not decide event eligibility from a countdown alone; reconcile the Funding entry in the actual transaction history.
Coinbase’s page currently describes hourly funding but has announced the infrastructure change noted above. Instead of extrapolating cost as rate × holding time, sum the actual rate and valuation basis for each event. Rates can change event by event, and adding or removing one eligible event can change the total in a step. Pre-trade figures are scenarios; historical funding is established from the event log.
Do not treat reserved order cost as an actual debit
Bybit’s order-cost guide adds initial margin, estimated opening fee, and estimated closing fee to show the amount reserved when placing an order. For example, its 1 BTC buy at 50,000 USDT with 10× leverage uses a non-VIP taker rate of 0.055%: initial margin is 5,000 USDT, estimated opening fee is 27.50 USDT, and the example’s closing-fee buffer is 24.75 USDT, for an order cost of 5,052.25 USDT. The 5,000 is margin, not a loss expense, and 24.75 is a buffer for an estimated close fill.
If the actual position opens at 50,000 and closes at 52,000, the same rate produces an opening fee of 27.50 USDT and a closing fee of $52,000 × 0.00055 = $28.60. Because the close price and calculation basis changed, the reserved estimate of 24.75 need not equal the actual 28.60. If the order is canceled and no position opens, do not record the estimated round-trip cost as an actual trading fee. With a partial fill, costs are realized only on the filled quantity; the reserve for the rest may be released.
Reserved margin and realized P&L may appear in different categories on an account screen. To reconstruct realized P&L, do not subtract Order Cost from the order confirmation. Use fill-level trading fees, realized P&L on the closing execution, and funding debits or credits. Bybit’s realized-P&L FAQ notes that the close-fee buffer can differ from the final close fee and that unrealized P&L can differ from closed P&L because of trading and funding costs.
For inverse contracts, match reciprocal prices and settlement coin
For a USDT linear contract whose size is in BTC, long price P&L is BTC quantity × (exit price − entry price), generally in USDT. An inverse contract can quote contract size in USD notional while calculating P&L and fees in a settlement coin such as BTC. Under Bybit’s P&L formula, the basic BTCUSD long price P&L is USD contract quantity × (1/entry price − 1/exit price). Multiplying the price difference directly by the contract quantity would produce the wrong units.
For example, buy a BTCUSD inverse contract with $10,000 contract value at $50,000 and close it at $52,000. Price P&L is 10,000 × (1/50,000 − 1/52,000) = 0.0076923077 BTC. At the exit price this is about 0.0076923077 × $52,000 = $400, but the realized settlement amount is BTC. Its later dollar equivalent can change unless the conversion time and benchmark are also specified.
Using an illustrative non-VIP taker rate of 0.055%, the entry value is $10,000/$50,000 = 0.2 BTC; the fee is 0.2 × 0.00055 = 0.00011 BTC. At exit, $10,000/$52,000 = 0.1923077 BTC, and the fee is about 0.000105769 BTC. Total coin-denominated fees are about 0.000215769 BTC; converted at each fill price, each fee is $5.50, or $11 total. Converting both fees at one price produces a different reported dollar amount, so keep the original currency and conversion basis in the ledger.
Funding uses product-specific units too. In the inverse example, the $10,000 contract value at a $50,000 mark equals $10,000/$50,000 = 0.2 BTC. At a 0.01% funding rate, the amount is 0.2 × 0.0001 = 0.00002 BTC. That cannot be compared by placing it next to the $3.225 USDT from the linear example. First align settlement currency and conversion basis.
Split the ledger into four layers to trace differences
Keep (1) order reservations, (2) executions, (3) position P&L, and (4) cash movements separate. The first table records order ID, submitted quantity, leverage, reserved margin, and estimated close buffer. The second records fill ID, timestamp, quantity, price, maker/taker role, fee rate, and fee currency. The third records realized price P&L, each funding event’s sign and amount, and any borrowing interest attributable to the position. The fourth records deposits, withdrawals, collateral conversions, and conversion of fee-payment tokens—cash movements outside the trade itself.
For the linear example above, price P&L before fees and funding is $490. Subtracting $32.25 in round-trip fees and the $3.225 long funding payment gives net trading result of $454.525. Do not subtract the $5,000 margin temporarily reserved for the order as another expense. If a displayed Closed P&L already includes fees and funding, do not add or subtract those totals again; confirm the screen’s definition against the venue documentation and ledger entries.
Reconciliation helps locate small residual differences: check fee-currency conversions and their timestamps, display rounding, partial fills, quantity at funding events, average-entry-price updates, and realized price P&L. Saving only net P&L makes it hard to tell a calculation error from an execution difference. Conversely, retaining every fill without recording the benchmark and sign convention makes a slippage comparison impossible to reproduce.
A consistent reconciliation sequence is: calculate product-specific price P&L from all entry and exit fills; apply and sum fees by execution; add or subtract funding for each event; add only separate borrowing interest or settlement charges required by the product; then reconcile fee tokens and account-to-account transfers to cash balance. Calculate execution difference against the reference price in a separate analysis column, and do not deduct price effects already reflected in actual-fill P&L a second time.
Common questions
Q1Is the amount shown as order cost a fee?
Not necessarily. It may combine reserved margin and estimated opening or closing fees. Reconcile the actual costs from fills after execution.
Q2Should I subtract slippage again from actual-fill P&L?
No. P&L based on actual fill prices already reflects execution relative to a reference. Subtract a separate execution difference only when starting from reference-price P&L.
Q3Does funding always apply to every position?
No. Venues have different intervals and cutoffs. Check the product’s funding terms and whether the position was open at the event time.
Sources and further reading
Report an issue
We’ll prepare an email with this article link. Mark receives the report only after you send it
Quick check
Read the guide? Check yourself with 3 questions
Question 01
How does order cost differ from realized trading cost?
Choose an answer to see the explanation
Options glossary
Clear definitions of essential option terms, from calls, puts, and option chains to IV, Greeks, open interest, and max pain
Browse the options glossary