Tracking Investments Without a Brokerage Connection
How to set up a portfolio in Luum without connecting a brokerage, populate it from a CSV, and keep it current.
Not ready to connect a brokerage, or using a broker that isn't supported? You can create a portfolio that has no connection and populate it from a CSV. This guide explains how.
One thing to know before you start: there is no screen for typing holdings in one at a time. Everything below goes through a CSV upload. That is a real constraint rather than a missing button, the numbers Luum computes (ACB across partial sales, money-weighted return, realized gains) depend on a complete and correctly ordered transaction history, and a form that lets you add a position without one produces figures that look right and are not.
Creating the portfolio
- In the sidebar, click Portfolios, then New portfolio.
- Give it a name (for example "Questrade TFSA") and select the account type, TFSA, RRSP, FHSA, RESP or non-registered. Set this correctly now: tax treatment follows the account type on every holding inside it, and it cannot be inferred later from the data.
- Create it. The portfolio is empty until you upload something.
Getting a CSV
Two routes, and the first is much easier if it is open to you:
- Export from your broker. Nearly every Canadian brokerage will export either a holdings list or a transaction history. Use the transaction history if both are offered. See the next section for why.
- Build one yourself, in a spreadsheet. The upload step previews what it parsed before anything is saved, so a mis-shaped file costs you a retry, not a corrupted portfolio.
Uploading
- Go to Upload, or use the upload action on the portfolio itself, which preselects the destination. Check the destination portfolio before confirming, a holdings upload replaces the positions in whichever portfolio it lands on.
- Choose whether the file is holdings or transactions, and select your broker.
- Review the preview. A transaction import will ask you about anything ambiguous, duplicate rows it found, and the date convention if the file's dates are readable both ways.
- Confirm.
Holdings or transactions: this decision matters
A holdings upload is a snapshot: symbol, quantity, average cost. It gives you allocation, drift against your targets, and current value. It replaces the positions in that portfolio, so it is a picture of today rather than something you add to.
A transactions upload is the history: every buy, sell and dividend with its date. It is what ACB, realized gains and money-weighted return are computed from. Without it, Luum has no way to know what you paid for the shares you sold in March.
If you care about the tax numbers, upload transactions. A portfolio built only from holdings will show you what you own and stay quiet about cost basis, which is the honest outcome. It is not going to guess.
Keeping it current
A portfolio with no connection does not sync. Market prices for your holdings still refresh on their own; what goes stale is quantities and any trade you have made since the last upload.
Keeping it current means uploading again. For a transactions file, export the new period from your broker and upload it, the preview flags rows it has already seen, so an overlapping export is safe. For a holdings file, a fresh upload replaces the old snapshot.
What you give up against a connected brokerage
- Nothing arrives on its own. New trades appear when you upload them.
- Dividends are only counted if they are in the file. A cash dividend that never reaches Luum is missing from your total return.
- Contribution-room tracking is only as good as what you uploaded. For registered accounts, the figures follow your transactions.
- A holding Luum cannot match to a market instrument sits at book value and never moves. Check the preview for anything unmatched.
Connecting a brokerage later
If your broker becomes supported, or you decide to connect one, create a new connected portfolio. There is no automated migration from an unconnected portfolio to a brokerage connection, and the two would otherwise hold the same positions twice.