If your trades aren't with CommSec, you can still import them in one go. By the end of this guide your broker's CSV will be loaded, its columns matched to SavvyPortfolio's fields, and your transactions in. Allow about two minutes the first time.
You need a portfolio to import into, which setting up your first portfolio covers, and a transaction export from your broker. Stake, SelfWealth, NABtrade and CMC Markets all offer one, and so does almost every other platform.
This is the same wizard as the CommSec import with one extra step in the middle. Because the app can't assume your column names, a Mapping step appears where you tell it which column holds the date, which holds the quantity, and so on. Most of that is done for you.
Step 1 — Choose "Other Broker"
Open Import and you land on the Source step of the Import Transactions card. Two radio options: CommSec, selected by default, and Other Broker beneath it, described as "Stake, SelfWealth, NABtrade, CMC Markets, or any CSV".
Click Other Broker. Watch the step indicator at the top: it grows from Source → Upload → Preview → Import to Source → Upload → Mapping → Preview → Import.
That new Mapping step is the whole difference between the two paths. Don't skip this choice and load a non-CommSec file on the CommSec path, because auto-detection expects CommSec's exact headers and your columns will not line up.
Step 2 — Upload your broker's CSV
The Upload step is the same dashed dropzone as the CommSec path, reading "Drop your CSV file here or click to browse" with "Any broker CSV with transaction data" under it. Drag your export in, or click the zone to browse for it. There's no file chip and nothing to confirm: the moment you pick the file, SavvyPortfolio reads it and moves you straight on to Mapping. The file used in this guide is SelfWealth_Trades.csv.
Upload the file exactly as your broker gave it to you. There's no need to rename columns, reorder them, or delete the ones SavvyPortfolio doesn't use, because that's what the next step is for. If you have several exports, for different date ranges or different accounts, import them one at a time rather than pasting them into a single sheet.
The footer keeps Back, which returns you to the Source step, alongside a Sample CSV download if you want to see the shape of a file that imports cleanly. A Start Over link sits above the dropzone as well, so a wrong file is never more than a click or two from being replaced.
Step 3 — Let it map your columns
The Mapping step opens with the instruction "Review and adjust the column mapping below. Required fields are marked with *." Under it is a three-column grid: CSV Column, Sample Data and Maps To.
Read it left to right, one row at a time. CSV Column is your broker's header. Sample Data is a real value pulled from your file, which is the fastest way to tell two similar columns apart. Maps To is the SavvyPortfolio field it will become.
Above the grid sits a line reading "Detection method:" with a single badge next to it. In the clip it reads Auto-Detected: SavvyPortfolio has matched your headers and sample values against the fields it knows and filled in most of the grid before you arrived. The mapping is there the moment the step opens. Signed in, a second pass refines that first guess in the background — you may see a brief "AI is refining column detection..." note and the badge settle on AI-Powered — and you can read and change the grid while it runs.
Step 4 — Fix anything it missed
Now check the rows. Any field marked with an asterisk is required, so those are the ones to confirm first. A column auto-detection couldn't place reads — Ignore — in its Maps To cell: click it and choose the right field from the list.
In the clip that column is Activity, with Buy Trade as its sample value. Everything else was placed for you — Trade Date to Date *, Code to Symbol *, Units to Quantity *, Average Price to Price * — so Activity is the only row to touch. One click on its Maps To, one on Type *, and that's the fix.
Watch the bar under the grid as you do it. While a required field is unmapped the bar is amber and names what's missing — in the clip, "Missing required: Type" — with Next greyed out. The moment every required field has a home it turns green and reads "All required fields mapped", and Next comes alive. Until it does, the import can't proceed, which is a feature rather than an obstacle, because a missing date column would quietly break your holding periods and your CGT discount eligibility later.
One quirk to know about that list: a field another column already holds is greyed out with (used) after its name, Date * (used) for instance. So you can't hand a field from one column to another in a single click. Set the column holding it wrongly to — Ignore — first, then pick the field on the column that should have it.
In practice auto-detection does most of the work and you correct one column at most.
Step 5 — Preview, then import
The preview table arrives next — headed Preview (5 of 5) in the clip — showing your rows the way SavvyPortfolio has understood them, in four columns: Type, Stock, Qty and Total. Check a couple against your broker's statement: right ticker, right quantity, right total. This is the last look before anything is saved.
Then click the import button, which counts your rows back to you: here it reads Import 5 Transactions. The preview gives way to the green "Import Successful" panel reading "Successfully imported 5 transactions", with Import More underneath if you have a second file to add.
That's the same finish as the CommSec path. Once a transaction is in, SavvyPortfolio doesn't care which broker it came from: the same FIFO engine, the same 50% CGT discount rules and the same reports apply to all of them.
What you should see
Three things confirm the import worked. The green "All required fields mapped" bar before you left the Mapping step. The preview rows matching your statement. And the green "Import Successful" panel at the end, with Import More for your next file.
After that, open Overview. Your holdings table lists what you still own, with live prices, and the balance hero shows your portfolio value and unrealised gain. Unrealised gains are a market figure, not a tax figure. Nothing is taxable until you sell, and when you do, have a registered tax agent review the CGT numbers before they go in your return.
Common gotchas
- Required fields carry an asterisk. Next stays disabled until the bar under the grid turns green and reads "All required fields mapped", so treat that bar as the gate.
- Sample Data is how you tell columns apart. Brokers often ship both a trade date and a settlement date. Map the trade date, since that's the date that drives your holding period and CGT discount eligibility.
- Don't load a non-CommSec file on the CommSec path. Auto-detection is built for CommSec's headers. Choose Other Broker and let the Mapping step do its job.
- The free plan is 1 portfolio and 10 holdings. More than ten different tickers across your files needs Pro. Unlimited portfolios and holdings, CGT CSV export and the ATO-ready PDF are all Pro features.
- Trades only. A transaction export is buys and sells. Dividends and their franking credits are recorded separately on the holding page, and automatic dividend imports are Pro.
What's next
Your CSV won't cover everything. Off-market purchases, an inherited parcel, a trade from a broker you've since left, or a plain correction all have to go in by hand, and how to add a share transaction by hand walks through the five fields and the live Total Cost strip that does the arithmetic as you type. If you're not sure where your broker keeps its export, the CommSec export guide has a section at the end covering Stake, SelfWealth and NABtrade too.
Calculate Your CGT Automatically
Import your broker CSV and let SavvyPortfolio handle the FIFO calculations, 50% discount, and ATO-ready reports.