About pdftoexcel
A small independent tool for converting bank statement PDFs to Excel, CSV, and QBO — with the running-balance reconciliation check that makes the output safe to use in front of an auditor, an underwriter, or a judge.
Who builds it

pdftoexcel is built by Kyr Poskonoff, a Lisbon-based founder and XR / AI operator. Matrizexplícita Lda is the registered company behind the product — the name on your Stripe receipt and on the GDPR documentation — but the day-to-day engineering, support, and roadmap are one person.
Before pdftoexcel I spent nine years shipping extended- reality and AI products as co-founder and delivery lead of LikeXR, where we've delivered 350+ XR and AI projects for enterprise and startup clients — work that picked up a Best AR Company award at the European Technology Awards along the way. I host the LikeXR.tech podcast, speak at events like AWE, and wrote Metaversions: Many Men, Many Minds on where immersive tech is actually going.
Why I built pdftoexcel
The idea came out of my own books. Running a real company (Matrizexplícita Lda, the Portuguese entity behind pdftoexcel) and splitting operations across several accounts at different European and US banks, I hit the same wall every month-end: every bank I use exports statements as PDFs, and not one offers clean CSV downloads for every account type. QuickBooks wants the data as CSV or QBO. My accountant wants Excel. Every downstream tool wants structured rows. No one wants to retype them by hand.
First thing I tried, like everyone else does, was feeding the PDFs to ChatGPT. It worked maybe half the time and got subtle things wrong the other half: flipped signs on a credit-card cycle, dropped a row from a split-section Bank of America statement, invented an ACH deposit that didn't exist. The output looked plausible. It wasn't right. I wrote up the pattern in Why ChatGPT lies about your bank statement.
Next I tried the existing PDF-to-Excel converters on the market. Different failure mode: they did extract rows, but none of them verified the arithmetic against the statement's own printed beginning and ending balance. A single mis-read amount or a split-section layout would quietly produce a spreadsheet where the totals didn't match the PDF summary — and the tool would happily hand it to you labelled as done. I documented the specific layouts that break naive parsers in Five bank statement layouts that break naive PDF parsers.
Scanned statements — the ones you get from opposing counsel in divorce discovery, or from a client who printed and rescanned their own records — got rejected outright by most tools. The workaround was always the same: retype by hand. Why vision OCR alone isn't enough, and what to layer on top, is the subject of Scanned bank statements to Excel without the silent OCR errors.
At that point I stopped trying to patch my own workflow and started calling people — forensic accountants working divorce- discovery packets, bookkeepers running annual close for small businesses, a family-law attorney drowning in opposing-counsel disclosure, a loan officer prepping mortgage files, a property manager screening tenant bank statements. Same story every time. The conversion step was where three to eight hours of billable time per week disappeared, and the silent-error risk was the part that kept them up at night — not the speed. None of them trusted ChatGPT for numbers that would be seen by an auditor, a judge, or an underwriter. And none of the existing converters gave them a guarantee they could point to.
That's the product this became. The architectural invariant all of them wanted, and none of the existing tools enforced: sum of extracted transaction rows must equal the statement's printed ending balance minus the beginning balance, to within a penny. If it does, the export ships with a Verified badge. If it doesn't, the export ships with a flag pointing at the row where the math broke. No silent errors, no vague "confidence score," no need to audit the output by hand. Nine years of shipping extended- reality products taught me the same lesson a different way: the feature that looks good in a demo is rarely the one that earns trust — the architectural guarantee is. pdftoexcel is that guarantee, applied to bank statements, for the people who can't afford to hand an underwriter or a judge a spreadsheet that might be wrong.
Why reconciliation
Every bank statement prints a summary on page one: beginning balance, plus deposits, minus withdrawals, minus fees, equals ending balance. Those five numbers are arithmetically linked to every transaction row in the detail section. If your extracted rows don't sum to ending − beginning within a penny, the extraction is wrong. That's the check we run on every file. A Verified badge means the math closes. An Unverified flag means we're telling you which row or which page is the likely source of the mismatch — not hiding it behind a "confidence score."
General-purpose LLMs can't ship this guarantee because they have no architectural invariant that forces the sum to balance. They produce plausible-looking spreadsheets that pass a human glance and fail a finance-team audit weeks later. We specifically don't.
Who uses it
Forensic accountants doing divorce discovery. Bookkeepers reconciling annual archives for tax prep. Family-law attorneys running opposing-counsel packets through a Verified export. Property managers screening tenant bank statements for income verification. Mortgage loan officers prepping 60-day packets. Anyone who needs a spreadsheet they could hand to a regulator without a caveat.
How it's built
Digital PDFs for the 24+ banks we have hand-tuned fast-paths for get parsed with pure pdfplumber in 2-3 seconds — no LLM cost. Everything else routes through Gemini 2.5 Flash with structured output, escalating to Claude 4.5 Haiku and Sonnet if Flash can't produce a reconcilable result. Scanned PDFs (no text layer) go through Gemini vision OCR with the same reconciliation check applied to the extracted rows. You always see which path was used on the result page.
PDFs are parsed in memory and never persisted. The structured extraction (dates, amounts, descriptions) is stored only if you're signed in, and only for 24 hours on the free tier by default. The source PDF itself is discarded as soon as the extraction finishes.
How to reach us
Email hello@bankpdftoxls.com with questions, a bank we don't yet support, or a statement that won't convert — replies within 24 hours on weekdays. Support requests from paying customers are prioritised. Every file you send is treated as confidential and deleted after the ticket closes.
For bug reports or feature requests, the faster path is an email with a short description of what you expected and what you got. Screenshots help; we do not need the PDF itself unless we ask.
Connect with me on LinkedIn if you prefer that — I post occasionally about the engineering and business behind the product, and I'm happy to take a quick call if you're evaluating pdftoexcel for a forensic or bookkeeping-firm workflow.
The company
Matrizexplícita Lda, a Portuguese limited-liability company. GDPR data controller for all EU user data. See the privacy policy for full details on retention, data processing, and your rights as a data subject.
Start converting
Free for 15 pages a month, no card required. Drop a statement and see the Verified badge for yourself.