Importing Data
ShareCalc can import broker statements and its own CSV format. The import processes files in your browser on your computer: files are not uploaded to our servers.
Broker parsers understand particular export formats and transaction types, not every activity a broker may record. Always review the imported transactions and any import issues.
Go to Import in the sidebar and select Import New Data. On a new database, you can instead drop files or a folder onto the welcome panel.
- Leave File Format set to Auto-detect in most cases.
- Add one or more files, add a folder, or drag files and folders into the drop area.
- Remove any files you do not want to include, then select Import.
- If prompted, confirm a file's currency or assign its transactions to an account.
- Review the success message and any import issues.
- Open Assets and review newly created assets. Correct their details and, where necessary, remap assets within an import or merge duplicates.
Supported Formats
| Broker | Format |
|---|---|
| Interactive Brokers | Flex Query XML |
| Halifax Sharedealing | Saved HTML statement |
| Trading 212 | CSV |
| Charles Schwab | JSON |
| Robinhood | CSV |
| Hargreaves Lansdown | CSV |
| Tasty Trade | CSV |
| IG | CSV |
| interactive investor | CSV |
ShareCalc also accepts its own headered or positional CSV format. A headerless ShareCalc CSV cannot be auto-detected and must be selected as CSV manually.
See the broker-specific instructions for Interactive Brokers, Halifax Sharedealing, interactive investor, and the other supported brokers.
Transaction Support by Broker
| Interactive Brokers | Halifax | Hargreaves Lansdown | Tasty Trade | Robinhood | Trading 212 | Charles Schwab | IG | interactive investor | |
|---|---|---|---|---|---|---|---|---|---|
| Trades and options | |||||||||
| Buy | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Sell | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| No Gain/Loss Transfer | — | — | — | — | — | — | — | — | — |
| Option Exercise | ✓ | — | — | ✓ | — | — | ✓ | — | — |
| Cash Option Exercise | — | — | — | ✓ | — | — | — | — | — |
| Option Assignment | ✓ | — | — | ✓ | ✓ | — | ✓ | — | — |
| Cash Option Assignment | — | — | — | ✓ | — | — | — | — | — |
| Option Expiry | ✓ | — | — | ✓ | ✓ | — | ✓ | — | — |
| Income | |||||||||
| Dividend | ✓ | ✓ | — | — | ✓ | ✓ | ✓ | — | ✓ |
| Manufactured Dividend | ✓ | — | — | — | — | ✓ | — | — | — |
| Notional Dividend | — | — | — | — | — | — | — | — | — |
| Property Income Distribution | ✓ | — | — | — | — | — | — | — | — |
| Manufactured Property Income Distribution | ✓ | — | — | — | — | — | — | — | — |
| Interest | ✓ | ✓ | — | — | ✓ | ✓ | ✓ | — | ✓ |
| Manufactured Interest | ✓ | — | — | — | — | ✓ | — | — | — |
| Interest Paid | ✓ | — | — | — | — | — | — | — | — |
| Notional Interest | — | — | — | — | — | — | — | — | — |
| Cash, fees, and reorganisations | |||||||||
| Broker Interest | ✓ | — | ✓ | ✓ | ✓ | — | ✓ | — | ✓ |
| Broker Interest Paid | ✓ | — | ✓ | ✓ | — | — | ✓ | — | ✓ |
| Withdrawal | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | — | ✓ |
| Deposit | ✓ | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ |
| Fee | ✓ | ✓ | — | ✓ | — | — | ✓ | — | — |
| Fee Refund | ✓ | — | — | ✓ | — | — | — | — | — |
| Split | ✓ | — | — | — | — | — | — | ✓ | — |
| Reverse Split | ✓ | — | — | — | — | — | — | — | — |
| Bonus Issue | — | — | — | — | — | — | — | — | — |
| Capital Distribution | — | — | — | — | — | — | — | — | — |
| Spin Off | ✓ | — | — | — | — | — | — | — | — |
| Rights Take Up | — | — | — | — | — | — | — | — | — |
| Bond Maturity | ✓ | — | — | — | — | — | — | — | ✓ |
Transactions that cannot be processed are typically surfaced as a message so you can see that they were not handled.
The ShareCalc type Interest is income attributed to an asset, such as bond interest. Interest on the account's cash balance is Broker Interest.
ShareCalc CSV supports every transaction type in the table, subject to that type's required fields. Types with no broker-parser support can therefore be imported through a prepared ShareCalc CSV or entered manually.
This matrix is about whether a type can be produced, not whether every real-world instance is understood. Always check the broker-specific limitations, import messages, created assets, transactions, and balances.
Accounts and Routing
Broker-specific files are associated with their known broker. ShareCalc then uses any financial-institution account ID in the statement to find an existing account where possible.
If the destination is unambiguous, routing happens automatically. Otherwise, the wizard asks whether to use an existing account or create an account and broker. ShareCalc can therefore create the brokers and accounts needed by a first import; you do not have to create them beforehand.
ShareCalc CSV is broker-independent so the wizard will ask you to select an account to import the file into.
Dates and Time Zones
The destination broker's time zone controls timestamps that do not include an offset or time zone:
- A timestamp with an explicit offset or time zone, such as
2024-02-14 15:30 +00:00, always uses that offset or time zone, regardless of the broker's time zone. - A timestamp without an offset, such as
2024-02-14 15:30, is interpreted in the destination broker's time zone. - A date without a time is stored as a calendar date and is treated as the date for tax purposes.
Timestamps are converted to London time for tax processing, which may mean a different date than shown on your broker statement. A date without a time is simply treated as if it was 'London time'.
Duplicate Transactions and Overlapping Files
Wherever you can, import statements that do not overlap. Non-overlapping data needs no guesswork.
Overlaps are not always avoidable. ShareCalc searches every file in your import for exact duplicates, both across the files themselves and against transactions already in your data, and prompts you to choose how to deal with each one as part of the import.
It splits them into two groups: Duplicates with ID and Duplicates with no ID. A shared broker ID makes a genuine duplicate much more likely, so the two deserve different attention. You can apply a choice to a whole group at once, and still change any individual transaction within it.
The options are:
- Import All: import every copy of the duplicate.
- Import Deduped: end up with a single copy. ShareCalc imports one copy where you have none, and imports nothing where you already hold an identical transaction.
- Import None: skip every copy. Existing transactions are not affected and remain in your data.
Nothing is ever skipped without being shown to you first. Where ShareCalc cannot work out which copy corresponds to which, it does not ask. It imports everything and leaves a message, so no transaction is ever silently dropped. See example 6 below.
What counts as the same transaction
Two transactions are treated as the same only when every detail matches and they will be part of the same account. If anything differs, including if you have modified previously imported transactions, then both are considered different. Transactions with the same broker ID, but with different data are flagged in the import messages.
In other words, to be treated as the same transaction, two transactions must:
- Have the exact same data in every field
- Be in, or be destined for, the same ShareCalc account
Copies within a single file count too, but a file on its own is never asked about. See examples 4 and 6.
Examples
The examples below show what is already in ShareCalc ("Your data") and what is in the files you are importing.
1. Duplicate transactions across files and existing
(1) Your data 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(3) statement2.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
- Import None: Transactions (2) and (3) are skipped.
- Import Deduped: Transactions (2) and (3) are skipped. They already exist as (1).
- Import All: Transactions (2) and (3) are imported.
In all cases, transaction (1) is untouched and remains in your data in addition to what happens as a result of your selection.
2. Duplicate transactions without existing
(1) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement2.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
- Import None: Transactions (1) and (2) are skipped.
- Import Deduped: One of transactions (1) and (2) is imported, the other is skipped.
- Import All: Transactions (1) and (2) are imported.
3. Duplicate transaction of existing
(1) Your data 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
- Import None: Transaction (2) is skipped.
- Import Deduped: Transaction (2) is skipped (it already exists).
- Import All: Transaction (2) is imported.
4. Duplicate in the same file, with nothing to compare it against
(1) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
Nothing happens: both are imported and you are not asked. A file with nothing to compare it against is taken at its word: if it lists the dividend twice, you were paid twice. This is also why the same broker ID appearing twice in one file is not treated as a conflict; a broker reusing a reference across two rows is normal.
This only holds while the file stands alone. Once a matching transaction exists elsewhere, either in your data or in another file in the same import, those two rows are back in play. See example 6.
5. Same broker ID, but different data
(1) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement2.csv 3 Jun 2021 Dividend Apple Inc £95.00 (broker ID D123)
Not duplicates: the ID matches but the amount does not, and every field has to match. Both are imported, and ShareCalc adds a message to each file saying what that file contributed and what contradicts it, so you can judge whether one supersedes the other. An amended statement, or a transaction you edited after importing it, looks exactly like this.
6. More copies than can be paired up
(1) Your data 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(2) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
(3) statement.csv 3 Jun 2021 Dividend Apple Inc £86.06 (broker ID D123)
You are not asked, and all three are kept. Deduplicating means matching copies up one for one, and here there is no way to say which of (2) and (3) is the one you already hold, or whether the statement is telling you the dividend was paid twice and you are simply missing one. ShareCalc will not guess, and it will not drop a transaction you might need, so it imports everything and adds a message to each file involved, saying how many copies that file contributed and where the rest are.
The same applies from the other direction: two copies already in your data against one in a file, or copies spread unevenly across two files. Check these after importing and delete any you did not want.
Duplicate files
ShareCalc separately warns when a selected file has exactly the same content as a previously imported file. This file-level warning does not determine how individual transactions will be handled. Review the warning and the transaction-level results before continuing.
Reviewing an Import
An import may succeed and still report issues. After every import:
- Read the Import Issues dialog. You can reopen stored per-file messages from the import history.
- Open Assets and complete or correct new and unclassified assets, including their types, tax countries, and distribution types.
- Inspect unusual or skipped activity in Transactions and add or correct anything the parser could not represent.
- Compare Balances with the broker's statement. Differences commonly indicate missing history, duplicated imports, or an incorrectly classified event.
- Run the calculation in Tax and resolve any remaining errors or warnings.
The Import page records the files included in each import, their detected formats, transaction counts, date ranges, account mappings, and messages. Deleting an import removes the transactions belonging to it, but it does not affect any assets imported from it.
Troubleshooting
A file is not recognised
Confirm that it is the broker export described in the relevant guide. If it is a headerless ShareCalc CSV, select CSV manually. Do not force a broker format merely because the filename extension matches.
The parser reports missing columns
Download a fresh export with the expected report type and fields. Editing a broker CSV in spreadsheet software can change dates, currency symbols, encodings, and numeric precision.
Rows were skipped
Open the import messages for the affected file. Unknown broker activity is deliberately skipped rather than guessed. Add the missing transaction manually or convert it to ShareCalc CSV after confirming its correct tax treatment.
Dates appear on the wrong day
Check the time zone on the destination broker. This matters for timestamps without an explicit UTC offset; it does not affect date-only rows.
Duplicate assets are created
If the importer cannot unambiguously map an asset to an existing asset, then it will create a second asset that will look similar to the existing one. If they are, in fact, the same asset, then you can merge the new asset into the existing one manually.