PDFRows

Bank statement PDF in.
Clean spreadsheet out.

Drop the statement below. Every transaction appears as a table you can check, then download as a CSV that opens in Excel, Numbers or Google Sheets. The conversion happens inside this browser tab — the file is never uploaded, to us or to anyone.

Turn your wi-fi off first if you like — it still works.

What comes out

Left is page one of a statement from a bank that does not exist. Right is what PDF Rows makes of it — not a mock-up, the actual output, down to the last cent. Use the sample link under the box above to run it yourself, on your own machine, without a file of your own.

The PDF goes in
RIO GRANDE COMMUNITY BANK
Business Checking  ****4417
Statement period 01/01/2026 - 01/31/2026

DATE        DESCRIPTION                AMOUNT   BALANCE
            Beginning balance                  4,812.66
01/02/2026  SQUARE INC DEPOSIT       1,240.00  6,052.66
            REF 88213 BATCH 0041
01/03/2026  AMAZON MKTPLACE US          86.42  5,966.24
01/05/2026  ACH PAYROLL ACME LLC     3,100.00  2,866.24
01/08/2026  CITY OF RIO RANCHO UTIL    214.19  2,652.05
01/11/2026  CLIENT WIRE INBOUND      5,000.00  7,652.05
01/14/2026  STAPLES 00291               47.88  7,604.17
The spreadsheet comes out
DateDescriptionAmountBalance
2026-01-02SQUARE INC DEPOSIT REF 88213 BATCH 0041$1,240.00$6,052.66
2026-01-03AMAZON MKTPLACE US-$86.42$5,966.24
2026-01-05ACH PAYROLL ACME LLC-$3,100.00$2,866.24
2026-01-08CITY OF RIO RANCHO UTIL-$214.19$2,652.05
2026-01-11CLIENT WIRE INBOUND$5,000.00$7,652.05
2026-01-14STAPLES 00291-$47.88$7,604.17

Page one of two — six of the ten rows, and the six the free version hands you. Two things worth noticing: the statement never says which amounts are money out, so the running balance is used to work out the signs — and the description that wrapped onto a second line came back as one row, not two.

Nothing is uploaded. That is the whole point.

A bank statement is the most sensitive document a small business owns: account numbers, balances, who you pay and what you earn. Every other converter asks you to upload it to their servers and trust what happens next. Here there is nothing to trust, because there is nothing to trust us with.

It is read where it sits

The PDF is opened by code running inside this browser tab, on your machine. Open your network tab and watch while it converts — your statement is not in it.

The browser enforces it, not our word

This page carries a rule that lets it make requests to pdfrows.com and to nowhere else. Not a policy you have to take on faith — a restriction your own browser applies to our code, every time it runs.

There is nothing to delete

No account and no email address to use it, and no copy on a server that someone has to remember to erase. Close the tab and the statement is gone from everywhere it ever was.

Pricing

Free

$0

  • Every transaction shown on screen
  • Download page one as CSV
  • No account, no email address
Start free — no account

This exists so you can check it works on your bank before paying a cent.

Full

$29 once

  • Download every page, every statement
  • Unlimited pages — there is no page counter
  • No subscription, no renewal, no seat count
  • Works forever on the machines you use it on
Buy PDF Rows — $29

Your licence key is emailed to you the moment the payment clears, usually within a few minutes, from hello@pdfrows.com. It is not on Polar’s receipt; if you lose the email, it is also in your Polar portal. Open pdfrows.com, click “Have a licence key? Paste it here” under the drop box, paste, press Unlock. Once per browser. Sold by Polar, which handles tax and receipts.

Reply and I'll refund, no time limit. Write to mike@gearyworks.com.

For comparison: the best-known alternative charges $20–$30 a month for a plan capped at 60 pages a month, and your statements go to their servers. PDF Rows costs less than two months of that, for good.

What it handles — and what it does not

It handles

  • Text-based PDFs — the kind you download from online banking
  • One amount column, or separate withdrawal and deposit columns
  • Running balance columns, which it uses to get the plus and minus signs right
  • Dates as 01/05/2026, 5 Jan 2026, Jan 5, or 2026-01-05
  • Day-first dates outside the US
  • Descriptions that wrap onto a second line
  • Statements of any length — 4 pages or 400

It does not, yet

  • Scans and photos. If the statement is a picture of a page, there is no text to read. PDF Rows says so rather than guessing.
  • Password-locked PDFs. Save an unlocked copy first.
  • Credit card and brokerage statements are not what it was built for. Many work anyway; try one for free and see.

Every bank lays a statement out differently. If yours comes out wrong, email mike@gearyworks.com — but please don’t send the statement. Say which bank it is and how the rows came out wrong, or attach a page with the names and numbers blacked out. The layout is what gets fixed, not your figures, and fixes ship for everyone.

Questions

How do I know it really isn’t uploading my statement?
Disconnect from the internet after this page has loaded, then drop your PDF in. It still works. Nothing that needs a network could do that.
Do I need an account?
No. The free version asks for nothing at all. Paying gives you a licence key, emailed to you the moment the payment goes through.
What if it gets my numbers wrong?
Check the table on screen before you pay — that is exactly what it is there for. If the rows are wrong, do not buy it, and email mike@gearyworks.com with your bank’s name and what came out wrong. Don’t send the statement itself — an email attachment is an ordinary email attachment, and this page exists so you never have to send one.
I lost my licence key.
Go to polar.sh/geary-works/portal and type the email you bought with. Polar emails you a six-digit code, and your key is on the page after that. No password, nothing to remember.
Is $29 really once?
Once. There is no renewal and no card kept on file for a second charge.
Can I get a refund?
Reply and I'll refund, no time limit. Email mike@gearyworks.com. Given that you can see every row before paying, it should not come to that.