Price Arbitrage Playbook
How to size a position, verify a spread is tradeable, and calculate profit on a convergence trade.
Position Size Is Per Leg, Not Total
This is the most common misunderstanding, and getting it wrong changes every number on the page. The Size field on the convergence page is the notional of ONE leg. Enter $40,000 and you open $40,000 long on one venue AND $40,000 short on the other — $80,000 of total turnover. The Profit Calculator says so explicitly under the table: "Sized at $40,000 per leg".
Where leverage fits in
Leverage does not change the spread you capture and does not change your profit in percentage terms. It changes only how much of your own capital is locked up and how far price can move before liquidation. $10,000 of margin at 4x gives $40,000 of notional on that leg — so a $40,000-per-leg trade needs $10,000 margin on each side, $20,000 of your own money in total.
The Tradeability Check (Do This First)
Below the Profit Calculator sit two numbers that decide whether a trade is viable at all: Breakeven move and Tradeability. Read them before anything else — they override how attractive the headline spread looks.
breakeven_move_% =
(round_trip_fees_usd + slippage_usd + funding_drag_usd)
/ size_usd * 100
tradeability = |current_spread_%| / breakeven_move_%Breakeven is how far the spread must compress just to cover costs. Tradeability is how many times the current spread exceeds that floor. The colour and label come from fixed thresholds:
| Tradeability | Label shown | What it means |
|---|---|---|
| 10x and above | comfortable opportunity | Costs are noise next to the spread. |
| 3x to 10x | acceptable margin | Workable. Confirm depth before sizing up. |
| 1x to 3x | marginal — barely covers costs | One bad fill turns this negative. |
| Below 1x | do not trade — spread below breakeven | Arithmetically a loss. Skip it. |
Size the Trade to the Book, Not the Other Way Round
Wide price spreads survive on thin markets — that is precisely why nobody has closed them. Thin markets cannot absorb large orders. A spread that looks excellent at $2,000 can be unprofitable at $40,000 on the very same pair, because slippage grows non-linearly as your order eats deeper into the book.
So set Size first and let the page recompute, instead of picking a pair and forcing your preferred size onto it:
- Enter a small size (say $2,000) and note the Tradeability.
- Raise the size stepwise and watch Tradeability fall as slippage grows.
- Your ceiling is the largest size that still keeps Tradeability comfortably above 3x.
- If even a small size cannot clear 1x, the pair is not tradeable at any size you care about — move on.
To skip the trial and error, use Size & Depth. It answers the capacity question directly — how much money a pair can actually absorb — by replaying the last hour of order-book snapshots rather than trusting one instant. It reports a median capacity as the headline and a conservative p25 (what fit in the worst moments of the window), because the same book can read $1.8M one second and $900k thirty seconds later. Note that page is built around funding-carry income, but its capacity and depth figures answer the same "will my size fit" question.
Mark Spread vs Entry Spread
The large headline figure is Current Spread (mark), computed from both venues mark prices, which sit mid-book. It is a reference number, not a price you can trade at. Entering crosses the bid-ask on both legs, so your real entry is always worse.
Underneath it is Entry Spread (order book): the same comparison walked through the live L2 books at your size — the long leg buys the ask, the short leg sells the bid, averaged over the levels your order consumes. That is the number to act on.
When the entry spread is missing
- "order book loading (~30s) — refresh to see it" — the book was just requested for this pair and the real figure appears on the next auto-refresh. Wait for it. If it never arrives, the venue has no active book for that leg and you cannot execute blind.
- "venue has no order book (AMM/RFQ)" — the venue prices without a public book, so an executable spread cannot be modeled honestly.
- "thin book — size does not fully fill" — your size exceeds available depth. Reduce it.
Also check the market median badge next to each leg. If a leg sits more than about 5% away from the cross-venue median, that venue likely has a stale oracle or lists a different instrument under the same ticker — the "spread" is then an artefact rather than an arbitrage. Beyond 8% we suppress the profit figures entirely and mark the pair untradeable.
Spreads We Refuse to Show
A large number is not automatically an opportunity, so several classes of spread are suppressed before they reach you. Knowing what gets filtered explains why the biggest figure you see is usually 1-2% rather than something spectacular.
- Split markets — the same asset quoted in two separate price clusters. Above 8% between the chosen legs we blank the spread and offer no trade direction. Typically a fresh listing whose venues have not converged yet: both prices are real, but nothing forces them together, so there is no convergence to capture.
- Dead legs — a venue holding positions but doing no trading. Judged on turnover, and on open interest for the venues that publish no volume at all, so an exchange that simply omits the field is not exempt.
- Denomination splits — 1000PEPE against plain PEPE and similar. Grouped by order of magnitude, and only the dominant group survives.
- Two-venue pairs that disagree by more than 50% — with fewer than three venues there is no median to reason against, so the spread is suppressed outright.
- Legs far from the cross-venue median — a stale oracle or a different instrument sharing a ticker.
How Profit Is Calculated
Every line of the Profit Calculator scales from your per-leg size. These are the exact formulas the page runs:
gross_profit_usd =
(current_spread_% - target_spread_%) / 100 * size_usd
round_trip_fees_usd =
2 * (long_taker_bps + short_taker_bps) / 10000 * size_usd
slippage_usd =
slippage_bps / 10000 * size_usd // walked from live books,
// entry + exit, both legs
funding_drag_usd =
(long_funding_apr - short_funding_apr)
* size_usd * (hold_hours / 8760)
net_potential_usd =
gross_profit_usd - round_trip_fees_usd
- slippage_usd - funding_drag_usdThe fee line carries a x2 because you pay taker on entry and again on exit, on both legs. Funding drag is small over a short hold and can be negative, meaning you earn funding while waiting for convergence — it is shown in green with a plus sign when that happens.
Three target scenarios are shown: full convergence to 0%, and partial compression to 0.5% and 1.0%. The funding-drag line assumes a one-hour hold, which is a fixed assumption in the calculator and is not linked to the hold-time estimate below it. If you plan to hold much longer, scale that line yourself.
Exit Target and Hold Time
The Hold time card estimates how long the spread historically took to compress. It scans the selected window for episodes when the spread was as wide as it is now, measures how long each took to fall back to its typical level, and reports the median plus a usual range.
The three honest branches
- Already converged — the spread is already near its typical level, most of the move has happened and little potential remains.
- Structural — most historical episodes at this width never converged at all. Do not trade it on a timer; take profit on actual compression or not at all.
- Not estimable — the spread has not been this wide before in this window. Widen the window to 7D or 30D and look again.
All of this is a backtest of past behaviour, not a forecast. Real timing can and does differ.
Execution Discipline and Checklist
Price arbitrage is less forgiving than funding arbitrage. In a funding trade a mediocre entry is repaid by carry over the following days. In a convergence trade lasting twenty minutes there is nothing to repay it with — the entry is the trade.
- Open both legs simultaneously and in one clip. Legging in destroys the edge — we have seen entries drift 0.31% apart while a position was built in pieces, which exceeded the entire spread being captured.
- Match notional exactly on both sides, or the position is not delta-neutral and you are carrying directional risk.
- Keep margin buffer on both venues. A spread can widen before it narrows, and a liquidation on one leg leaves you naked on the other.
- Re-read the entry spread immediately before sending orders — it drifts second to second and can flip within minutes.
- Prefer pairs where both venues have real order books. Without one, neither slippage nor the entry spread can be verified.
Pre-trade checklist
- Set Size first — every figure on the page scales from it, and it is per leg.
- Tradeability at least 3x, and no red "do not trade" label.
- Read Entry Spread (order book), not the mark headline.
- Confirm neither leg deviates far from the market median.
- Judge profit against the median exit target, not 0%.
- Check the spread is mean-reverting rather than structural.
- Take Net potential in dollars as the answer, treating it as an upper bound.