Bank CSVs with decimal commas, semicolons and day-first dates
On this page
If your bank's CSV separates columns with semicolons, writes amounts with a decimal comma, such as 1.234,56, and writes dates day first, such as 02.09.2026, you can still bring every row into Pennyweight. Your AI can convert the rows itself, or upload the file and name its date order so Pennyweight converts it. New to importing without a bank link? Start with import without a bank link.
What Pennyweight stores
Every row is saved with a date in YYYY-MM-DD form and an amount as a plain signed number: money in positive, money out negative. For example:
- 02.09.2026 becomes 2026-09-02.
- -54,18 becomes -54.18.
- 2.150,00 becomes 2150.00.
When your AI sends the rows itself, it makes these conversions first, and Pennyweight refuses an amount with any other text in it, such as 54,18 or €12. When your AI uploads the file instead, Pennyweight converts the amounts, and the dates once your AI names their order.
How to do it
- Make sure the account exists in the right currency. Your AI can add one with EUR, or any other currency, as its currency. See add a manual account. A new manual account needs an opening balance before its first import saves; see set or correct an opening balance.
- Share the CSV with your AI and name the account. If you know the file uses day-first dates and decimal commas, say so.
- Read the preview. Check that the row count matches the file, and check one large amount, such as a salary, to be sure the thousands separator was read correctly.
- Say yes. Your AI saves the import and reports how many rows were saved.
eu-semicolon.csv uses commas for decimals and semicolons between columns. Import it into my Euro Account.
Upload eu-semicolon.csv straight to Pennyweight for my Euro Account and preview it. The dates are day first. Don't import anything yet. How many rows are there, and what amount did you read for the Payroll Deposit?
What you'll see
For the first prompt, your AI converts the rows itself or uploads the file with the date order named, then shows a preview: how many rows are new, how many look like duplicates, and the account's balance after the import. After you confirm, it reports how many rows were saved to the Euro Account.
For the second, your AI uploads the file with the day-first order named. The preview lists 14 rows with no date error, and the Payroll Deposit reads as 2,150.00. Nothing is saved.
Using the direct upload
Pennyweight can also read a CSV file itself. This route is advanced; see import a CSV export. For files like these:
- It detects whether columns are separated by commas, semicolons, tabs or pipes.
- It works out the decimal separator from the amounts in each column. When a cell has both a dot and a comma, the rightmost one is the decimal point.
- An amount such as 1,234 on its own could be either. If no other amount in the column settles it, the upload reads it as a thousands group and the preview warns about it.
- Your AI can tell the upload which character is the decimal point and which one separates columns.
- It converts dates written DD.MM.YYYY or DD/MM/YYYY when your AI names that order. The order is never guessed. Without it, a single day-first date blocks the whole file, and nothing is imported.
- The preview shows the separators it used.
Headers can still stop it. The upload finds the amount only under the headers in the CSV format reference. An amount column headed Betrag, or separate Soll and Haben columns, isn't found, and the upload reads the second column as the amount instead. For a file like that, let your AI convert the rows. If you've already hit an error, see CSV date format errors and import errors.
Good to know
- File encoding. The upload reads a file as UTF-8. A file that isn't UTF-8 is read as Windows-1252, and the preview warns that non-Latin characters may be wrong. Text saved in an encoding such as Shift-JIS comes out garbled that way. Save the file as UTF-8 first, or let your AI read it. See using Pennyweight in Japan.
- Currencies. Put EUR rows into a EUR account. Each amount is stored as imported, in its own currency, and is never converted. The direct upload ignores a currency column, so every row takes the account's currency. When your AI sends the rows, the preview flags any row in a currency other than the account's. Totals that combine ledgers, such as net worth, are shown in your display currency at daily exchange rates. See accounts and totals in more than one currency.
- Amounts look wrong after saving? Your AI can remove the whole import so you can run it again. See undo an import. See balance looks wrong after an import.
- Your region. For what else applies in the UK and Europe, see using Pennyweight in the UK and Europe.