Construction accounting tracks revenue and cost by contract instead of by calendar month, because a construction business's real unit of profit is the job, not the period. That single difference — job costing, work-in-progress (WIP) measurement, holdbacks, and progress billing — is what separates construction accounting from the accounting a typical small business needs, and getting it wrong is why profitable-looking contractors still run out of cash.
This guide covers the mechanics end to end. For the month-end operational routine, see the companion construction bookkeeping guide; for the deep mechanics of holdbacks and percentage-of-completion, see holdbacks and percentage-of-completion in construction. For a shorter overview of the whole industry, see the construction industry page.
Job costing by contract
Every dollar a contractor spends should be tied to a specific job, not lumped into a general expense category. That means:
- Labour — timesheets coded to a job (and often a cost code within the job — framing, electrical, sitework), not just an employee.
- Materials — purchase orders and invoices tagged to the job they were bought for, including material bought for one job but used on another (a common source of margin distortion when it isn't corrected).
- Subcontractor cost — each sub's invoices matched to the job and cost code, with holdback owed to the sub tracked separately from the amount actually payable now.
- Equipment — owned or leased equipment allocated to the jobs that used it, rather than expensed as a flat overhead line (covered in more detail below).
Without job costing, a contractor only sees a single blended margin across all work — which hides the jobs that are quietly losing money behind the ones that are profitable enough to cover for them.
Work-in-progress (WIP) schedules
A WIP schedule is the tool that turns job cost data into a real measure of profitability. For every open contract it lists:
| Column | What it captures |
|---|---|
| Contract value | The total agreed price for the job |
| Costs incurred to date | Everything spent on the job so far |
| Estimated cost to complete | What is still needed to finish |
| Percentage complete | Costs incurred ÷ total estimated cost (cost-to-cost method) |
| Revenue earned to date | Percentage complete × contract value |
| Billed to date | What has actually been invoiced |
| Over-billed / under-billed | The difference between revenue earned and amount billed |
The last line is the one that matters for cash-flow planning: an over-billed job means the contractor has collected more than it has earned (good short-term cash, but a liability that has to unwind); an under-billed job means work is ahead of billing (a receivable the contractor hasn't invoiced yet, and a cash drag). See holdbacks and percentage-of-completion for the full worked mechanics of this calculation.
Revenue recognition: percentage-of-completion vs completed-contract
Canadian accounting standards give contractors two broad approaches to recognizing revenue on a long-duration contract:
- Percentage-of-completion recognizes revenue as work progresses, matched to costs incurred or another reliable progress measure. This is the standard approach for most ongoing construction contracts under both ASPE and IFRS, because it reflects economic reality: a half-finished job has earned roughly half its revenue.
- Completed-contract defers all revenue recognition until the contract is substantially complete. It applies in narrower circumstances — very short jobs, or situations where the outcome or progress cannot be reliably estimated.
ASPE and IFRS both use percentage-of-completion-style approaches for the general case, but the two frameworks differ in the detail of how they define and apply it. Which method — and which measure of progress — is appropriate for a specific contract and reporting framework is a determination to make with your accountant; this page describes the concepts at a level meant to inform that conversation, not to replace it.
Holdbacks: receivable and payable
A holdback is a percentage of each progress payment that the paying party is required to retain until the project reaches substantial completion, under provincial construction or builders lien legislation. Holdback rules — the percentage retained, the release trigger, and the lien timeline that follows — are set provincially and differ by province; do not assume one national rule. Two things follow from that for the books:
- Holdback receivable. Money a contractor has earned and billed but cannot collect yet because the owner is holding it back. It is not a bad debt — it is a real receivable, just a delayed one, and it needs to be tracked per project so it doesn't get lost in a general accounts-receivable balance.
- Holdback payable. Money a contractor is, in turn, required to retain from its own subcontractors. That liability sits on the books until the sub's holdback release conditions are met.
Full mechanics — including how holdbacks interact with GST/HST timing — are in holdbacks and percentage-of-completion.
Progress billing and over/under-billings
Contractors bill in draws as work advances rather than issuing one invoice at the end. Progress billing paperwork typically includes a schedule of values (the contract broken into billable components), a percentage-complete certification for each draw, and — on larger commercial work — an owner or consultant sign-off before payment releases. The gap between what has been billed and what has actually been earned (see the WIP table above) is the over/under-billing position that shows up on the balance sheet as a contract asset or contract liability.
Subcontractor management and compliance
A general contractor's own financial health depends on how well it manages its subcontractors:
- T5018 reporting. Businesses whose primary activity is construction generally have to report payments made to subcontractors for construction services to the CRA. This needs clean subcontractor payment records kept through the year, not reconstructed at filing time.
- Holdback owed down the chain. A GC that holds back from its subs while the owner holds back from the GC has two holdback positions to track simultaneously.
- Compliance documentation. Workers' compensation coverage, insurance certificates and lien waivers are commonly required before releasing payment to a subcontractor — a compliance layer that most industries don't have.
For the separate question of whether a given worker is an employee or a subcontractor in the CRA's eyes, see contractor vs employee: how the CRA decides — misclassification risk is real in a trade that mixes crews and subs on the same job site.
Equipment vs job cost allocation
Equipment — trucks, excavators, tools — is a capital asset deducted over time through Capital Cost Allowance (CCA), not expensed when purchased. The question construction accounting adds on top of that is allocation: whether equipment cost (depreciation, fuel, maintenance, or an internal rental rate) gets charged to the jobs that used it, or sits as unallocated overhead. Charging it to jobs gives a truer picture of which contracts can actually absorb the equipment cost and which can't — important when bidding similar work in the future.
What a surety or lender expects to see
Bonding companies and lenders read construction financials differently from a typical small-business file. They typically want:
- A current WIP schedule that reconciles to the general ledger.
- Job-cost detail supporting the gross margin shown on each contract.
- An aging of holdbacks receivable, separate from regular accounts receivable.
- Interim or year-end financial statements prepared under a consistent, disclosed revenue-recognition policy.
A contractor that can produce this on request — not scramble to build it once a year — has an easier time securing financing and bonding capacity for the next job.
How RN Canada helps
RN Canada builds and maintains the job-costing, WIP and holdback tracking that Alberta and BC construction businesses need to see true project profitability and satisfy lenders and bonding companies. Our founder, Ozgur Duymaz, holds a Ph.D. in accounting and finance and is a CPA (Canada), ACCA (UK) and CMA (US). See our bookkeeping, payroll and tax filing service or talk to us about your construction books.
This page is general information, not personalized advice. Speak to us about your specific situation.
Frequently asked questions
A normal small business tracks revenue and expense by month. A construction contractor has to track them by contract: job costing assigns every labour hour, material invoice and subcontractor cost to a specific job, work-in-progress (WIP) schedules measure how much of each contract is earned but not yet billed, and holdbacks tie up a slice of cash for months after the work is done. Get any of the three wrong and the monthly P&L stops meaning anything.
A WIP (work-in-progress) schedule lists every open job with its contract value, costs incurred to date, billings to date, and the resulting over-billing or under-billing. It is how a contractor and anyone reading the financials — a lender, a bonding company, an owner — sees true job profitability instead of a blended, monthly number that swings with billing timing rather than actual progress.
Percentage-of-completion recognizes revenue as work progresses and is the standard approach for most ongoing construction contracts under both ASPE and IFRS, because it matches revenue to the work actually done. Completed-contract, which defers all revenue recognition to substantial completion, applies in narrower circumstances — short-duration jobs or where reliable progress estimates are not available. Which one applies to a given contract is a judgment call to confirm with your accountant.
A holdback is a percentage of each progress payment that the owner is required to retain, under provincial construction/builders lien legislation, until the project reaches substantial completion. It is not a discount or a bad debt — it is revenue you have already earned and invoiced but cannot collect until the holdback period runs out. It belongs on the balance sheet as a holdback receivable, not written off or ignored.
Yes. A GC's job cost has to separate labour, materials and subcontractor cost per job, and Canadian construction businesses generally have T5018 (Statement of Contract Payments) reporting obligations for amounts paid to subcontractors. Subcontractor compliance — WCB/WSIB coverage, holdback obligations owed down the chain, and payment timing — also has to be tracked, because a GC's own cash position depends on it.
Typically a current WIP schedule reconciled to the general ledger, job-cost detail supporting gross margin by contract, an aging of holdbacks receivable, and interim or year-end financial statements prepared under a consistent revenue-recognition policy. A contractor that can produce this on request, not just at year-end, has an easier time with financing and bonding capacity.