Import from a file

If you have a transaction file that doesn't fit any of our templates, don't worry! Capitally allows you to create your own template right in the app. This guide will walk you through the process.

Step 1: Open the FileCopy

Start by selecting the Transactions in a table template and opening your CSV or XLSX file there.

If your CSV file doesn't have a header on the first row, open the Data Options tab and set Skip rows until... to either the number of rows to skip or the text fragment that starts the header row. This could be "Date" if that's the first column's name in your CSV.

If your file is an Excel file, you can pick the right worksheet here. You can also change the file encoding if the local characters look off.

Step 2: Match Columns to PropertiesCopy

Next, you need to match columns from your file to transaction properties. In the Match data to properties tab, you'll see a list of columns in the table. For the relevant ones, you pick a transaction property. At the very least, you need to assign these:

  • Asset

  • Type

  • Date

  • Price or Value

  • Quantity

It's also good to have these as well:

  • Account

  • Currency (either Value & Fee Currency or separately)

If your table doesn't have one of these columns, you can add that property from the end of the list. You will be able to either use the same value for all transactions in the next step, or enter the values manually in the table.

See the Transaction Properties Reference for details about particular properties.

Step 3: Match Property ValuesCopy

Now, it's time to match values in the table to values that Capitally will understand. You can do this in the Match property values tab for all values that need to be matched. You can also do it directly in the table if you prefer.


Capitally will try to match assets to the ones you already have in the project or find them on the market. If the source column is not an ISIN number, we will ask you to confirm that we found correct assets. You can select other matches from the dropdown, search for another symbol or create a custom asset if needed.


When matching transaction types, you have several options:

  • Buy & Sell - you will need transacted Quantity and Price (or Value, which is Quantity * Price)

  • Transfer - when stock or money was transferred in (positive Quantity) or out (negative Quantity). Capitally doesn't have a great cash handling yet, so it's best to ignore cash deposits and withdrawals for simplicity for now.

  • Dividend - the Price of the dividend is how much money per share you received, and Value is the actual amount. It's best not to import dividends, as Capitally generates them automatically from market data and you will have duplicates

  • Interest & Rent - same as Dividend

  • Balance - updates just the Quantity for that day

  • Market Price Update - updates just the Market Price, without touching Quantity

  • Other - can be used for random income, expenses or fees. It's good to add a Note property for future reference

Market PriceCopy

It's possible to update an Asset's market price through import. This will set the market price for the specified date, overriding any "official" market price. It's great for importing manual prices in bulk, or making sure you have an exact close price.

Step 4: ReviewCopy

Take some time to review the data in the table. You can modify any value if necessary.

If you don't want to import a certain transaction - just uncheck the checkbox next to it. Some of the transactions can be already ignored - either because they're not supported, there's an error or they're already imported - you can check the reason by hovering on the icon above the checkbox.

Additionally, the rows can be sorted by clicking on the column headers for easier review.

Step 5: ImportCopy

Finally, import your transactions and confirm your account balances are correct. Ensure everything aligns with your actual records. If there are any discrepancies, simply use the Undo option from the menu in the top-right corner to rectify the error. This command will undo only the import operation but not the creation of templates โ€“ hence you can make corrections in the template and try again.