Why a categorized CSV?
- Checked, not guessed. A balance-reconciliation check ties every row to the statement's running and closing balances and flags anything that doesn't add up — so you categorize numbers you can trust.
- Bulk-tag, don't click. A Category column lets you sort by description and fill categories down a spreadsheet in seconds, instead of clicking each transaction in an app.
- Import-ready. Date, Description, Amount, Category maps cleanly into most accounting tools once you've filled the categories.
How it works
- Open the converter. No registration is required.
- Upload the statement. Drag and drop your PDF, or browse from your device.
- Convert to categorized CSV. Choose Categorized CSV as the target format and click Convert.
- Fill in categories and import. Preview the extracted rows, unlock the full CSV (one-time $15), review any flagged rows, tag the Category column in a spreadsheet, then import into your accounting tool.
What gets flagged
Before the CSV is handed back, a deterministic reconciliation check runs. It flags the statement for review when:
- A row's printed running balance doesn't equal the previous balance plus that row's amount.
- The opening balance plus the sum of every transaction doesn't equal the closing balance.
- The transaction dates run out of order — a later row dated before an earlier one.
- No transactions could be read from the statement at all.
Flagged rows are surfaced for you to review — never silently exported as correct. You start categorizing from numbers that already tie to the statement, or with a clear list of which rows to check first.
Good for
- Bookkeepers doing catch-up categorization across many months.
- Building an expense breakdown before importing to accounting software.
- Freelancers tagging business vs personal spend from a PDF statement.
The exact CSV you get
This output is deliberately generic — it's the shape a bookkeeper wants when the destination isn't one specific package:
Date, Description, Amount, Category, with money in positive and money out negative.
The Category column is left blank unless the statement itself supplied a code. Nothing is guessed from the description text. A transaction that reads AMZN MKTP US*2K4XY could be office supplies, software, or a personal expense that shouldn't be in the books at all, and a converter that quietly labels it is creating work — you'd have to check every row anyway to trust any of them. A blank column you fill once is faster than a wrong one you have to audit.
The column is ready for a spreadsheet fill-down, a lookup against your own chart of accounts, or a bulk edit in whatever package you import it into.
FAQ
What's in the Category column? A Category column is added after Date, Description, and Amount. It's left blank for you to fill in — sort by Description in a spreadsheet, then tag each group (Meals, Software, Rent) before importing into your accounting tool.
Why categorize in a CSV instead of in my accounting app? For catch-up work across many months, bulk-categorizing in a spreadsheet — sort, fill down, find-and-replace — is far faster than clicking each transaction in an app. Import the finished CSV once it's tagged.
What happens to rows that don't reconcile? They're flagged, not dropped. The row still appears in the CSV, but the statement is marked as needing review with the specific checks that failed, so you can verify against the original before trusting the numbers. Nothing that fails the balance check is passed off as verified.
Is it free and private? The preview is free — you see the extracted rows and the reconciliation result at no cost, with no signup and no watermark; the full categorized CSV is a one-time $15 unlock per statement, no subscription. Private: files are deleted after 1 hour, never used to train any AI model, and we never connect to your bank. All transfers are encrypted. This is a conversion utility, not financial or accounting advice.
Related
- Bank statement → CSV → a plain generic CSV
- Bank statement → Wave → for Wave Accounting
- Bank statement → QuickBooks → QuickBooks-specific CSV
- Bank statement → Xero CSV → for Xero
- All supported formats →