Bring a statement file. Tally does the sorting.

Download a statement from your bank, import it on the web or on Android, and every row is checked for duplicates and sorted by your rules. Six file types work today.

The Import page with a drop area for statement files (CSV, OFX, QFX, QIF or PDF) and an account name box.
The Import a statement screen on Android with a Choose files button and a note that duplicates are skipped.The Import a statement screen on Android with a Choose files button and a note that duplicates are skipped.

Which statement files can you import?

CSV files from Wise and TD Canada Trust, OFX, QFX and QBO files, QIF files and text-based PDF statements. Each file can be up to 20 MB, and you can import up to 50 at once.

  • CSVWise and TD Canada Trust layouts
  • OFXVersions 1 and 2
  • QFXThe Quicken flavour of OFX
  • QBOThe QuickBooks flavour of OFX
  • QIFThe older Quicken format
  • PDFText-based statements only
Supported statement files
FormatWhat it isWhat to know
CSVA spreadsheet-style exportWise transaction history, Wise account statement (including its US date layout) and the TD Canada Trust download with 5 columns and no header row.
OFXA standard bank downloadBoth the older text version and the newer XML version are read.
QFX, QBOOFX files made for Quicken and QuickBooksRead the same way as OFX.
QIFThe older Quicken formatRecognized by its !Type or !Account line.
PDFA text-based statementThe text must be real text, not a scan. This is the newest format and has been tested on a small sample statement so far.

How does Tally know which format a file is?

It looks inside the file, not at its name. The checks run in this order, and the first one that fits decides.

Format checks, in order
OrderIf the fileIt is read as
1has an OFX headerOFX, QFX or QBO
2has a !Type or !Account lineQIF
3starts with the PDF markerPDF
4is anything elseCSV, trying the Wise layouts first, then TD
5fits none of theseNot imported. You get a clear message that names the formats it accepts.

How are duplicates caught?

Every row gets a fingerprint, and a row whose fingerprint is already saved is skipped. Import the same file twice and nothing is counted twice.

  • If the bank gives a row its own ID, as Wise does, that ID is the fingerprint.
  • Otherwise the fingerprint is made from the date, description, amount and running balance.
  • Two rows that really are identical inside the same file are both kept, because a counter tells them apart.
  • The fingerprint does not depend on what you named the account, so renaming an account does not undo it.

Same file, imported twice

1st import, new
162
1st import, skipped
0
2nd import, new
0
2nd import, skipped
162
Counted twice
0
Example using test data

What is the PDF sign rule?

A PDF row is imported only when its amount shows which way the money went. A bare number is skipped and reported, never guessed.

How amounts in a PDF are read
As printedRead as
-42.10Money out
42.10-Money out
(42.10)Money out
42.10 DRMoney out
42.10 CRMoney in
2,500.00Skipped and listed, because it could be either

Why skip instead of guess?

In a statement turned into plain text, a number with no sign could be a deposit or a withdrawal. Guessing wrong would put a backwards row into your budget, and fixing it later would leave a second copy behind. So Tally skips the row and tells you about it.

PDF import reads text-based PDFs only. There is no scanning of images, so a scanned statement finds no transactions.

What do you see after an import?

A short result for each file: how many rows were new, how many were skipped as duplicates and how many still need a category.

New rows run through your rules straight away, lowest number first, and the first rule that matches picks the category. When no rule matches, Tally copies the category you gave the same merchant before. Anything left over is marked as needing a category, so you can sort it later.

Imports that include running balances, such as a TD download, a Wise account statement or an OFX file, also give the budget a starting balance for safe to spend and the forecast.

Import receipt

File
td-chequing.csv
New
162
Duplicates skipped
0
Need a category
27
Example import using test data

What else do people ask about importing?

Can I import a scanned PDF?

No. Tally reads the text inside a PDF and does not scan images, so a scanned or image-only PDF finds no transactions. If your bank offers a CSV, OFX, QFX or QIF download, use that instead.

Can I import several files at once?

Yes. You can choose up to 50 files at once, each up to 20 MB. A separate export for each account or currency works well.

My bank is not Wise or TD. Can I still import its CSV?

Not yet. CSV import understands the Wise and TD Canada Trust layouts today. If your bank offers an OFX, QFX, QBO or QIF download, try that: Tally reads those formats by their standard structure, not by bank.

Can I import on my phone without a connection?

On Android you can queue an import while you are offline. The rows upload and get sorted once you are back online.

Does importing change anything at my bank?

No. Tally only reads a file you already downloaded. It never contacts your bank.

Your bank login stays yours.

Tally is in development and not open for sign-ups yet. See what the budget does with your rows, or read where your data goes.