All posts
Subcontractors & Crews

How do you track sub margin per job?

Track sub margin per job by capturing three numbers: what you bid the customer, what you pay the sub, and actual hours worked. This post walks through the mechanics of tracking it and why your accounting structure matters.

Separate your subs from overhead in your accounting

Sub margin only makes sense if you're tracking sub labor costs separately from your own crew labor and overhead. This means your job costing needs to split out a line item for subcontractor payments. If everything flows into one "labor" bucket, you can't see which jobs are losing money on subs specifically. Create a job code structure that breaks out: labor (your crew), subs (external), materials, and equipment. When a sub invoice comes in, code it to that job's subcontractor line. This takes five minutes per invoice but gives you clarity on whether you're pricing subs right. A roofing contractor billing a customer 40 per square but paying a sub 28 per square needs to see that 12 per square margin explicitly. If you can't isolate it in your accounting, you're flying blind.

Calculate margin after all job costs are known

Don't calculate sub margin until the job is done and all invoices are in. A sub might finish their work in week two, but materials arrive week four and change order invoices trickle in for another month. Your margin calculation will be wrong if you're using incomplete data. Once the job closes: total what you billed the customer for that scope, total what you paid the sub (and any related costs), subtract to get your gross margin on that sub work. If you hired a sub for a foundation pour at 3,200 and billed the customer 5,100 for that scope, your margin is 1,900 or about 37 percent. That's your real number. Track it in a spreadsheet, your accounting software, or your CRM if it has job costing built in. Review monthly which subs are hitting your target margin and which aren't.

Watch for hidden costs that eat margin

Subcontractor margins disappear fast when you're not accounting for friction costs. These include: change order disputes where you have to split the extra cost with a sub, warranty callbacks on sub work that you eat, and time spent managing or reworking a sub's mistakes. A concrete contractor might bid a driveway at a 35 percent sub margin on paper. But if the sub pours it six inches off grade and you have to manage a rework, that margin drops to 15 percent once you factor in your labor coordinating it. Start tracking any job where you had to spend your own time fixing or managing a sub's work. These become your margin-killers. Over time you'll notice patterns. Maybe one electrical sub consistently creates callbacks. Maybe another takes longer than estimated. That's the real data for adjusting future bids and deciding which subs to hire again.

Use estimates and actuals to improve your bidding

After you've tracked sub margins on 10 to 15 jobs, you have real data. Compare what you estimated a sub would cost versus what they actually charged. A painter estimated at 800 labor hours at 25 per hour (20,000 total) but actual invoice was 24,500. That's valuable. It tells you your rate estimate was close but your hour estimate was high. Next job, use 950 hours at 25 per hour instead. Over time your estimates get tighter and your margins more predictable. The contractors making real money on subs aren't the ones guessing at rates. They're tracking what subs actually cost on every job and feeding that back into their next bid. Spend one hour a month reviewing your sub costs from the previous month and updating your estimating assumptions. That hour pays for itself in tighter pricing.

Bottom line

Start by splitting out subcontractor costs in your accounting, then calculate margin only after each job is fully invoiced. Track actual costs against estimates monthly to build reliable bidding data over time.

See it in 15 minutes.

Walk through Lowkly with someone from our team — quotes, invoices, scheduling, the whole thing.

Book a Call