For a Langley contractor, job costing means every dollar in and out is tied to a specific job: the draw you billed, the framing package you bought, the hours your crew spent on site, and the 10% your client is still holding back. Set that up properly in QuickBooks Online or Xero and you can read the margin on each job every month, not once a year when the accountant sends the statements.
New subdivisions and townhome blocks in Willoughby and Brookswood keep many Langley builders and trades running several jobs at once, often with the same subtrades moving between sites. That is exactly when a single profit figure stops being useful. This post covers the setup, the BC lien holdback rules as they affect the books, GST on progress draws, and the T5018 slips the CRA expects at the end of the period.
What does job costing actually track for a Langley builder?
Job costing tracks four numbers for every job: the contract value, what you have billed, what you have spent, and what is held back on each side. Everything else is detail underneath those four.
The detail matters, though. A useful job report for a Langley contractor usually breaks costs into a short list of cost codes that match how you estimate:
- Labour (your own crew, with payroll costs carried through to the job)
- Subtrades (framing, electrical, plumbing, drywall, roofing)
- Materials (lumber, concrete, fixtures, finishing)
- Equipment and rentals
- Permits, fees, and other job overhead
Change orders get their own line, so you can see whether extras were priced to cover their cost. Keep the cost code list short. Ten codes that are used correctly beat 40 that nobody fills in on the truck.
How do you set up job costing in QuickBooks Online or Xero?
In QuickBooks Online, create a project for each job and tag every bill, receipt, timesheet, and invoice to it. Use products and services for your cost codes, and classes if you also want to split results by division, such as new builds versus renovations. Projects are not available on every QuickBooks Online plan, so check yours before you build the structure around them.
In Xero, tracking categories do the same work. One category holds the job, and a second can hold the division or cost type. Xero also offers a separate Projects feature for time and cost tracking if your subscription includes it.
A few habits make either system reliable:
- Open the job before the first purchase. If the job does not exist in the ledger, the first bills land in general overhead and stay there.
- Tag at the point of capture. When a receipt from the building supply yard goes through Dext or a phone app, the job number goes with it.
- Run payroll through to jobs. Hours by job from a time app or a shared timesheet let wages, CPP, EI, and vacation pay land on the right project.
- Close finished jobs. Mark a job complete once the final holdback is collected and paid out, so it drops off the active report.
If your books have a backlog of untagged costs from a busy season, our catch-up service can rebuild the job history before you set up the routine.
How should progress billing and GST on draws be recorded?
Record each progress draw as an invoice against the job, showing the gross amount earned, the holdback retained, and the net amount due. That keeps billed-to-date and held-back-to-date visible on every job report.
GST timing follows the contract. The CRA's home construction guide (RC4052) says GST on a progress payment generally becomes payable on the earlier of the day the payment is made and the day it becomes due. For the holdback portion, the rule is different: GST on a holdback kept under provincial law or a written construction contract becomes payable on the earlier of the day the holdback is paid and the day the holdback period expires. In practice, the GST on the net draw goes on this period's return, and the GST on the holdback waits for its own trigger.
Remember the PST side as well. The province says real property contractors pay PST on taxable goods they acquire to fulfil a contract, on both lump-sum and time-and-materials jobs. That PST is a job cost, so the tax codes on supplier bills need to be right for the job report to be right.
At year-end, the gap between what you have billed and what you have earned on unfinished jobs becomes a question for your CPA, who decides how revenue on work in progress is recognised. Clean draw records make that conversation short.
How does the Builders Lien Act holdback work in the books?
Under section 4 of BC's Builders Lien Act, the person primarily liable on each contract and each subcontract must retain a holdback equal to 10% of the greater of the value of the work or material actually provided and the amount of any payment made. It applies whether the contract calls for periodic payments or payment on completion.
For a general contractor, that creates two balance sheet accounts that should never be netted against each other:
| Account | What it holds | Where it comes from |
|---|---|---|
| Holdback receivable | 10% your clients have retained from your draws | Each progress invoice |
| Holdback payable | 10% you have retained from your subtrades | Each subtrade bill you pay |
Two details from the Act are worth building into your process. First, a holdback must not be retained from a worker, a material supplier, an architect, or an engineer, so supplier bills from the lumber yard are paid in full. Second, where an owner is required to keep a holdback account at a savings institution (section 5 sets this up for contracts where the aggregate value of work and material is $100,000 or more), the money in it is held in trust and cannot be paid out without the agreement of the people who administer it.
Section 10 also says money a contractor or subcontractor receives on account of the contract price is a trust fund for the people engaged on that improvement. That is a legal obligation rather than a bookkeeping rule, and a construction lawyer is the right person to explain what it means for your contracts. From the books' side, it is one more reason to know, job by job, how much of each draw is already owed to the subtrades.
Keep the holdback schedule current
A one-page schedule listing every open holdback, receivable and payable, with the contract, the amount, and the expected release date, answers most of the questions a lender or a CPA will ask. We update ours with every monthly close.
When is a holdback released?
The holdback period ends 55 days after a certificate of completion is issued for the contract or subcontract. If no certificate is issued, it ends 55 days after the head contract is completed, abandoned, or terminated, or, where there is no head contractor, 55 days after the improvement is completed or abandoned.
Section 8 then allows the holdback to be paid after the period expires. Once it is paid, liens of the person paid and of anyone engaged under that person are discharged, unless a claim of lien has been filed or proceedings have started in the meantime. Claims of lien themselves must be filed no later than 45 days after the certificate of completion, or after completion, abandonment, or termination where no certificate exists.
A certificate of completion matters for cash flow. Under section 7, a contractor or subcontractor can ask the payment certifier to decide whether the work is complete, and the certifier must make that decision within 10 days of the request. For a framer who finishes months before the final finishing trades, asking for a certificate starts the 55-day clock on that subcontract instead of waiting for the whole project.
In the books, record the certificate date and the calculated release date beside each holdback. When the date passes and no lien is filed, the holdback can be invoiced or paid, and the GST on it is reported in that period. Any question about whether a lien has been properly filed, or whether to pay, belongs with your lawyer.
Who has to file T5018 slips, and when are they due?
You must issue a T5018 slip, or send the CRA a listing of payments, if all of these apply:
- More than 50% of your business income comes from construction activities
- You paid Canadian resident subcontractors for construction services
- Your payments to a subcontractor in the reporting period totalled more than $500, not counting GST/HST
The CRA's list of construction activities includes framing, drywall, electrical, plumbing, roofing, concrete, excavating, painting, fencing, and many more trades a Langley builder hires. Payments for goods only are not reported. Payments to non-resident subcontractors go on a different slip.
The payer chooses the reporting period: either the calendar year or the business's fiscal period. The T5018 return is due six months after the end of the period you choose. The amount in box 22 includes GST/HST and PST, even though the $500 test is measured without GST/HST. Amounts are reported in the year they are paid, not the year they were billed.
Two small habits save a scramble at filing time. Collect each subcontractor's business number or SIN, legal name, and address before you pay their first bill. And set up subtrades as their own supplier type in the ledger so the T5018 report pulls straight from the year's payments. If your main business is not construction, the CRA directs you to the T4A slip for those payments instead, and your CPA can confirm which applies.
What should a Langley contractor review every month?
Each month, look at one job report and one holdback schedule. The job report shows, for every active job, contract value plus change orders, billed to date, cost to date, held back on both sides, and the remaining budget. The holdback schedule shows what is owed to you, what you owe, and when each amount is expected to release.
That is the core of our monthly bookkeeping for builders and trades. Bills are posted to jobs, draws and holdbacks are recorded, payroll costs are carried through, and the bank and cards are reconciled, with the report ready by the 10th. At year-end, the same records feed straight into year-end preparation and your T5018 return.
For the wider picture of running the books for a Langley business, start with the Langley owner-operator's guide to bookkeeping. If you build homes to sell or rent, GST on new homes and rentals covers the tax records that come with them, and our construction and trades page describes how we work with contractors.
Questions owners ask
Do I have to hold back 10% from my subtrades if my client holds back 10% from me?
Generally yes. The Builders Lien Act puts the 10% holdback obligation on the person primarily liable on each contract and each subcontract, so a general contractor holds back from subtrades just as the owner holds back from the general contractor. Your lawyer can confirm how the Act applies to a particular contract.
Can I hold back 10% from my lumber yard or my own crew?
No. The Act says a holdback must not be retained from a worker, a material supplier, an architect, or an engineer. Pay those bills in full on their normal terms.
When do I charge GST on the holdback portion of an invoice?
The CRA says GST on a construction holdback becomes payable on the earlier of the day the holdback is paid to you and the day the holdback period expires. We set up the holdback so the GST on it is reported in the right period, not on the original draw.
My company does mostly landscaping maintenance with some hardscape builds. Do I file T5018s?
Only if more than 50% of your business income comes from construction activities. If construction is not your main source of income, the CRA says to report payments for services on a T4A slip instead. Your CPA can help you decide which side of the line you are on.
Can I switch my T5018 reporting period from the calendar year to my fiscal year?
The CRA lets the payer choose either the calendar year or the fiscal period, and the return is due six months after the end of the period chosen. Pick one, write it down, and use it consistently.
Should job costing live in my estimating software or in QuickBooks?
Keep estimates where they are and bring each job's budget and job number into the books. The ledger is where actual costs, draws, and holdbacks are recorded, so job reports should come from there.
