Knowing whether a trade was actually profitable sounds simple, but most crypto traders get it wrong. They look at the buy price and the sell price and call the difference their profit. In reality, exchange fees, gas costs, slippage, and withdrawal charges can eat into your gains or deepen your losses. Here is how to calculate your real crypto profit, step by step.
The Basic Profit Formula
At its simplest, profit is the difference between what you received from selling and what you spent to buy:
Profit = Sell Value - Buy Value
If you bought 0.1 ETH at $3,000 per ETH, your buy value is $300. If you later sold that 0.1 ETH at $4,000 per ETH, your sell value is $400. Your profit is $100. Simple enough, but this ignores every cost that reduced your actual return.
Accounting for Fees
Every crypto trade involves fees, and they come from multiple sources. To get your true profit, you need to subtract all of them:
Net Profit = (Sell Price x Quantity - Sell Fee) - (Buy Price x Quantity + Buy Fee) - Gas Fees
Here is a breakdown of the fees you need to track:
- Exchange trading fees. Most centralised exchanges charge between 0.1% and 0.6% per trade. This applies to both the buy and the sell. On a $1,000 trade with a 0.1% fee, you pay $1 each way, totalling $2.
- Gas fees (on-chain transactions). If you are trading on a decentralised exchange like Uniswap, you pay Ethereum gas fees for each transaction. These can range from $2 during quiet periods to $50 or more during network congestion.
- Spread and slippage. The difference between the quoted price and the price you actually get. On low-liquidity tokens, slippage can cost you 1–3% of the trade value.
- Withdrawal fees. If you moved crypto from an exchange to a wallet before selling elsewhere, those withdrawal fees are part of your cost basis.
Worked Example with Fees
Let us walk through a realistic trade. You buy 0.5 SOL at $140 on Coinbase, which charges a 0.6% taker fee. Two weeks later you sell at $180.
Buy side: 0.5 SOL x $140 = $70.00 investment. The 0.6% fee on $70 is $0.42. Total cost: $70.42.
Sell side: 0.5 SOL x $180 = $90.00 proceeds. The 0.6% fee on $90 is $0.54. Net proceeds: $89.46.
Net profit: $89.46 - $70.42 = $19.04. Without accounting for fees, you would have calculated $20.00. The fees reduced your profit by $0.96, which is 4.8% of your gains. On smaller trades or tighter margins, fees can make the difference between a profitable and losing trade.
Skip the manual math with our Profit Calculator — plug in your numbers and get instant results.
Calculating ROI Percentage
Knowing your dollar profit is useful, but ROI (Return on Investment) percentage lets you compare the efficiency of different trades regardless of size. The formula is:
ROI = (Net Profit / Total Cost) x 100
Using our example above: ROI = ($19.04 / $70.42) x 100 = 27.0%. This means for every dollar you invested (including fees), you earned 27 cents in return. ROI is the metric that lets you compare a $50 altcoin trade to a $10,000 Bitcoin trade on equal footing.
For annualised ROI, which accounts for how long you held the position, the formula adjusts for time:
Annualised ROI = ((1 + ROI) ^ (365 / days held) - 1) x 100
If you held the SOL position for 14 days with a 27% ROI, your annualised return would be approximately 26,400%. That number sounds dramatic, but it illustrates why short-term gains look inflated when annualised. It is most useful for comparing positions held over similar timeframes.
Tracking Profit Across Multiple Buys
Things get more complex when you have purchased the same asset at different prices over time. If you bought 0.1 BTC at $40,000 and another 0.1 BTC at $60,000, your total cost basis is $10,000 for 0.2 BTC, giving you an average cost of $50,000 per BTC.
When you sell part of your position, the method you use to determine which units you are selling matters for tax purposes and affects your calculated profit. FIFO (First In, First Out) assumes you sell the oldest units first, while LIFO (Last In, First Out) sells the newest. Each method produces a different profit figure and a different tax bill. See our crypto tax guide for a full breakdown of cost basis methods.
Why Manual Tracking Fails at Scale
If you make five trades per year, a spreadsheet works fine. But most active traders make dozens or hundreds of trades across multiple exchanges and wallets. Each trade has its own buy price, sell price, fees, and holding period. DeFi adds another layer with swap fees, bridge costs, and gas for every on-chain transaction.
The most common mistakes in manual tracking are forgetting to include gas fees, miscalculating the cost basis on partial sells, and losing track of transactions across multiple platforms. These errors compound over time and can lead to significant discrepancies when tax season arrives.
The solution is to calculate profit on each trade as it happens, not retroactively. Record the full cost (including all fees) at the time of purchase, and calculate net proceeds (after all fees) at the time of sale. This gives you an accurate running profit and loss that is ready for tax reporting without any scrambling.
Use our Profit Calculator to track each trade as you make it.