- Why is my scanned PDF taking so long when my other ones are instant?
- Because they're two different jobs. Most bank statements carry a text layer — the words are really in the file — and we read that in a fraction of a second a page. A scan has no text layer, just a picture of a page, so every page has to be turned into an image and read character by character. That takes roughly eight seconds a page on our hardware, so a thirty-page scan is about four minutes of genuine work rather than something being stuck.
We'll tell you which one you've got within a second or two of uploading, along with how long it should take and whether anything is ahead of it in the queue. While it runs you'll see the page it's on and the time left, so you can tell it's moving.
One scanned document is read at a time, deliberately — running two at once on the same machine makes both slower rather than faster, so queueing is what keeps them predictable. Text PDFs don't queue behind scans at all; they go straight through.
If you can choose, a PDF downloaded from your bank's website will always be faster and more accurate than a scan or a photo of a printed statement — and it costs the same either way, one credit per page.
- What does the badge on each file mean — "Matches statement totals", "Doesn't match statement", or "Verify against the statement"?
- After extraction, we check whether the rows we found add up to what your statement says about itself — its opening and closing balance, its own column totals, or the running balance printed beside each row. "Matches statement totals" means they do, to the cent.
The running balance is the most useful of the three when a file has one, because it is checked at every row rather than once at the end, so it can tell you which row something goes wrong at — and it catches a case the totals cannot: a file that is missing transactions whose amounts happen to cancel out.
"Doesn't match statement" means they don't, and we show you exactly which figures disagree. "Verify against the statement" means your statement didn't print anything we could check against — no balances, no totals, no running balance — so we're telling you to eyeball it yourself rather than pretending it's fine. It's a common enough outcome that we publish the actual rate across our own test corpus on the benchmark page rather than asking you to take a number on trust.
None of this is the same as an accountant reconciling your account against an independent record; it only checks that what we extracted is internally consistent with what your own statement says.
Edit an amount or delete a row afterward and we re-run the same check automatically, so the badge always reflects what you're about to export — and because that recheck runs entirely in your browser, fixing a flagged row never sends anything back to our servers or creates a new copy of your data there.
- How accurate is the extracted data?
- PDF extraction uses each page's real text layer where available, with OCR as a fallback for scanned statements.
CSV columns are auto-mapped to Date/Description/Amount from common header names — or, when a file's headers say nothing useful (some bank exports really do label their columns "Column 1" to "Column 7"), from the data itself.
Both are best-effort: bank statement formats vary too much to guarantee perfect extraction, which is why every upload lands in an editable table where you can adjust the column mapping and deselect or delete any row before exporting.
We also check our own work: after extraction, we compare the rows we found against the totals your statement prints about itself, and show you the result as a badge next to the file rather than asking you to just trust the table.