Importing Transactions

Use broker CSVs or manual entry without losing the warnings that matter for ACB accuracy.

What the import is trying to solve

The import flow is not just a bulk upload. It is the step where fragmented brokerage history becomes one structured ledger. That means the quality checks are part of the feature, not a nuisance around it.

How importing works

myCostBase supports broker CSV imports with a mapping and preview flow before rows are committed.

Supported broker mappings include Interactive Brokers (IBKR), Questrade, RBC Direct Investing, TD Direct Investing, Scotia iTrade, Wealthsimple, CIBC Investor’s Edge (beta), BMO InvestorLine (beta). See Supported Brokers for export and format notes. If your brokerage is not listed, you can still use manual entry for its transactions and for events the source file cannot express cleanly.

Warnings to resolve before trusting the ledger

The import should call out the common failure modes explicitly:

  • duplicate transactions;
  • unknown securities;
  • missing FX rates for USD trades;
  • transfers with missing original basis;
  • rows that partially validate while others need review.

The point is to avoid an all-or-nothing import while also refusing to silently absorb bad source data.

When manual entry is the better choice

Some events are easier to add manually even in a CSV-driven workflow. That is especially true for:

  • return of capital adjustments;
  • reinvested capital gain distributions;
  • manual ACB corrections with an explanation;
  • transfers where the receiving broker statement lost the original book value.

Those events still belong in the same ledger so later recalculations and exports stay coherent.

Common import questions

What triggers a duplicate transaction warning? The same security, date, quantity, and price appearing more than once in the imported rows, or a row matching a transaction already in the ledger from an earlier import. It is a flag to confirm, not an automatic rejection — some brokers legitimately split a single fill across multiple confirmation rows.

Why does a date or number format cause an import to fail? Broker exports vary in date format (MM/DD/YYYY versus DD/MM/YYYY) and in how thousands separators or negative values are written. The mapping and preview step is where this is caught — review the parsed preview values against the source file before committing, rather than assuming the defaults matched correctly.

What if my CSV is missing a column myCostBase expects, like currency or account? Map what the file has, then fill in the rest manually after import. A partial mapping is still useful — importing what the file has cleanly and completing the gaps by hand beats skipping the file entirely.

Historical depth

myCostBase is meant to support catch-up imports across long histories, not just current-year activity. If your first relevant purchase happened many years ago, the right approach is still to import or reconstruct from that first purchase forward so the pooled ACB trail remains complete.

After the import

Once your rows are loaded, the next step is not filing. The next step is review. Open the security ledgers that have warnings or complex history and confirm that the share count, ACB, and FX trail make sense.

Read Pooled ACB Across Brokerages and USD and FX Conversion for Capital Gains if you want to inspect the two most common sources of broker mismatch.