StatementtoCSVnothing uploaded ☕Tip

How it works

  1. Your browser opens the PDF with pdf.js (the PDF engine built into Firefox), served from this site. It pulls out every piece of text with its position on the page. Password-protected statements are unlocked locally when you type the password.
  2. The table is found by layout. The converter looks for the column header (Date, Description, Withdrawals, Deposits, Amount, Balance…), then places each number under the column it lines up with, joins descriptions that wrap and fills in dates that are only printed once per day.
  3. Signs and years are worked out. For single-amount statements it checks which sign makes the running balance add up; the year comes from the statement period, including statements that cross New Year.
  4. Every row is reconciled: opening balance + credits − debits must equal each printed balance and the closing balance. Mismatches are highlighted.
  5. Scanned statements (Pro) are read with tesseract.js OCR, also in your browser. Its engine and English language data download from the jsDelivr CDN the first time.

Your statement is never sent anywhere. The only requests are for this site's code, the OCR engine (only if you use OCR) and your sign-in status if you use Pro.