How the converter reads a statement
A bank statement PDF has a hidden text layer behind what you see. The converter pulls that text out page by page, groups the words that sit on the same line, and then looks for the pattern every statement shares: a date at the left edge, a description in the middle, and one or two money columns on the right. Each line that fits becomes a transaction. Lines that do not fit, such as page headers, addresses and the summary box, are dropped. A short line with no date and no amount that follows a transaction is treated as the second line of its description, which is how most banks print the merchant's city.
Amounts and signs
If the statement prints a running balance, the converter uses it: a transaction that lowered the balance becomes negative, one that raised it becomes positive. That gets the sign right even for banks that print every amount without a minus. If there is no balance column, the sign is read from the page: a leading minus, parentheses, a trailing minus, or a DR suffix all mean a debit. The CSV has three columns, Date, Description and Amount, plus Balance when the statement had one. Dates are kept exactly as printed so your bookkeeping software can match them to the format it expects.
Privacy
Statements are about as sensitive as documents get, so this tool does not upload them. The PDF is parsed with pdf.js inside your browser and the CSV is assembled from that text and saved by your browser's normal download. There is no server-side processing, no account and no storage. The page loads the PDF engine the first time you choose a file, which is the only network request it makes.
What it cannot do
Scanned statements have no text layer and will produce an error; download the statement from your online banking instead. Statements that print debits and credits as two separate columns with both filled on the same line are rare but will be read as amount and balance. Multi-currency or brokerage statements with more than two numeric columns per row are not supported.