Getting paid
Job costing for subcontractors: a field-first setup

Job costing is the difference between finding out a job lost money and finding out while you can still fix it. For a subcontractor, that gap is usually three to six weeks: the time between the labour hitting the field and the numbers landing in your accountant's month-end. By then the crew has moved on and all you can do is write it down as a lesson.
Done properly, job costing is not a report you read after the fact. It is a running total of what each job has cost you against what it was supposed to cost, updated as the work happens. We built SubTrade inside Quality Gypsum Services, a commercial drywall contractor in Calgary, Alberta, because our old setup told us the answer a month too late. Here is how a sub sets this up so it tells you today.
What job costing actually is for a sub
Strip away the accounting language and job costing answers one question: for this job, right now, am I ahead of my estimate or behind it?
To answer that you need three numbers per job, broken down by cost code:
- What you estimated the work would cost
- What it has actually cost so far (committed plus spent)
- How much work is left to do
Miss any one of those and you are guessing. Plenty of subs track the first two and skip the third, which is why a job can look fine at 60% billed and still lose money, because the last 40% of the scope is the hard part nobody costed.
Job cost is not the same as your accounting
Your bookkeeper tracks money in and money out for the company. Job costing tracks money against a specific job and a specific piece of that job. The two have to reconcile eventually, but they answer different questions. Accounting tells you whether the business is solvent. Job costing tells you which jobs are carrying the ones that are bleeding.
Start with cost codes you will actually use
The most common job costing mistake is a cost code list copied from a textbook: 40 codes, half of which nobody in the field understands. A foreman coding hours at 6:30 in the morning will pick the first plausible code and move on, and your data turns to noise.
Keep it to the codes that map to how your crews actually think about the work. For a drywall sub that might be framing, board, tape and mud, insulation, and cleanup. For an electrical sub, rough-in, devices, fixtures, and service. Eight to twelve codes per job is usually enough. You can always split a code later once you have data proving it matters.
The test for a good cost code: could a foreman explain to a new hire which code a task belongs to in one sentence? If not, it is too granular.
Get labour in from the field, coded, every day
Labour is where a sub's margin is won or lost, so this is the part that has to work. Materials you can reconcile off invoices. Labour disappears if you do not catch it the day it happens.
That means the crew clocks in on a phone, against the job and the cost code, and the foreman confirms it before the day closes. Not a paper timesheet retyped on Monday, when nobody remembers whether Tuesday's four hours went to board or to tape. Crew-level time tracking is the foundation of the whole system, because every other number depends on it being right.
The payoff is that hours times rate times cost code rolls straight into a live job cost view with nobody rekeying anything. That is the entire point of costing from the field instead of from the office: the number is current, not a month old.
Do not forget burden
Raw wage is not your labour cost. A field hand at $38 an hour costs you more like $50 once you load in WCB, statutory benefits, vacation, and your share of payroll taxes. If your job costing uses bare wage, every job looks 25 to 30% more profitable than it is, and you will bid the next one too thin. Set a burdened rate per worker class and cost against that.
Track committed cost, not just spent cost
Here is the number most subs miss. The day you issue a purchase order for $18,000 of material, that money is committed even though you have not paid the invoice yet. If your job cost only counts spent dollars, the job looks healthy right up until the invoices land.
A real job cost picture separates three things:
| Column | What it means |
|---|---|
| Estimated | What you priced the cost code at when you bid |
| Committed | POs issued and labour clocked, whether or not billed to you yet |
| Cost to complete | Your honest estimate of what is left |
Add committed to cost-to-complete and compare it to estimated. That is your projected final cost, and it is the number that tells you the truth about the job while there is still job left.
Read the job weekly, not monthly
Job costing only works if someone looks at it on a cadence short enough to act. Monthly is too slow for a sub running crews that turn over a scope in two or three weeks. A fifteen-minute review every Friday, one line per active job, catches the job going sideways while you can still move a crew, reprice the remaining scope, or get a change order moving.
What you are scanning for is simple: any cost code where committed plus cost-to-complete has crept past estimated. That is a job telling you it is about to lose money. On our own jobs, the codes that blow up are almost never the big obvious ones. It is cleanup, or a rework nobody logged, or hours quietly bleeding onto a job long after the scope was done.
You do not need variance analysis or full WIP reporting to get value here, though both build on the same data once your costing is solid. Start with a clean weekly read and the rest follows.
Where change orders fit
A job cost report that ignores unsigned extras lies to you in your own favour. If your crew spent 30 hours on directed work that has not been priced or signed, that cost is sitting in your job as a loss until the change order catches up. Every extra needs to be logged the day it happens and priced from your own labour rates, so it shows up in the job cost as revenue you are owed, not just cost you spent. This is why change order management and job costing have to live in the same system. Chase the paper and your costing tells the truth. Lose it and your best job on paper is actually your worst.
From field data to a defensible invoice
The same coded hours that drive your job cost also back your billing. When you bill progress against a schedule of values, the labour and installed quantities behind each line come straight out of the costing, which means your progress billing is defensible instead of a guess. For how progress draws and holdback work once you have billed, see our walkthrough on progress billing and holdback in Canada.
You can see how labour, costing, change orders, and billing fit into one loop in our construction management features. The trade specifics matter too: what you cost by the square foot in drywall contractor software is a different unit from what you cost by the device in electrical contractor software, and generic costing that only understands "dollars" understands neither.
SubTrade starts at $299/month CAD with a 14-day free trial and no credit card required, so you can run your next few jobs through it and see your real installed cost before month-end instead of after.
FAQ
What is job costing for a subcontractor?
It is tracking the cost of each job against its estimate in real time, broken down by cost code, so you know which jobs are making money while the work is still in progress rather than at month-end.
What is the difference between job costing and accounting?
Accounting tracks money in and out for the whole business. Job costing tracks cost against a specific job and cost code. They reconcile eventually, but job costing is what tells you which individual jobs are profitable.
What cost codes should a subcontractor use?
Use eight to twelve codes that match how your crews describe the work, such as framing, board, tape, insulation, and cleanup for drywall. Keep them simple enough that a foreman can code hours correctly in the field without thinking hard.
How often should I review job costs?
Weekly for an active sub. A fifteen-minute Friday review catches a job going over while you can still move a crew or reprice the remaining scope. Monthly is too slow when crews turn over a scope in two to three weeks.
Why is my job cost different from my accounting profit?
Usually because job cost includes committed costs and burdened labour that your books have not caught up to yet, or because unsigned change orders are sitting as cost with no revenue booked against them. Reconcile the two and the gap explains itself.
SubTrade runs time tracking, change orders, daily logs and progress billing on one plan. 14-day trial, no credit card.

