The .ofx file.
The file your bank offers next to the CSV, and the one to take. It carries the fields that make reconciliation possible rather than approximate.
Also .qfx, .qbo, which are read the same way.
What it actually is
OFX is the interchange format banks use for statements. Each transaction carries a unique id assigned by the bank, a type code distinguishing a debit from a fee from a transfer, an amount, a date, and the free-text memo and payee fields.
The unique id is the important one. It makes re-uploading an overlapping period safe: the same transaction appearing in two exports is recognised as one transaction rather than doubling your spending for a fortnight.
Quicken's .qfx and QuickBooks' .qbo are OFX with a vendor block on top, and fold into this page. The older Microsoft Money .ofx files are SGML rather than XML, and both dialects are read.
At a glance
- Carries
- A bank-assigned unique id per transaction
- Type codes
- Debit, credit, fee, interest, transfer and more, as declared values
- Dialects
- SGML in older files, XML in newer ones
- Variants
- .qfx for Quicken, .qbo for QuickBooks
- Read here as
- Direct. Type codes and references make matching far better than a CSV.
- Status
- Ready
- Fidelity
- Read directly
- Largest file
- 250 MB
Transactions come with their own type codes and references, which makes matching far better than a CSV.
Upload one
The analysis runs before there is anything to pay for. You see what it found, and the evidence behind it, first.
No account needed to start. You only pay when you like what you see.
What goes wrong, and what is done about it
01
Transfers between your own accounts counted as income
Moving money from a savings account to a current account produces a credit that looks exactly like revenue in the receiving account. A year of that inflates income by whatever you moved, and the total still reconciles against the bank.
A credit matched to an equal and opposite debit in another uploaded account within a short window is classified as a transfer and kept out of income, with the pairing listed so you can check it.
02
Dates that shift by a day
OFX timestamps carry a timezone offset that some banks emit incorrectly or omit entirely. A transaction at 23:40 then lands on the wrong day, which matters at every month boundary.
Where the offset is absent or inconsistent, dates are read in the account's own timezone and the choice is stated rather than assumed silently.
03
Memo fields that are the same merchant three ways
A statement says SQ *THE COFFEE HOUSE 04, not "lunch", and the descriptor changes when the merchant changes payment processor. Categorising on the raw string produces three merchants where there is one.
Merchants are normalised before anything is grouped, and a payment is only called recurring once it has repeated over at least three cycles at a stable amount.
If you have the choice, send something else
If your bank offers both, OFX beats CSV and both beat a PDF statement. A PDF has already discarded the reference field that invoice matching runs on, so a PDF-only project reconciles less and says so.
Questions people ask
Does this connect to my bank?
No, and it never asks for a login. It reads files you export yourself. There are no credentials stored and no ongoing access to revoke.
Can I upload several accounts?
Yes, and you should. Transfers between your own accounts can only be identified when both sides are present, and that classification is usually the largest single correction to a year of figures.
What if I upload overlapping periods?
The bank's transaction ids make the overlap detectable, so the same transaction in two files is counted once. With a CSV export, which has no ids, matching falls back to date, amount and description, and the residual uncertainty is reported.