Extraction is the easy half. The half that decides whether you can rely on the output is the reconciliation you run against the statement’s own totals.
Key takeaways
Yes. Reading a client’s bank statements — turning a PDF, a scan or a photograph into dated rows with descriptions and amounts — is a mature document-processing task. Microsoft’s own documentation for Azure Document Intelligence describes it as a cloud service for building intelligent document processing solutions over data locked in forms and documents, and the accounting-specific products do the same job with an accounting workflow bolted on: Dext describes receipts, invoices and statements submitted by mobile app, email or upload, with the key data extracted, categorised and synced to the accounting software.
The question worth arguing about is not whether it can read them. It is how you know it read all of them, and whether the categories it proposes are ones you are willing to sign your name beneath.
Three distinct steps hide inside the word. Optical character recognition converts pixels to characters. A layout model works out that this block of characters is a table, this column is a date and this one is a credit. An extraction model maps those into fields you asked for. Each step has its own failure mode: a poor scan breaks the first, an unusual statement layout breaks the second, and a bank that puts debits and credits in one signed column breaks the third.
This is why the useful design question is which statements you standardise on. A firm that accepts native PDF downloads from online banking, and treats a photograph of a paper statement as an exception requiring a person, gets a far higher first-pass rate than one that accepts anything.
Never accept an extraction because it looks right. Accept it because it foots. Every bank statement carries its own proof: opening balance, plus credits, less debits, equals closing balance — and it does so per page as well as per statement. Configure the pipeline so that a statement whose extracted rows do not reproduce the printed closing balance is rejected to a human queue rather than passed on.
That single control catches the failure that matters most, which is not a misread digit but a missing row. A misread amount usually breaks the total and gets caught. A page silently skipped because the scan was crooked breaks the total too — but only if you are checking the total. Firms that skip this control discover the omission at review, or worse, do not discover it.
The model can tell you a payment of a given amount went to a named payee on a date. It cannot tell you whether that payee is a related party, whether the expense was incurred to earn income, or whether the owner’s personal spending has been run through the business account again. Those are professional determinations, and getting one wrong is the shape of a claim — see professional negligence by an accountant for how the duty is framed in Ontario. Treat proposed categories as a first draft that speeds the reviewer up, never as a conclusion.
The records themselves are also the client’s statutory obligation, not a convenience: section 230 of the Income Tax Act requires records and books of account to be kept, and subsection 230(4) requires them to be retained generally until six years from the end of the last taxation year to which they relate. If you keep the extracted data, you are keeping a derived record with the same sensitivity as the original.
A bank statement is personal information about the individuals it names, and about the owner of an owner-managed business it is unusually revealing — our sister firm’s explanation of what counts as personal information is the plain version. When you upload it to a hosted extraction service you have transferred it to a third party for processing, and clause 4.1.3 of Schedule 1 to the Personal Information Protection and Electronic Documents Act keeps your organisation responsible for it, requiring contractual or other means to provide a comparable level of protection. That is a contract question you settle before the pilot, not after.
The Office of the Privacy Commissioner’s principles for responsible, trustworthy and privacy-protective generative AI apply to the firm using the tool, not only to the company that built it. Two questions are worth asking every vendor in writing: is client data used to train models beyond our own use, and where is it stored. Neither answer should arrive verbally.
A bookkeeping-and-tax practice in Alberta takes on a client with four accounts and eighteen months of unreconciled history, delivered as scanned PDFs. The old approach was a co-op student keying rows. The rebuilt approach: statements are split by account and month; each month is extracted; the pipeline recomputes the closing balance and holds back any month that does not agree; the accepted rows load to the ledger as uncoded transactions; coding rules handle the recurring payees; everything else goes to a review queue sorted by dollar value.
The point of the design is that the reviewer stops reading the routine rows at all. She reads the exceptions, largest first, and the arithmetic proves nothing was dropped on the way. Measure it in your own practice by the number of months held back by the balance check — if that number is zero, your check is not switched on.
Is a bank feed better than reading statements?
For live bookkeeping, generally yes, because it removes the extraction step entirely. Statement reading earns its place on historical clean-ups, on accounts no feed supports, and when you need the statement itself as evidence rather than the transaction list.
Do we need the client’s consent to upload their statements?
Address it in the engagement terms and your privacy policy rather than ad hoc, and be specific about third-party processing. That is a legal question for your own counsel, and worth resolving once for every client rather than per file.
Can it read a photograph of a statement?
Often, and badly. Accept photographs only into an exception path with a person attached; the cost of a quietly missed page is far higher than the cost of asking for the PDF.
If your interest is coding and reconciling one company’s own transactions rather than a book of clients, that sits on the bookkeeping page instead.
A 30-minute call is enough to tell you whether AI pays for itself here.