Home › Statement analyzer

Bank statement analyzer

CSVLedger's analyzer totals inflows, outflows and net change per month and lists the ten largest payees straight from a PDF bank statement. It uses the same reconciled data as the exports, so totals match the statement balances, and runs entirely in your browser.

Updated October 29, 2026

See where the money went without building a spreadsheet: CSVLedger totals inflows and outflows per month and groups spending by payee, straight from the PDF.

Free beta: 10 pages per day in this browser.

Typical uses

How the numbers are calculated

Inflow is the sum of positive transactions (deposits, refunds, payments to a card); outflow is the sum of negative ones. Months come from the transaction dates. The payee grouping is a simple text rule, so the same merchant may appear twice if the bank writes its name differently — download Excel for a full pivot-table analysis.

Frequently asked questions

Can I analyze several months at once?

Yes. A statement that spans more than one calendar month is split by month. For several statements, drop all the PDFs; each gets its own analysis.

Does the analyzer categorise transactions (rent, payroll, etc.)?

Not yet. It groups by payee text only. Category rules are on the roadmap.

Are transfers between my own accounts excluded?

No. The analyzer shows the statement as printed; transfers appear as normal inflows and outflows.

Is my bank statement uploaded to a server?

No. The PDF is opened and converted by JavaScript running in your browser tab (using Mozilla's open-source pdf.js library). The file is not sent to CSVLedger or anyone else. You can confirm this in your browser's developer tools: the Network tab shows no request containing your file.

How do I know the conversion is correct?

Every conversion is checked against the statement itself: the opening balance plus credits minus debits must equal the closing balance printed on the statement, to the cent. If the statement prints a running balance, each row is checked too, and rows that do not match are highlighted in red. If the check fails you see it before you download anything.