How to track sub costs per job, stay 1099 compliant, and prevent subcontractor overruns from destroying your job margins — all inside QuickBooks.
Subcontractors are often the largest variable cost in a roofing company — and the most commonly mismanaged in QuickBooks. Sub payments coded to a generic expense account, not assigned to jobs, and missing 1099 tracking create three separate problems: inaccurate job costing, IRS exposure, and zero visibility into which subs are hurting your margins. Here's how to fix all three.
Every sub should be a Vendor in QuickBooks with W-9 information on file before the first payment. The setup checklist:
Sub costs that aren't assigned to a Project don't appear in your job profitability report. If a $6,000 sub invoice for the Henderson job is entered as a general bill without a Project assignment, the Henderson job shows zero subcontractor cost — and appears far more profitable than it actually is.
The fix: when entering a sub bill, always select the Project in the Customer/Project column on the bill line. This links the cost to the job and makes it visible in the Project Profitability report.
Subcontractor payments (1099) and employee wages (W-2) have different tax treatments and different margin profiles. They must be in separate QuickBooks accounts:
| Cost Type | QBO Account | Tax Treatment | 1099 Required? |
|---|---|---|---|
| Sub crews (1099) | Subcontractor Labor (COGS) | No payroll taxes owed | Yes (if $600+) |
| Your W-2 crews | Employee Labor — Field (COGS) | Payroll taxes, W-2 at year-end | No — W-2 instead |
Misclassifying W-2 employees as 1099 subcontractors is an IRS audit trigger with significant back-tax liability. If a worker shows up every day, uses your tools, and works exclusively for you — they are likely an employee regardless of how they're paid.
Once sub costs are correctly assigned to Projects, the Project Profitability report becomes a powerful management tool. Sort jobs by gross margin and look at the sub cost column: if the lowest-margin jobs consistently have the highest subcontractor cost percentage, you have a sub pricing or selection problem — not a bidding problem.
Target subcontractor cost at 12–20% of job revenue on residential work. Above 25% consistently means sub rates have outpaced your bid pricing. The solution is renegotiating sub rates, adjusting your bid to reflect current sub costs, or self-performing more work with your own crews.
Book a free 15-minute QuickBooks screen-share. JobCostBooks sets up subcontractor tracking, job cost allocation, and 1099 compliance for every roofing client.
Book My Free 15-Min Assessment →$10K profit leak guarantee in 90 days · Plans from $600/mo · hello@jobcostbooks.com