The first time I actually looked at my whole book in one place, I was mildly annoyed at myself. I had a long BTC perp on one venue, a short position on a Bitcoin miner in a brokerage account, and a small yes bet on a prediction contract that basically paid off if crypto went up. On paper these were three separate trades in three separate dashboards. In reality they were one directional view wearing three costumes, and I was carrying more of it than I would have set out to on purpose.
This is the quiet problem with running a single strategy across many venues. The trades come out of one queue, one idea, one signal. Then they land on a crypto exchange, a stock broker, an FX desk, and a prediction market, and each of those places shows you a tidy little position blotter that is technically correct and completely useless for the question you actually care about. Which is: how much am I really exposed to, and to what.
Why the per-venue view lies to you
Each venue is honest about its own corner. The crypto exchange knows your perp size and your margin there. The broker knows your share count. Nobody knows the total, because the total does not live anywhere. It has to be assembled.
And the assembly is where it gets interesting, because exposure does not add up cleanly across asset classes. A few ways the naive sum goes wrong:
- Different units. Contracts, shares, notional, and a binary payout that resolves to zero or one are not the same thing. You cannot add a perp size to a share count and get a number that means anything. Everything has to be converted to a common measure, and the honest one is dollar delta, roughly how many dollars you make or lose per one percent move in the underlying.
- Hidden correlation. Two positions that look independent can be the same bet. Long a semiconductor name and long an AI-heavy index fund is mostly one trade. Long ETH and long a basket of alts is mostly one trade. The venues will never tell you this because they only see their own side.
- Netting you did not mean to do. Sometimes the opposite happens. You are long something in one account and short a close cousin in another, and your true exposure is much smaller than either position implies. If you size the next trade off the gross, you end up underexposed and confused about why the book is not moving.
So the per-venue blotter is accurate and misleading at the same time, which is the worst combination, because it feels trustworthy.
Reconciling fills back into one book
The fix is not glamorous. You need a process that takes every fill from every venue and folds it into a single position record, keyed by what you are actually exposed to rather than where the trade happened to execute. The rough shape of it:
- Pull fills, not positions. Positions are a venue's summary and they drift. Fills are the ground truth. Ingest the raw executions, order id, side, size, price, fee, timestamp, and rebuild your position yourself. If your rebuilt number and the venue's reported position disagree, that gap is a signal, usually a missed fill, a funding payment, or a fee you forgot about.
- Map each instrument to an exposure, not a ticker. The perp, the miner stock, and the prediction contract all map, in different amounts, to a single underlying view on crypto. You decide the mapping. It is a judgment call and it should be, but it should be written down and consistent, not re-invented every time you look.
- Convert everything to dollar delta. Once every position speaks in dollars-per-move, you can add them. This is the number that tells you what a five percent down day does to your account across the whole book. It is almost never the number any single dashboard shows you.
- Group by risk factor and sum. Crypto beta, rates, a specific equity sector, a single event. When you group this way, the double-counted bets stack up and the accidental hedges cancel out, and you finally see the real position.
The reconciliation loop is the part people skip, and it is the part that saves you. A trade fires on one venue, and the confirmation gets dropped, or a partial fill comes back and your local record still thinks you are flat. The way you catch it is by comparing your rebuilt book against each venue's reported balance on a schedule and flagging any position where the two disagree by more than a small tolerance. This is one of the reasons we built the non-custodial execution layer in Blockcircle to report fills back into a single position and risk view rather than leaving them stranded per venue, because a fill you cannot see is a risk you are carrying blind.
Measuring risk against the whole thing
Once the book is unified, the risk questions get easier and slightly more uncomfortable, which is the correct outcome.
Total open risk stops being a per-venue margin number and becomes a single figure: if my worst correlated cluster moves against me by some plausible amount, what does the account do. You size the next trade against that, not against the free margin sitting on whichever venue happens to have room. Free margin on one exchange tells you what you are allowed to do. It says nothing about what you should do.
Correlation is where the real savings hide. When you cluster positions by shared factor instead of by venue, you often find that two or three trades you thought were diversifying are the same directional bet, and your actual concentration is higher than any single screen implied. The rule of thumb I use: before adding a position, ask which existing cluster it belongs to, and check whether that cluster is already carrying more than I would have sized on purpose. If it is, the new trade is not diversification, it is more of a bet I already made.
Margin deserves its own note. It lives per venue, so a book that looks perfectly hedged in aggregate can still get liquidated on one exchange because the losing leg is isolated there and the winning leg is somewhere that cannot post collateral to help. Netted risk and netted margin are different things. Track them separately, and keep a buffer on any venue holding a leg that could move hard on its own.
None of this requires exotic tooling. A spreadsheet that ingests fills, maps them to factors, converts to dollar delta, and sums by cluster will get you most of the way, and it will already be more honest than a dozen open browser tabs. The discipline is in doing the reconciliation on a schedule and trusting the aggregate over the individual screens when they disagree. The individual screens are not wrong. They are just each answering a smaller question than the one you are actually asking.