Updated Checked by the Tax-Services.ca editorial team How we check
Bookkeeping for a construction company differs from most trades in one way that matters: your money and your costs belong to jobs, not to the month. You track each project’s revenue, materials, labour and subcontractors separately, and you report what you pay subcontractors to the CRA on a T5018 if construction is your main income.
That’s the short version. The rest is about keeping those job files honest.
Why does job costing come first?
A general ledger tells you the company made money. It won’t tell you which project lost it. Set up each job as its own class or cost centre in your accounting software, then code every invoice, timesheet and fuel receipt to a job number at the moment it arrives. Catching it later means guessing.
Keep three buckets per job: materials, labour (yours and subcontractors’) and equipment or overhead you decided to allocate. Compare them with the bid every month. A job that’s 60 per cent spent and 40 per cent built is a phone call to the client, not a surprise in the final invoice.
Here’s what that looks like in numbers. Say Dave in Saskatoon bids a deck-and-addition job at $120,000. Six weeks in, the books show $30,000 of materials, $28,000 of crew labour and $14,000 of subcontractors, so $72,000 spent. That’s 60% of the bid. If the site walk says the work is about 40% done, the same pace puts the finished job near $180,000 ($72,000 divided by 0.40). That’s a $60,000 hole you can still do something about, because you’ve found it in week six and not after the last invoice.
Shared costs are the awkward part. A truck used on four sites can go to one overhead account and be split by a simple rule, such as labour hours. Pick a rule, write it down and stick to it, since changing the method between jobs makes the comparison meaningless.
What is the T5018 and who has to file it?
If more than half of your business income comes from construction, you report payments to subcontractors for construction services on a T5018 slip. The CRA’s threshold is more than $500 in the year per subcontractor, not counting GST/HST. When you fill in the slip, box 22 includes the GST/HST (and PST where it applies).
| Payment | Reported on |
|---|---|
| Resident subcontractor, construction services, over $500 | T5018 |
| Goods only (materials with no service) | Not reported |
| Non-resident subcontractor | T4A-NR |
| Construction is not your primary income | T4A |
The report counts payments in the year you make them, whether by cheque, cash, barter or offset. The T5018 is due six months after the end of the reporting period you chose, calendar year or fiscal year, as the CRA’s page on when to file information returns explains. Late-filing penalties apply return by return, and they add up fast on a big roster of trades.
Ask every subcontractor for their legal name, business number and address on day one. Collecting that after the job ends is a chore nobody wins.
How does HST show up on a construction job?
Take a subcontractor’s invoice of $48,000 in Ontario. At 13%, the GST/HST calculator gives $6,240 of HST, so you’re billed $54,240. If you’re a registrant, that HST is normally something you claim back, but only when the invoice carries the supplier’s registration number and the paperwork holds up. That is why the invoice file is the whole game.
Say a contract states one price with tax included, for example $1,130 in Ontario. The HST reverse calculator pulls out $130 of tax and $1,000 of price. Booking the full $1,130 as the cost overstates the expense and understates what you can claim.
The GST/PST tool on this site taxes every purchase at 12% in British Columbia, so don’t use it for construction materials or services there. PST on construction has its own rules, and they aren’t covered here.
What about holdbacks and progress billing?
Most construction contracts let the owner keep back part of each payment until the work is done. The percentage and release timing come from your province’s legislation and your contract, so use the contract itself rather than a rule of thumb. What the books need is simple: record the holdback as a receivable, not as cash you have, and track its release date per job.
Progress billing works the same way. Invoice against milestones, book the revenue by the method your accountant has agreed with you, and keep the schedule of values with the job file. An unbilled job that has spent money is the sort of thing that hides for months.
What belongs in each job file?
One folder per job, on paper or on the drive, with the signed contract and every change order at the front. Behind that go the bid sheet, supplier and subcontractor invoices, timesheets, permits, progress invoices and the holdback schedule. Each change order should carry a date and a price before the work starts, since “we’ll sort it out at the end” is how a $4,000 extra turns into an argument and an unpaid invoice.
Photograph the work at each stage too. It costs nothing and it settles a dispute about what was finished by a given date faster than any email thread.
Payroll for a site crew
Crews are usually the biggest cost, and the easiest place to lose track. For an Ontario employer paying four workers $1,500 each per week, the payroll remittance calculator shows $480.52 to remit per worker, $1,922.06 for the four, per week. That’s income tax, CPP and EI held back, plus CPP and EI you add on top. Set that money aside each pay, because it goes to the CRA, and treat it as spoken for the minute the cheques are cut.
Code hours to jobs from the timesheet, not from memory on Friday afternoon. Workers’ compensation premiums and vacation pay are extra and aren’t in that estimate.
Mistakes and limits
Mixing personal card spending with job costs is the classic. Next is skipping the T5018 in year one because “everyone pays cash”. Then there’s booking a deposit as revenue before any work exists.
A corporation that earns $300,000 in taxable income in Ontario pays about $35,088 by our corporate tax calculator, roughly 11.7%. That’s a ballpark, not a quote. Ontario cut its small business rate on 1 July 2026, and for a calendar year we blended the two rates by days, which isn’t a published figure. Related companies sharing one business limit will pay more.
Our sources
T5018 rules come from the Canada Revenue Agency‘s T5018 pages. Retention rules follow the CRA’s guidance on keeping records, which asks for six years from the end of the last tax year. Tax rates come from our 2026 calculators, built on CRA and federal data. Provincial holdback laws and PST rules were not checked for this page, and nobody in government has reviewed it.
Frequently asked questions
Do I have to file a T5018?
If more than 50% of your business income comes from construction and you paid a resident subcontractor more than $500 (before GST/HST) in the year, yes.
Is GST/HST included on the T5018?
Box 22 includes GST/HST and PST where they apply. The $500 threshold is measured before GST/HST.
Should I track each job separately?
Yes. Job costing shows which project made or lost money, which a single ledger cannot.
How long do I keep job records?
The CRA's general rule is six years from the end of the last tax year the records relate to.
How are holdbacks treated?
Rules and percentages vary by province and contract, and we could not confirm them. Record the holdback as a receivable and follow your contract.
- Self-employed taxes in Canada: income, CPP and GST
How tax works when you are self-employed in Canada: reporting income and expenses, paying both halves of CPP, instalments and when to register for GST