Skip to content

Who We Help · Construction · Bookkeeping

Construction bookkeeping: job costing, WIP, and holdbacks done right

A contractor income statement means nothing job-blind. Construction bookkeeping is job costing at the point of capture, progress billing checked by a monthly WIP schedule, holdback accounts that keep the 10% out of your collections math, and subcontractor payments tagged for T5018 season. We keep books this way for GCs and subs working in Ontario and on US jobs.

By the AnalytIQ Accounting team · Last reviewed: August 12, 2026

Inspector reviewing progress on an active construction site

Every cost gets a job number on day one

Job costing fails at capture, not in the reports: a lumber invoice coded to a generic materials account instead of a specific job is unrecoverable three weeks later. We run QuickBooks Online Projects with a short cost-code list — labour, materials, subcontractors, equipment, other — and push every supplier bill through Dext with the job attached before it posts.

Labour goes in burdened. A carpenter's cost is not the wage rate; it is the wage plus employer CPP and EI, vacation pay, and WSIB premiums. Jobs costed at bare wages all look more profitable than they are, and the bids you price off those numbers repeat the mistake. We also track committed costs — subcontracts signed and purchase orders issued but not yet invoiced — because a job can look on-budget right up until the unbilled commitments land. Owned equipment gets charged out to jobs at internal rates, so your own iron does not make work look free.

Progress billing needs a WIP schedule to tell the truth

Progress invoices follow your schedule of values, not the work actually performed — so in any given month you are overbilled or underbilled on nearly every open job, and revenue on a billings-only statement is fiction. A monthly work-in-progress schedule converts billings into earned revenue using percentage of completion, and it is the first document a bonding company or lender asks to see.

WIP columnWhat it tells you
Contract value plus approved change ordersThe real job size — unapproved extras do not count yet
Costs to date against estimated total costPercent complete, and whether the estimate is drifting
Earned revenueContract value multiplied by percent complete — what the month really produced
Billed to dateWhat has actually been invoiced under the schedule of values
OverbillingCash held for work not yet done — a liability, and borrowed time
UnderbillingWork performed but not invoiced — an asset on paper, a warning in practice

Underbillings deserve the harder look. Sometimes they are billing lag; more often they are change-order work nobody has priced or a cost overrun the estimate has not yet admitted.

Holdbacks are not ordinary receivables

Ontario's Construction Act lets owners retain 10% of every invoice, which means a tenth of your billings sits outside normal collection cycles by design. Left inside regular accounts receivable, holdbacks make every aging report look broken and every collections conversation start from confusion. We carry holdback receivable as its own account — and the mirror holdback payable for the 10% you retain from your subs.

The timing rules reward that separation. GST/HST on a holdback generally becomes payable only when the holdback amount itself becomes due, and income recognition on holdbacks can trail certification — treatment your accountant can only apply if the books have isolated the amounts all year.

T5018s: painless only if the ledger did the work all year

When construction is your primary business and you pay subcontractors for construction services, CRA expects a T5018 information return reporting those payments, GST/HST included. We tag every subcontractor payment as it happens and collect the business number and a WSIB clearance certificate at onboarding, so the filing is an export from the ledger rather than an archaeology project through twelve months of e-transfers.

The same discipline protects you in an employee-versus-contractor review, because the records show who was engaged, for what scope, and on what terms.

US jobs change the bookkeeping before they change the tax

Take work across the border and new streams appear in the books: USD progress billings, state sales tax paid on materials, sometimes certified-payroll requirements on public projects. We keep US-job activity segregated by job and by currency, which is what makes the tax side manageable — state registration, withholding, and treaty questions are covered in our cross-border tax guide for contractors. For how the monthly close itself runs, see our bookkeeping services page.

Source: CRA — T5018 Statement of Contract Payments.

Common questions.

Do I really need a WIP schedule if I am a small sub?

If you progress-bill, yes. It is the only way to see over- and under-billing on open jobs, and it is the first document a bonding company or lender requests. Ours updates monthly from the same job-cost data.

How do holdbacks affect my HST?

GST/HST on a holdback generally becomes payable only when the holdback amount becomes due, not when you invoice the work. We track holdbacks in separate accounts so that timing is applied instead of lost.

What do you need for T5018 filing?

The legal name and business number of each subcontractor, collected at onboarding, plus payments tagged all year. The return reports amounts including GST/HST, and we prepare it straight from the ledger.

Related reading

Books that know where every job stands.

Book a consultation and get a plain answer on exactly what applies to you.

Client Reviews

Get a free quote

Request a free quote.

Tell us a little about your business and our team will respond within one business day.

Contact details

How can we help?

Type of enquiry select all that apply

Project information