RavingDesk Crypto Spot Round-Trip Cost Planner
What a crypto spot buy-and-sell really costs: spread, slippage, fees, withdrawal and break-even.
Try an example: Fictional BTC round trip: 1 BTC, 60,000 → 62,000, 10 bps spread, 0.1 % fees · Small ETH trade with a withdrawal fee in between · Flat price: what the round trip costs if nothing moves
How it works
Estimates a hypothetical spot round trip from the mid prices and cost assumptions you enter: buy fill (ask plus slippage), sell fill (bid minus slippage), trading fees on both sides and a network/withdrawal fee in base units, with net profit or loss, return on cost and the exit mid price needed to break even. Nothing is fetched and no order is sent. It is the crypto spot lab of the RavingDesk workspace.
- Buy fill = entry mid × (1 + spread ÷ 2) × (1 + slippage); sell fill = exit mid × (1 − spread ÷ 2) × (1 − slippage). Spread and slippage are in basis points (1 bp = 0.01 %).
- Entry cost = quantity × buy fill × (1 + entry fee %); the network fee is deducted in base units, then the remainder is sold: net proceeds = remaining quantity × sell fill × (1 − exit fee %).
- Break-even exit mid = entry cost ÷ (remaining quantity × (1 − spread ÷ 2) × (1 − slippage) × (1 − exit fee %)). The cost of the round trip is the loss if the mid price does not move.
- Assumes a full fill at one price per side, fees charged in the quote asset, no market impact beyond the slippage you enter, no taxes and no fees in a third asset.
Paper-trading calculation for education and planning only. It is not investment, tax or legal advice, uses only the numbers you enter and never places an order. Crypto prices and fees change quickly; use the rates of your own venue.
Part of RavingDesk
-
RavingDesk Paper trading workspace
Practise trading on paper: orders, ledger, risk, exposure and journal. No real money.
Related tools
- RavingDesk Ethereum EIP-1559 Gas Fee Estimator – Estimate an Ethereum transaction fee from gas used, base fee, max fee and priority tip (EIP-1559).
- Break-even Explorer – When does an investment pay for itself? Payback, NPV and IRR for solar, EVs, heat pumps…
- Gas Fee Intelligence Explorer – Live gas on 7 EVM chains: base fee, tips, trend and the USD cost of transfers and swaps.
How to use the RavingDesk Crypto Spot Round-Trip Cost Planner
Estimate what a crypto spot buy-and-sell really costs after spread, slippage, trading fees and a withdrawal fee, and find the break-even exit price.
What it is for
A coin that rises 1 % does not make you 1 % richer. You buy above the mid price (the ask), sell below it (the bid), lose a little more to slippage, pay a trading fee on both sides and maybe a network fee to move the coins. This planner adds all of that up for one hypothetical round trip.
You enter the base and quote asset, the quantity, the mid price when you buy and when you sell, the full bid–ask spread and slippage in basis points (1 bp = 0.01 %), the entry and exit fee in percent and a network or withdrawal fee in base units. You get both fill prices, the entry cost, the net proceeds, the profit or loss, the cost of the round trip if the price does not move, and the exit mid price you need to break even.
It is the crypto spot lab of the RavingDesk workspace. All prices and rates are your assumptions; nothing is fetched and no order is sent.
Worked example
You buy 0.05 BTC at a mid of 58,000 EUR and plan to sell at 59,000 EUR, a 1.7 % rise. The exchange charges 0.4 % per trade, the spread is 15 bps, you expect 10 bps of slippage per side, and you withdraw to another exchange for 0.0002 BTC.
| Result | Value |
|---|---|
| Buy fill (ask + slippage) | 58,101.54 EUR |
| Entry cost incl. fee | 2,916.70 EUR |
| BTC left after the network fee | 0.0498 BTC |
| Sell fill (bid − slippage) | 58,896.79 EUR |
| Net proceeds | 2,921.33 EUR |
| Estimated P&L | +4.63 EUR (+0.16 %) |
| Break-even exit mid | 58,906.48 EUR (+1.563 %) |
| Cost of the round trip at a flat price | 44.88 EUR |
A 1,000 EUR rise in the BTC price leaves you with less than 5 EUR. The break-even move is 1.56 %, so almost the whole price move is eaten by costs.
How to read the result
- Break-even exit mid is the number to remember: below it the trade loses money even though the price went up.
- Cost of the round trip at a flat price is the fixed price of entering and leaving — here 44.88 EUR, about 1.5 % of the position.
- Return on cost relates the P&L to everything you paid on entry, including the fee.
- A warning appears when the price rises in your scenario but costs still turn it into a loss.
Tips and common mistakes
- The spread field is the full spread; the planner applies half of it on each side.
- Enter the withdrawal fee in coins, not in money. It reduces the quantity you can sell.
- Use the fee tier you actually pay; maker and taker fees often differ.
- Large orders move the price more than small ones — raise slippage for thin markets.
- Taxes and fees charged in a third asset are not included.
FAQ
Why is my buy price higher than the mid price?
You buy at the ask, which is half the spread above the mid, plus the slippage you entered.
What does the flat-price example show?
The Flat price example buys and sells 20 SOL at 150: the round trip loses 43.49 USD from costs alone.
Does it fetch live prices or fees?
No. Prices and fee rates change quickly; enter the ones of your own venue.
Is the withdrawal fee always charged?
Only if you move the coins. Set it to 0 if you buy and sell on the same exchange.
Guide last updated:
For scripts and AI agents
- JSON API:
POST https://ravingdeskcryptoroundtrip.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://ravingdeskcryptoroundtrip.usefulweb.site/mcp· tool nameravingdesk_crypto_round_trip
Example request
curl -s -X POST https://ravingdeskcryptoroundtrip.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"base":"BTC","quote":"USDT","quantity":1,"entryMid":60000,"exitMid":62000,"spreadBps":10,"slippageBps":5,"entryFeePercent":0.1,"exitFeePercent":0.1,"networkBase":0}'