Treadstone Associates
Article · 10 min read

AI in construction accounting: what's real

The parts that work are the document parts — reading invoices, coding them, drafting the reconciliation. The parts that do not work are the parts where somebody has to be accountable for the number. Canadian record rules decide where that line falls.

Treadstone Associates · Updated 2026

Key takeaways

  • • Document capture and coding is where AI is genuinely mature; period close and judgment are not.
  • • Automation does not change what you must keep: six years, in Canada, in English or French, and electronically readable if stored digitally.
  • • The GST/HST rules prescribe exactly what a supplier document must show for you to claim the input tax credit — that list is the specification for your capture tool.
  • • Construction-specific items — holdback, progress billing, lien timing — are legal questions your accounting software will not answer.

Construction accounting is unusual in that most of the work is not accounting. It is chasing a delivery slip that never arrived, deciding which of eleven active jobs a load of gravel belongs to, and reconciling a supplier statement against invoices that were photographed on three different phones. That is a document-handling problem wearing an accounting costume, and document handling is precisely where machine learning has become reliable.

So the honest map is: the input side is largely solvable now, the coding side is solvable with your own history as training data, and the judgment side — is this a repair or a capital improvement, is this holdback releasable, is this subcontractor's claim complete — is not, and should not be handed over.

What does not change when you automate

Start here, because a surprising number of automation projects quietly break a record-keeping obligation and nobody notices for years. Subsection 230(1) of the Income Tax Act requires every person carrying on business to keep records and books of account at the person's place of business or residence in Canada, or another place designated by the Minister, in such form and containing such information as will enable the taxes payable to be determined. Paragraph 230(4)(b) requires records and books of account, together with every account and voucher necessary to verify the information in them, to be retained until six years from the end of the last taxation year to which they relate. Subsection 230(4.1) requires records kept electronically to be retained in an electronically readable format for that same period.

The GST/HST side runs in parallel and adds a location and language requirement. Section 286 of the Excise Tax Act requires every person carrying on business or engaged in a commercial activity in Canada to keep all records necessary to determine their liabilities and obligations; subsection 286(1.2) provides that unless otherwise authorised by the Minister, a record shall be kept in Canada in English or in French; subsection 286(3) sets a six-year retention period after the end of the year to which the records relate; and subsection 286(3.1) again requires electronic records to be kept in an electronically readable format for that period.

Three practical consequences for anyone choosing a tool. Ask where the data physically lives. Ask how you export everything — including attachments — in an open format if you cancel. And treat "the vendor has it" as insufficient: the obligation is yours. Our sister firm's note on record-keeping requirements that survive a CRA audit covers the same ground from the legal side.

The capture layer, and the fields that actually matter

Extraction models read a supplier invoice and return structured fields rather than a picture. Microsoft's prebuilt invoice model documentation describes output split into recognised text, tables and cells with bounding boxes and confidence, and a section containing the invoice-specific values and line items the model found — invoice ID, ship to, bill to, customer, total and line items among them. Google's Document AI processor list documents a comparable range of document processors.

What no generic model knows is which fields you are legally required to capture. In Canada that list is prescribed. Paragraph 169(4)(a) of the Excise Tax Act makes an input tax credit claim conditional on obtaining prescribed information, and section 3 of the Input Tax Credit Information (GST/HST) Regulations sets that information out in three tiers by total amount:

What the supporting documentation must show

Under $100: the supplier's or intermediary's name or business name, the invoice date (or the date tax became payable if no invoice was issued), and the total amount paid or payable.

$100 to under $500: all of the above, plus the registration number assigned to the supplier or intermediary under section 241 of the Act, plus the amount of tax — and where supplies have different status, an indication of the status of each taxable supply that is not zero-rated.

$500 or more: all of the above, plus the recipient's name or business name (or that of a duly authorised agent or representative), the terms of payment, and a description of each supply sufficient to identify it.

Read that as a configuration spec. If your capture tool does not reliably pull the supplier's GST/HST registration number off a $2,400 lumber invoice, it is not saving you work — it is deferring it to whoever eventually has to substantiate the claim. The regulation also defines supporting documentation broadly enough to include a record in a computerised or electronic retrieval or data storage system, which is what makes a well-built digital capture process acceptable in the first place.

The coding layer

Coding is the step where an invoice becomes management information: this belongs to job 2214, cost code 06-100, materials. Models are good at this because your own history is a rich training signal — the same supplier, the same description pattern, the same jobs, thousands of times. A well-configured system proposes the job and the cost code and gets it right most of the time on repeat suppliers.

Two disciplines make the difference between that working and quietly poisoning your reports. First, treat low-confidence codings as a queue, not a default — anything the model is unsure about goes to a person rather than to the most common answer. Second, watch for drift when a new job starts: the model will keep proposing last month's job number until it sees enough new examples, and a week of gravel coded to a finished job is a week of two wrong reports.

Coding is also where the connection to a project budget tool is made or lost. Committed costs, actual costs and the budget only reconcile if the cost codes in the field system and the accounting system are the same codes. That mapping is the single most valuable half-day of setup work in any construction accounting automation, and no model can do it for you.

Where construction breaks generic accounting AI

Three things in Canadian construction do not resemble ordinary trade accounting, and general-purpose tools handle them badly.

Holdback. Statutory holdback is withheld and released on a schedule that legislation, not your payment terms, controls. Our sister firm explains the Ontario position in what owners must withhold under the Construction Act. Booking holdback as an ordinary receivable and letting it age in your reports is a reporting error and a cash-flow blind spot at the same time.

Progress billing and prompt payment. In Ontario an invoice that meets the statutory requirements starts a clock, described in this note on prompt payment rules and deadlines. Your accounting system's idea of "overdue" and the statutory position are different things, and only one of them has consequences.

Lien timing. Deadlines run from events on the job, not from your ledger. See how much time a contractor has to register a lien. No model should be relied on to calculate that date, and no automation should be the only thing watching it.

Worked example

A 25-person GC, one month of payables

Before. Roughly 300 supplier invoices arrive by email, on paper and as photographs. A part-time bookkeeper keys them, guesses at job coding for anything ambiguous, and the project managers argue about job costs at month end.

After capture. Every document lands in one inbox. Extraction returns supplier, date, invoice number, GST/HST registration number, subtotal, tax and line items, each with a confidence value. Anything below the threshold is queued for review rather than posted.

After coding. The system proposes job and cost code from history. The bookkeeper confirms in bulk for repeat suppliers and works through the queue — typically the new suppliers, the split deliveries and anything for a job that started that month.

What actually improved. Not the arithmetic, which was never the problem. The improvement is that job cost reports are current on the 3rd instead of the 20th, and the argument between project managers now happens while the job can still be steered.

What did not change. Somebody still reviews the tax coding, still decides the repair-versus-improvement questions, and still signs the return.

A note on cost data and inflation

Historical job costs age. If you are using last year's actuals to set this year's rates, it is worth checking your assumptions against published series rather than instinct — Statistics Canada publishes building construction price indexes by type of building and division, which is a defensible reference point for how input costs have moved. Use it as a sanity check on your own numbers, not as a substitute for them.

Common questions

Will this replace my bookkeeper?

It changes what the role is. The keying disappears; the review queue, the exceptions, the reconciliations and the conversations with project managers do not. Firms that automate capture and then cut the review step tend to discover the cost of that decision at year end.

Can AI file my GST/HST return?

It can assemble and draft the numbers. A person remains responsible for the return, and for the adequacy of the records behind it — subsection 286(2) of the Excise Tax Act allows the Minister to specify what records a person must keep where the records kept are inadequate, which is a position no contractor wants to be in.

Is my financial data being used to train the vendor's models?

Ask, and get the answer in the agreement rather than in an email. Client and employee data in these systems is personal information in the sense the Office of the Privacy Commissioner describes in its summary of PIPEDA requirements, and consent and purpose limits apply to what you do with it.

Where should I start if I only do one thing?

Capture, configured to the input tax credit information tiers above. It is the step with the clearest specification, the least judgment, and the largest volume — which is exactly the profile of work worth automating first.

See where AI pays off first in your business.

A 30-minute call is enough to tell you whether AI pays for itself here.