What does it cost to hold an FX position overnight?
This is the cost that does the quiet damage. The spread is visible once, at the moment you open. The overnight roll is charged every day you hold, on the whole notional, in an amount small enough to ignore and frequent enough to matter.
And now you already know where it comes from. Unit 1: a spot position has a value date two days out. Unit 2: moving a value date forward is an FX swap, priced at the interest differential. The overnight charge on a retail account is a tom-next FX swap, plus the broker's markup. It is not an invention of the retail industry — it is the wholesale plumbing, passed through with a margin on top.
The formula
For a long position in the base currency, you effectively hold the base currency and owe the quote currency, so:
Daily roll = Notional (in quote currency) × (r_base − r_quote − markup) ÷ 360
A negative answer is a charge; a positive answer is a credit. Sell the pair and the sign of the differential flips, but the markup always works against you — it is subtracted on both sides. Day-count conventions differ (ACT/360 for most currencies, ACT/365 for sterling and a few others), and some firms quote the roll directly in points per lot rather than as a rate. Read the specific contract terms.
Worked — the negative carry case
One lot of EUR/USD at 1.0800, notional USD 108,000, with EUR at 2.50% and USD at 4.50%. You are long EUR/USD: you hold euros earning 2.50% and owe dollars costing 4.50%.
- Raw carry: 2.50% − 4.50% = −2.00% per year
- Check it in cash: EUR 100,000 × 2.50% = EUR 2,500 ≈ USD 2,700 earned; USD 108,000 × 4.50% = USD 4,860 owed. Net −USD 2,160, which is exactly 2.00% of 108,000.
- Add a broker markup of 1.00%: all-in −3.00%
- Daily: 108,000 × 0.03 ÷ 360 = USD 9.00
Cross-check in points, since the wholesale market quotes it that way: tom-next points ≈ 1.0800 × 0.03 ÷ 360 = 0.00009 = 0.9 pips, and 0.9 × USD 10 per pip = USD 9.00. Same number, two routes.
What USD 9 a day becomes
| Held for | Roll paid | As % of USD 3,600 margin (30:1) | Pips of favourable move needed to offset |
|---|---|---|---|
| 1 day | 9 | 0.25% | 0.9 |
| 30 days | 270 | 7.5% | 27 |
| 90 days | 810 | 22.5% | 81 |
| 365 days | 3,285 | 91% | 329 |
Read the last row twice. At the maximum retail leverage for a major pair, negative carry alone consumes roughly 90% of the deposit over a year, before spread, before commission, before a single adverse tick.
There is a clean identity behind it:
Annual roll as a share of margin = Leverage × the all-in differential
30 × 3.00% = 90%. The same leverage that multiplies the gain multiplies the carrying cost against the same deposit, exactly and unavoidably.
The other side, and the wedge
Sell the same pair and the differential flips in your favour, but the markup does not:
- Short EUR/USD: +2.00% − 1.00% markup = +1.00%, a credit of USD 3.00 a day
Long pays USD 9, short receives USD 3. On a matched book the firm keeps the 2.00% wedge — the markup, twice. And when the differential is smaller than the markup, both sides pay: with a 0.50% differential and a 1.00% markup, the long pays 1.50% and the short pays 0.50%. Both sides paying is entirely normal, and it surprises people every rate cycle.
Triple days and holidays
From Unit 1: on Wednesday the roll crosses the weekend, so most pairs book three days of carry in one evening — USD 27 in this example. For USD/CAD, which settles T+1, that day is Thursday. National holidays add days on the same logic.
One caution about carry
A credit is not free money. Positive carry of 1.00% a year on this position is USD 3 a day; the pair regularly moves 60 pips — USD 600 — in a day. Carry is a slow trickle sitting under a fast variable, and currencies have historically moved far enough, fast enough, to erase years of it in a session. What drives those moves belongs to the "What Moves Currencies" course. What they do to a leveraged position is Unit 4.
Try it now
- Take EUR/USD as your pair. The latest overnight reference rate for each currency is below: SOFR for the dollar, €STR for the euro. Compute the raw differential for a long position.
- Add a 1.00% markup and compute the daily roll on one standard lot, then the annual figure as a percentage of margin at 30:1. Check it against the identity: leverage × all-in rate.
- Repeat with the rates from the first week of September 2023, below. The difference between the two annual numbers is what a monetary-policy cycle does to the cost of simply holding a position.