How Do You Calculate Crypto Profit?

Short answer: Profit = net proceeds − investment; return = profit ÷ investment × 100%. With fees, the rate is charged once on the buy and once on the sell.

Three steps to the number

Step 1 — how many coins you actually receive: coins = investment × (1 − fee rate) ÷ buy price. The buy fee is normally deducted from the fill, so you receive slightly less than "investment ÷ buy price".

Step 2 — how much you get back: net proceeds = coins × sell price × (1 − fee rate). The sell side is charged again.

Step 3 — subtract: profit = net proceeds − investment, and return = profit ÷ investment × 100%.

Formulas

Coins heldinvestment × (1 − fee rate) ÷ buy price
Net proceedscoins × sell price × (1 − fee rate)
Profitnet proceeds − investment
Returnprofit ÷ investment × 100%

Worked example (recompute it yourself)

Invest 1,000 USDT, buy at 30,000 USDT, sell at 36,000 USDT, 0.1% fee on both sides:

Coins = 1,000 × 0.999 ÷ 30,000 = 0.0333. Gross proceeds = 0.0333 × 36,000 = 1,198.80 USDT. After the 0.1% sell fee, net proceeds = 1,197.60 USDT.

So profit = 1,197.60 − 1,000 = 197.60 USDT, a return of +19.76%.

Ignoring fees entirely, the same trade would show +20%. The 0.24 percentage-point gap is exactly the two 0.1% charges.

Notes

Fees are charged on both sides; the more you trade and the higher your rate, the more they erode the result.

Results use the prices you enter. Real fills are affected by slippage, order-book depth and unfilled limit orders.

To see unrealised P&L only, set the sell price to the current price.

FAQ

Why is my return different from the price change?

Because fees reduce the coins you receive on the buy and the cash you get on the sell. In the example the price rose 20% while the realised return was 19.76%.

Why is the buy fee applied to the coin amount?

Most exchanges deduct the buy fee directly from the fill, so the coins credited are fewer than "investment ÷ buy price".

Can I use it with only a current price?

Yes. Set the sell price to the current price to get unrealised P&L, or enter both actual fill prices for realised P&L.