Post
Tracking stocks across multiple brokerage accounts in one place
Why merging balances from three brokers ends in a hand-built spreadsheet, where that spreadsheet quietly breaks, and what it takes to get currency, overlap, and real concentration right.
Once you have three accounts, most people end up in the same place. A spreadsheet.
One broker you've had for years, one you moved to for lower fees, one company account holding vested equity. Each app is accurate inside its own walls. No screen anywhere shows you the sum.
Where the spreadsheet stops working
A hand-built sheet does fine. For a few months. It breaks in four specific places.
Exports don't agree. One broker gives you CSV, one gives you a PDF, one only renders a table on screen. When one of them reorders a column, your sheet quietly computes the wrong number.
Currencies mix. You buy US stocks in dollars and live in another currency. Hard-code today's rate into the sheet and your cost basis gets recomputed at today's rate, inventing or erasing gains that never happened. Getting it right means every single transaction carries the rate from the day it happened.
The same ticker sits in more than one account. Ten shares of Apple at broker A and five at broker B is fifteen shares of exposure. Viewed per account, each slice looks small, so your concentration reads lower than it is.
The unit is the position, not the account. "I hold an S&P 500 ETF in two accounts, it already contains Nvidia, and I also hold Nvidia directly" is invisible no matter how neatly the accounts are organized.
The first two you can survive by being diligent. The last two you can't. They require redoing the math.
Record transactions, not accounts
The starting point is refusing to split the view by broker.
Opula has no concept of an account. It has transactions. "Bought 10 shares of Apple at $165 in March 2023" is one line, and which broker it happened at does not enter any calculation. Holdings are derived by summing transactions every time you ask. Apple split across two brokers comes back as one line for fifteen shares.
Currency gets converted twice. On the way in, at the rate on the transaction date, into a single internal currency. On the way out, into whatever currency you asked to see. Recomputing an old cost basis at today's rate is structurally impossible.
Recording happens in plain language. Read off what the app shows you, or paste a CSV.
"I have 10 shares of Apple at broker A, 5 at broker B, and 20 shares of a Nasdaq ETF."
What shows up once it's merged
The combined net worth is honestly just one number. The value is in what comes after it.
- Concentration — what share one position is of the whole, plus HHI and effective number of holdings. This is where "I own 20 names but it behaves like 4" becomes visible
- ETF overlap — where a directly held name is already inside a fund you own
- Correlation — 90-day pairwise correlation, so you can see whether the names you diversified into move together anyway
- Currency exposure — what percentage of your assets is a bet on one currency
None of these can be computed until the account boundaries are gone.
There's no automatic sync
Worth saying up front. Opula does not connect to your brokerage. You record things yourself.
You get something for that. You aren't limited to what happens to be syncable. Brokers outside the US, physical gold, a rental deposit, private company shares, all of it lands in the same net worth. That limitation is usually why the largest thing you own is missing from an auto-sync dashboard.
After the initial entry there isn't much upkeep. Prices refresh on their own, and you add a line only when you actually buy or sell.
The short version
The hard part of combining accounts was never the addition. It's currency, overlap, and the concentration the account boundaries were hiding. Which is exactly where the spreadsheet gives out.