Skip to content

Generic CSV

The Generic CSV importer reads a CSV file you prepare yourself. Name its columns as in the column reference โ€” date and type at least โ€” and LibreFolio recognises them by their names: there is nothing to map by hand.

๐ŸŽฏ When to Use

  • Your broker is not in the supported list.
  • Your broker changed its export and its importer does not read it yet.
  • You keep your own spreadsheet, or a script writes the CSV for you.

โš™๏ธ How to Import It

  1. Prepare the file. Save it as .csv (from Excel, save a copy as CSV). Its first row names the columns, as in the column reference; other columns are ignored.
  2. Upload it in the Import Wizard and assign it to its broker.
  3. Check the plugin in Select Files: if Generic CSV is not already chosen, pick it in the file's Plugin column.
  4. Parse and review. Each row becomes a transaction.

One file per broker โ€” not one file per currency

Every row of a file is imported into the broker you assign to that file, so never mix two brokers in one CSV. Rows in different currencies can share the same file, as each row carries its own currency; you can also split a broker's history into several files, one per year for example, and import them together.

๐Ÿงฏ If Something Goes Wrong

  • "required column 'date' not found" (or type): the first row lacks that column, or names it differently. Add it, or rename the column to an accepted name, and upload the file again.
  • A row is missing: rows LibreFolio cannot read โ€” an unknown type, a date in an unknown format, an empty currency โ€” are skipped and listed among the warnings of the Parse step; rows with a wrong sign appear as validation issues. Fix them in the file and upload it again.
  • The bulk workspace asks for a cost on an ADJUSTMENT row: enter the cost of one unit, not the total value of the position.

๐Ÿ”„ Converting a Custom Report

If your data comes from another tool, a short script can turn it into a Generic CSV. The Generic CSV technical specification describes the format in full โ€” signs, which type to use when, worked examples. You can paste it into an AI assistant (ChatGPT, Claude, Geminiโ€ฆ) with a few sample rows of your file and ask for the script.


๐Ÿ“‹ Column Reference

These are the columns LibreFolio recognises in a Generic CSV file. Column names are case-insensitive, and spaces around them are ignored.

Column Required? Accepted aliases Description
date โœ… Always data, settlement_date, value_date, trade_date, fecha, datum, transaction_date, exec_date Transaction date
type โœ… Always tipo, transaction_type, operation, operazione, action, azione, trans_type, op_type Transaction type โ€” see values below
quantity Required for BUY/SELL/ADJUSTMENT quantitร , qty, shares, azioni, units, unitร , amount_shares, num_shares Number of units. Negative for SELL, positive for BUY.
amount Required for most types importo, value, cash, cash_amount, total, totale, net_amount, gross_amount, price Cash impact. Negative when cash leaves, positive when cash enters. Empty for ADJUSTMENT.
currency Optional (defaults to EUR) valuta, ccy, curr, currency_code, divisa, wรคhrung ISO 4217 currency code. EUR applies only when the file has no currency column: if it has one, fill it on every row with an amount, or that row is skipped.
asset Required for BUY/SELL/DIVIDEND/ADJUSTMENT symbol, ticker, isin, asset_id, instrument, strumento, security, titolo, name, nome Ticker, ISIN, or a consistent name string for unlisted assets
description Optional descrizione, notes, memo, note, details, dettagli, comment, commento Free text notes

๐Ÿท๏ธ Valid type values

BUY ยท SELL ยท DIVIDEND ยท INTEREST ยท DEPOSIT ยท WITHDRAWAL ยท FEE ยท TAX ยท ADJUSTMENT

Not supported: TRANSFER, FX_CONVERSION, CASH_TRANSFER

These need two linked rows, which a CSV cannot express: such rows are skipped with a warning. Enter them by hand from the Transactions page, or use your broker's own importer.