The hard part is not getting data out of the PDF. It is getting a table you can reconcile, repeat next month, and hand to a reviewer.
Key takeaways
You get PDF data into Excel with AI by deciding the target table first, running an extraction model document by document into that exact shape, and then reconciling each document's rows to a figure printed on the document itself. The AI supplies the rows; the reconciliation supplies the confidence.
Reversing that order — extracting first and deciding what the columns mean afterwards — is how firms end up with a spreadsheet nobody can check and nobody will sign.
Start with the grain: what does one row represent? One invoice? One invoice line? One bank transaction? One month per property? Get this wrong and every subsequent total is meaningless, because you cannot tell double-counting from detail.
Then type the columns. Dates as dates, amounts as numbers with a stated sign convention, tax as its own column rather than folded into the total, identifiers as text so leading zeros survive. And add two columns that have nothing to do with the client: source file name and source page. Without those, no reviewer can trace a figure back, and a spreadsheet nobody can trace is a spreadsheet nobody can rely on.
A built extractor is trained on a document type and returns fields. Azure Document Intelligence describes prebuilt models for common business documents and custom models trained on your own forms, alongside document analysis models that return text and layout. In accounting, Dext's capture page lists line item extraction, bank statement extraction and supplier statement extraction as distinct capabilities — which is the right way to think about it, because a bank statement and a supplier statement are different shapes.
A general model reads anything and returns whatever you ask for. It is more flexible and less predictable: it will silently reformat a date, infer a missing column, or skip a row it could not parse. That is acceptable for a one-off analysis you will read in full, and unacceptable for a monthly process nobody re-reads.
The practical rule: if the document type recurs, invest in the built extractor. If it will never recur, a general model plus a full read is cheaper.
Every worthwhile source document carries its own arithmetic. A bank statement has an opening and closing balance. A supplier statement has a closing balance. An invoice has a total. A rent roll has a monthly sum. Extract the control figure as a separate value, sum the extracted rows, and compare.
This converts an unbounded review problem into a binary one. Documents that tie are sampled. Documents that do not tie go to a person, in full, with the source open beside them. On a 60-document pack that usually means reading four documents instead of sixty, and the four you read are the four that were wrong.
A client hands over twelve monthly PDF bank statements for a year-end file. The grain is one row per transaction. Columns: date, description, debit, credit, running balance, source file, source page.
Extraction runs once per statement. For each month, the sheet computes opening balance plus credits minus debits and compares it to the closing balance printed on that statement. Eleven months tie. One does not, by the exact amount of a single line — a cheque that appeared across a page break and was read twice.
A person opens that one statement, deletes the duplicate row, and the month ties. Total human time: minutes. Note what did the work. Not the model's reading, which was 99% right and 100% unverified until the arithmetic ran. If your bookkeeping and HST records are involved, the client-side record duty is worth knowing too — see what HST bookkeeping records are required.
Tables that span pages. Headers repeat, and the second page's header becomes a data row. The control total catches it.
Negative numbers in brackets. A model may read (1,240.00) as positive. A sign-convention column and a total catch it.
Merged or wrapped cells. A long description wraps and the amount lands on the wrong row. This is the one a total will not always catch, because the sum is unchanged — which is why a sample review of five random rows against the source stays in the process permanently.
Silent truncation. A model asked for "the transactions" on a long statement may return the first forty and stop. A row count extracted separately from the document catches it.
The spreadsheet is now part of the client's file. If it forms part of records kept electronically, subsection 230(4.1) of the Income Tax Act requires it to remain in an electronically readable format for the retention period set by subsection 230(4) — generally six years from the end of the last taxation year to which the records relate.
For GST/HST records, subsection 286(1.2) of the Excise Tax Act requires records to be kept in Canada, in English or French, unless the Minister authorises otherwise. Extraction services that process and retain documents offshore engage that requirement directly, so where the tool stores files belongs in the vendor conversation.
And because client documents carry personal information, the OPC's generative AI principles apply to your use of the tool. Limiting collection is the principle most often broken here, because it is easier to upload the whole pack than the pages you need.
Can I do this with a formula in Excel?
For a consistent digital-text PDF, sometimes — and if you can, do, because a deterministic import is easier to defend than a model. AI earns its place when the layout varies between documents, which is exactly when a formula stops working.
How do I stop the model inventing a column?
Give it a fixed schema and require it to return an explicit null rather than a best guess for anything absent. Then treat nulls as a work queue rather than an error — a truthful blank is far more useful than a plausible number.
What if the client's PDF is a scan?
The same method applies, but the reading step is doing more work and failing differently. That is covered separately in can AI extract data from a scanned PDF.
A 30-minute call is enough to tell you whether AI pays for itself here.