Back to Portfolio On Fire

Importing a DeGiro CSV export

DeGiro gives you two different CSV exports, they contain different things, and picking the wrong one silently costs you your entire cost basis. Here is how the import works, including the number-format trap that quietly corrupts Dutch exports in tools that guess.

The short answer

  • DeGiro produces two useful CSVs: a Portfolio export (what you hold now) and an Account statement (every transaction).
  • The Portfolio export is faster. The Account statement is the one that carries your real cost basis and dividend history.
  • Dutch and English exports format numbers differently. 1.674 means 1,674 in a Dutch export — tools that guess per-value get this wrong.
  • DeGiro CSVs contain no ticker symbols, so any importer must match on product name and ask you to confirm.
  • Re-importing later is safe: transactions are de-duplicated by order ID.

The two exports, and why the choice matters

DeGiro's web platform can produce several CSV files, and two of them are useful to a portfolio tracker. They are not interchangeable.

ExportContainsBest for
Portfolio A snapshot: each position, quantity, current price and value, as of right now Getting set up in under a minute
Account statement
(transactions)
Every buy, sell, dividend, fee and FX conversion, with dates Real cost basis, historical performance and dividend history

The distinction people regret later is this: a Portfolio export tells a tracker what you hold, but not what you paid or when. Import only that, and your profit-and-loss figures start from today — every holding looks like it was bought this morning at the current price. All historical performance is gone, and so is every dividend you have already received.

Use the Account statement if you have the choice

It takes the same thirty seconds to export and it carries your actual purchase history. You can always start with the Portfolio snapshot to see things working, then import the Account statement afterwards — a good importer will back-fill the history onto the positions you already have rather than duplicating them.

What each DeGiro export actually contains The portfolio export gives current holdings, quantities and value but no purchase price or dividend history. The account statement adds every transaction with dates, which is what real cost basis and dividend history are built from. Portfolio export Product + Aantal/Quantity what you hold now quantities current value no purchase price no dividend history Account statement + Omschrijving/Description + date every transaction real cost basis dividend history everything on the left plus the history Pick the left one and every holding looks bought this morning at today’s price
Both exports take the same thirty seconds. Only the right one carries your history.

How the file is recognised

You do not have to tell Portfolio On Fire which export you picked. It reads the header row and works it out, because the two files have different columns:

  • An Account statement is identified by a description column — Omschrijving in Dutch exports, Description in English ones — alongside Product and a date column (Valutadatum, Datum or Date).
  • A Portfolio export has Product together with a quantity column (Aantal or Quantity) and no description column.

Both language variants of every column are recognised, so you do not need to switch your DeGiro interface to English before exporting. The columns read from an account statement are the product name, the description, the value date, the time, the quantity (Aantal / Quantity), the price (Koers, Prijs or Price) and the total consideration (Tegenwaarde, Bedrag, Waarde, Amount or Value).

The number-format trap

This one is worth understanding even if you never use this app, because it silently corrupts data in tools that handle it naively.

An English DeGiro export writes numbers US-style: 1,234.56, and 117.48. A Dutch export writes them EU-style: 1.234,56 — and, critically, writes a thousands-only value as 1.674.

Look at 1.674 in isolation and it is ambiguous. Read it as English and it is one point six seven four. Read it as Dutch and it is one thousand six hundred and seventy-four. A tool that inspects each value individually and guesses will read some rows correctly and others wrong within the same file, producing a portfolio that is subtly, invisibly incorrect — a holding off by a factor of a thousand, sitting next to nine that are fine.

How Portfolio On Fire handles it

The convention is derived once, from the export language, and then applied to every value in the file. If the header contains Dutch column names — Omschrijving, Datum, Valutadatum, Aantal or Koers — the whole file is parsed as EU format. Otherwise it is parsed as US format. Consistency beats cleverness: the language of the file is a reliable signal, and the shape of an individual number is not.

Why you get asked to confirm tickers

DeGiro's CSV exports identify holdings by product name — free text like "ASML HOLDING" or "VANGUARD FTSE AW". They do not contain ticker symbols, and they do not contain ISINs in a form that maps cleanly to a market data provider.

That is a genuine limitation of the file, not of the importer, and it has a real consequence: something has to turn "VANGUARD FTSE AW" into a symbol that prices can be fetched for. Portfolio On Fire matches on normalised product name and then shows you what it resolved, so you can correct anything it got wrong before it is committed.

It is worth a moment's attention. A wrongly matched ticker does not fail loudly — it fetches prices for the wrong instrument and looks entirely plausible while doing so. Dual-listed shares and similarly named ETFs are the usual culprits.

Importing again later

Most people import once and then wonder what happens in three months when they have bought more. Re-importing an overlapping account statement is safe: transactions carry order IDs, already-imported IDs are remembered, and rows that have been seen before are skipped rather than added again.

This means the practical routine is simply to export a fresh account statement whenever you want to catch up and import the whole thing. You do not need to carefully select a date range to avoid overlap — overlap is handled. An import can also be run from a chosen start date against your existing positions, which is useful when you only want to top up recent activity.

Existing holdings are merged rather than replaced. Data the CSV does not carry — your own tags, list membership, notes, and the logos DeGiro exports never include — survives the import intact.

Step by step

  1. In DeGiro's web platform, export your Account statement as CSV (or the Portfolio export if you only want a quick snapshot). Pick a date range that reaches back to your first purchase.
  2. Get the file onto your device — email it to yourself, or save it to your cloud drive and open it from the Files app.
  3. In Portfolio On Fire, open the import screen and select the CSV. The export type is detected automatically.
  4. Review the resolved tickers. Correct any that look wrong, paying attention to dual-listed shares and similarly named ETFs.
  5. Confirm. Positions, cost basis and dividend history are built from the transactions.
Nothing leaves the device

The CSV is parsed on your phone. It is not uploaded for processing, because there is no server to upload it to — that is the whole architecture. A broker export is one of the most sensitive files you own; it should not need to travel to be read.

Troubleshooting

The file is not recognised at all

The header row is what identifies the file, so the usual cause is a CSV that has been opened and re-saved in a spreadsheet, which can rewrite the header or change the delimiter. Re-export from DeGiro and import the original file without opening it first.

Quantities look wrong by a factor of a thousand

That is the number-format issue above, and it means the file's language was misread. Re-export and import without editing the file, since editing it in a spreadsheet can change the number formatting to match your system locale rather than the export's.

A holding resolved to the wrong company

Correct the ticker at the confirmation step. If it has already been imported, correcting the symbol on the holding re-points the price lookup; the transaction history stays attached.

My broker is not DeGiro

Any portfolio you can export as JSON from a previous version imports directly, and manual entry detects countries, currencies and tickers for you. Native parsers for other brokers are added based on what people ask for — tell me which one you use.

Import once, then forget the spreadsheet

DeGiro CSV in, cost basis and dividend history out. Nothing uploaded.

Download Portfolio On Fire