Swap is a spread business, and most brokers run it at a loss
The client swap table is reviewed when someone remembers. The wholesale tom-next rate moves every night. Everything expensive about overnight financing follows from that one mismatch.
Swap is the only line on a broker’s P&L that is charged from a table and paid at a market rate. The table is reviewed when someone remembers. The market rate moves every night. Everything that follows is a consequence of that mismatch, and on a book with meaningful overnight exposure it is usually the largest unmanaged position a broker holds.
Where the number comes from
A spot FX position settles two business days forward. Holding it past the close means the value date has to move forward by one day, and that roll is priced from the interest rate differential between the two currencies in the pair. This is the tom-next rate, and it is the wholesale cost your liquidity provider charges you.
points = spot × [ (1 + r_quote × 1/360) / (1 + r_base × 1/360) − 1 ]Two structural facts follow from settlement conventions rather than from anyone’s pricing decision. A position held through Wednesday night rolls the value date from Friday to Monday, so three days of carry are charged in one night. And when the differential is wide enough, the receiving side of the pair is genuinely owed money, which is a liability your table has to be willing to pay.
- 01Position open at 21:00 UTCvalue date T+2
- 02Provider charges tom-nextwholesale, moves nightly
- 03Broker applies its own tableclient swap, moves rarely
- 04Difference is broker revenueor broker loss
- 05Wednesday multiplies by threeweekend value date roll
Why the table drifts
Client swap tables are published because clients need to know the cost before they hold a position. Publishing implies stability, stability implies infrequent revision, and infrequent revision against a nightly wholesale rate is a drift. The drift is not symmetric, and that is what makes it expensive rather than merely imprecise.
- Rate regime changes. When a central bank moves, the differential on every pair involving that currency reprices immediately. A table set before the move charges the old differential until someone updates it.
- One-sided exposure. If your book is net long a high-yield currency, the side you pay out on is the side your clients are concentrated in. A symmetric markup on a table applied to an asymmetric book is a net cost.
- Provider markup changes. The tom-next you are charged already contains your provider’s spread over the interbank rate, and that spread is renegotiated without a corresponding change to what you charge on.
- Symbol coverage. Exotic and minor pairs are added to the platform long before they are added to whatever review process exists for the table.
The reconciliation that matters is not swap charged against swap expected. It is swap charged against swap paid, per symbol, per night.
The reconciliation nobody runs
Both sides of this exist in systems you already have. The platform knows what it debited and credited every account at rollover, by symbol and by direction. The provider statement knows what you were charged for the net position it was holding for you. Almost no broker joins them nightly, because the two live in different systems with different symbol naming and different timestamps.
What the join needs
- Per symbol, per direction: the sum of client swap charged, split long and short, because a net figure cancels exactly the asymmetry you are looking for.
- The net position the provider actually rolled for you, which is not the sum of your client positions if any part of the book is internalised.
- The Wednesday flag, because including triple swap nights in a daily average makes every weekly series unreadable.
A broker charges a fixed short swap on a pair where the base currency rate has risen 75 basis points since the table was last set. The wholesale cost of holding the position has moved with it; the client charge has not.
| At table set | Three months later | |
|---|---|---|
| Rate differential | 1.25% | 2.00% |
| Wholesale cost, per lot per night | $3.40 | $5.45 |
| Charged to client, per lot per night | $4.10 | $4.10 |
| Margin per lot per night | +$0.70 | −$1.35 |
| Average overnight lots on this symbol | 850 | 850 |
| Monthly effect, 30 nights | +$17,850 | −$34,425 |
Illustrative figures, chosen to show the mechanism. Your own numbers will differ.
Running it as a position
Swap is a spread business. It has a cost of goods, a price, and a margin, and like any spread business it needs the margin watched rather than the revenue. Three habits cover most of it.
Watch the margin, not the line
Swap revenue rising is not good news on its own. It rises when overnight volume rises, which can happen while the per lot margin is going negative. The series to alert on is margin per lot per symbol, signed, with long and short kept apart.
Tie the review to the rate, not the calendar
A quarterly table review will always lag a central bank. The trigger should be a change in the underlying differential beyond a threshold you set, which is a condition a system can watch continuously and a human cannot.
Separate the Wednesday
Triple swap nights are three times the exposure to whatever the drift currently is, so they are where an unnoticed inversion does most of its damage in a single night. They deserve their own series and their own alert, not a smoothed average.
None of this requires a model. It requires the platform’s rollover journal and the provider’s swap statement to sit in the same place, symbol names mapped, every night, and to stay mapped when a symbol is added. That is the work, and it is the reason the reconciliation does not get run.