What happens to your statement

Four steps, typically 10-60 seconds for a native PDF. Here is each one, including how long it takes and what the product does not do.

Last updated September 10, 2026

  1. The converter drop area, ready for a PDF, a scan or photos

    You upload

    Drop in a PDF, a scanned PDF, or photos of paper pages. Bank statements and credit-card statements both work, in any currency. Limits: 20 MB or 100 pages per PDF, or up to 10 photos of one statement (under 5 MB each after your browser shrinks them). The file travels over an encrypted connection and is held only for the length of the job.

  2. The conversion running, with each page reported as it is read

    We read the pages

    The document is read page by page and turned into structured rows: date, description, debit, credit, balance, plus the opening and closing balances and the currency. There are no bank-specific templates. That is why an unusual credit union statement or a photographed page is read the same way as any other: the reader looks at the printed table the way a person would, instead of matching a stored layout.

    Native PDFs go through a fast reading pass. Scans and photos go through a stronger pass that reads the image. A statement whose balance check fails is not simply run again: the pages the failure points at are re-read, and the new answer is kept only where it reconciles better. The seven layers below set out the order.

  3. The finished table with the balance check reported above the rows

    We check the arithmetic

    The extracted transactions are used to rebuild the running balance, which is then compared against the balance printed on your statement, line by line, and then against the closing balance. Statements printed newest-first are detected and re-sorted into date order before the check runs. Credit-card statements are handled with the sign convention flipped, because a purchase increases what you owe.

    Rows that break the chain are flagged with the exact difference. Nothing is silently corrected. More on the check.

  4. The export row offering Excel, CSV, QBO, OFX, QFX, QIF and JSON

    You download

    Choose Excel, CSV, QBO, OFX, QFX, QIF or JSON. Download as many formats as you want from one conversion; it costs no extra pages. When the job is done, the file and its contents are deleted. We keep a counter and nothing else.

Every balance the statement prints is one link in a single chain. Step three walks it from the opening figure to the closing one, and where a link does not join, that is the row you are shown.

How long it takes

DocumentTypical time
Native PDF, 1-4 pages10-60 seconds
Native PDF, 20+ pagesa minute or two
Scanned PDFabout 20-40 seconds a page
Phone photosabout 40-60 seconds an image

Scans take longer because every pixel has to be read rather than picking up text that is already in the file. We would rather be slow and checkable than fast and wrong. Long jobs show progress per page, and the tab title carries the percentage so you can watch it from another tab. The tab itself has to stay open. The timings above are what we measured on our test corpus; a dense 60-row page takes longer than a sparse one.

What the product does not do

  • We never keep your statement or the transactions extracted from it beyond the job. Where your statement goes.
  • We never alter, correct or "clean up" an amount. If a row looks wrong, we flag it and show you the difference. We don't guess at a fix.
  • We never generate or edit a statement. This is a reader, not an editor.
  • We never sell data, run advertising trackers or set tracking cookies.
  • We never claim a check passed when it couldn't run. A statement that prints no running balance comes back with the check marked unavailable, never with a green badge.

The seven layers, in order

The four steps above are what you do. This is what runs between them. Four of the seven layers exist only to catch what the reading missed, which is the part a single pass over the document has no way to do.

  1. Route the file

    Before a single row is read, the file is classified.

    A PDF with real text under it, a scan, and a photo taken on a phone are three different problems. This layer counts the pages, decides whether the text layer can be trusted, and picks the reading path and the model from that. A native PDF never pays for image work it does not need.

  2. Split into pages

    The statement is cut into single pages and read in parallel.

    A sixty page statement becomes sixty small independent problems, five in flight at a time. Nothing depends on one model holding sixty pages in mind at once, which is where long documents quietly lose rows out of the middle.

    One pass instead The whole document in a single context, where the middle gets the least attention.

  3. Read every row

    Date, description, debit, credit and balance, as structured fields.

    Each page comes back as data with a fixed shape, not as prose that has to be picked apart afterwards. A field the statement does not print comes back empty. Turkish and European number formats are converted, dates are disambiguated from the document's own country and language, and DR and CR suffixes keep their sign.

    Worth knowing The statement is treated as data, not as instructions. Text planted inside a document to steer the model is ignored.

  4. Stitch the pages together

    Page breaks are repaired before anything is counted.

    Statements print things at the page edge that are not transactions: balance brought forward, carried forward, devreden, nakli yekûn, page subtotals. Those come out. A transaction whose description runs over the break is joined back into one row. A row printed on both sides of a boundary is deduplicated.

    One pass instead Those lines arrive as transactions, and the total is wrong by an amount nobody thinks to look for.

  5. Reconcile against the printed balance

    The running balance is rebuilt from the transactions and compared with the statement.

    Opening balance plus every credit minus every debit has to equal each printed balance, and then the closing balance. Statements that print newest first are detected and checked in that direction. On credit-card statements the sign flips, because the printed figure is debt: purchases raise it and payments lower it.

    One pass instead Nothing adds the column up, so a misread digit looks exactly like a correct one.

  6. Repair what broke

    A failed check triggers a targeted second read, not a blind retry.

    When the chain breaks at a page boundary, the two pages on either side are read again together in one request so the join is visible. The new answer replaces the old one only where it scores better against the printed balances. If the chain is still broken, the exact pages the failing rows came from go to a stronger model, up to five of them, under the same rule.

    One pass instead Run the whole thing again and compare two answers by eye.

  7. Report what is true

    Every conversion says which check ran and what it found.

    A statement whose chain closes is marked reconciled. A row that breaks it is flagged where it sits, and the amount is never quietly corrected on your behalf. A statement with no running balance column, which is most credit-card statements, is marked Check unavailable rather than passed. The status travels with the data into the JSON export.

Who touches your file

Hosting, TLS and bot protection are Cloudflare. Payments are Polar. Outbound email is Resend. The reading is done by our AI document-processing provider in the United States, under a data processing agreement and standard contractual clauses, with no training on our data and deletion of inputs within 30 days. That is the entire list, and the security page sets out what each one gets.

Every release runs against a fixed corpus of statements with known-correct output, in native, scanned and photographed form, and a release ships only when the balance check catches every amount that was read wrong. That is the standard the arithmetic is held to, and it is the same arithmetic that runs on your file. Method and scope are on how we test.

Convert one and see

Three pages a day are free, and you don't need an account to run your own statement through it.