What Do Most Roofing Contractors Miss When Calculating Job Cost?
The typical roofing contractor calculates job cost as: materials ordered for the job + what they paid the crew for those days. This approach misses, at minimum: labor burden (35–50% above wages), overhead allocation, material waste beyond what was ordered, equipment and vehicle depreciation, and callback costs averaged over the job portfolio. The result is a job margin that looks like 35–45% but is actually 12–22% when all costs are included.
This isn't just an accounting problem. It's a business-threatening one. Contractors who don't know their true job cost bid the wrong price, hire too fast, and take on more work to "cover overhead" — not realizing the overhead is already eating their margin on every job.
Direct Materials: The Costs You Know (But Still Undercount)
Direct materials are the most visible cost line and the one contractors get closest to right — but still undercount by 10–15% consistently. Here's every materials cost that belongs in a job:
| Material Category | Example Items | Common Counting Mistake |
|---|---|---|
| Primary roofing material | Shingles, TPO membrane, metal panels | Bidding squares needed, not squares ordered (+10-15% waste) |
| Underlayment | Synthetic felt, peel-and-stick, ice & water | Forgetting valleys, eaves, and ridge coverage area |
| Flashings | Step, counter, chimney, pipe boots, drip edge | Estimating by linear foot, not including all penetrations |
| Fasteners | Roofing nails, screws, cap nails, staples | Often expensed as shop supply rather than job cost |
| Ridge and ventilation | Ridge cap, ridge vent, static vents, power vents | Measured correctly but not added to job material total |
| Dump fees | Dumpster rental, transfer station tipping fees | Often coded to "supplies" rather than job material cost |
On a typical 30-square residential re-roof, contractors order 33–34 squares and use roughly 31.5–32. The 1.5–2 squares of overage are a real cost of the job — not a supply expense. Code them to the job, not to a general materials account. Also see: how to set up job costing in QuickBooks to make sure every materials receipt hits the correct job.
What Is Labor Burden and Why Does It Matter for Roofing?
Labor burden is every dollar you pay the government and insurance companies because you have employees. It runs on top of wages and is paid entirely by the employer. For roofing contractors, labor burden is especially high because workers' compensation insurance for roofing is the most expensive in any trade — typically 15–25% of payroll.
| Burden Component | Rate | On $25/hr Wage |
|---|---|---|
| FICA (SS + Medicare) | 7.65% | $1.91/hr |
| FUTA (federal unemployment) | 0.6–2.4% | $0.15–$0.60/hr |
| SUTA (state unemployment) | 1–5% (varies) | $0.25–$1.25/hr |
| Workers' comp (roofing) | 15–25% | $3.75–$6.25/hr |
| General liability (portion) | 2–4% | $0.50–$1.00/hr |
| Paid PTO / sick leave | 3–5% | $0.75–$1.25/hr |
| Total burden | ~35–45% | $7.31–$11.35/hr |
| Fully loaded wage | $32.31–$36.35/hr |
When you calculate job labor cost at $25/hour and your true cost is $34/hour, you're understating labor cost by 36%. On a job with 80 labor hours, that's an $720 undercount per job. For a contractor running 150 jobs per year, this is $108,000 in annual profit they think they have but don't.
How Should Overhead Be Allocated to Roofing Jobs?
Overhead — the costs that exist whether you run one job or one hundred — must be allocated to each job to understand true profitability. Common overhead items for a roofing contractor:
- Owner salary (the portion that isn't tied to field work)
- Office staff wages and burden
- Business insurance (GL policy base premium, not the per-job portion)
- Vehicle depreciation and maintenance beyond direct job use
- Software, phones, office supplies, storage
- Advertising and marketing spend
- Tools and small equipment replacement
- Accounting, legal, and professional fees
How to allocate it: Add up all overhead costs for the year. Divide by total revenue. This gives you an overhead rate — typically 15–25% for a well-run roofing company. Apply this rate to each job's revenue to get the overhead allocation for that job.
Most contractors never do this. Their P&L shows gross margin (revenue minus direct costs) as their profitability metric. Gross margin looks great at 35%. Net margin — after overhead — is typically 10–18% for a healthy roofing company, not 35%. The gap between what they think they make and what they actually take home is the overhead they don't account for at the job level.
What About Waste, Callbacks, and Vehicle Costs?
Material Waste
Industry standard material waste for roofing is 10–15% of the area measured. Hip and valley roofs, complex geometries, and cut waste at penetrations can push this to 20%. Most estimators apply a waste factor in their bids but don't track whether actual waste matched the estimate. In QuickBooks, if you order 34 squares but only invoice the customer for 30, the difference goes to Cost of Goods Sold — on the job, as material waste.
Callbacks and Warranty Work
The roofing industry average for callbacks and warranty claims is 1–3% of annual revenue. A contractor doing $1.5M in revenue should budget $15,000–$45,000 per year in callback labor and materials. This is a real cost — but most contractors don't allocate it to jobs. The right approach: create a "Warranty/Callback" job cost line and track actual callback costs per job. Over time, you'll see which jobs (or which crews) generate disproportionate callback costs — critical quality management information.
Vehicle and Equipment Costs
Every mile driven to a job in a company vehicle is a job cost. Fuel, maintenance, and depreciation on a typical roofing crew truck run $0.65–$0.85 per mile fully loaded. A job 25 miles from the shop uses 50 miles of round-trip travel per day. Over a 5-day job, that's $162–$212 in vehicle cost that belongs on the job — not in the general overhead bucket.
A Full Job Cost Example: $18,000 Residential Re-Roof
Here's the same job calculated two ways — the way most contractors calculate it, and the true cost method:
| Cost Line | Typical Method | True Cost Method |
|---|---|---|
| Direct materials (25 squares) | $4,800 | $4,800 |
| Material waste (12%) | $0 (not tracked) | $576 |
| Dump fees | $0 (coded to office) | $320 |
| Direct labor (60 hrs × $26) | $1,560 | $1,560 |
| Labor burden (40% on direct labor) | $0 (not calculated) | $624 |
| Vehicle/travel (50 miles × 5 days × $0.72) | $0 (in overhead) | $180 |
| Overhead allocation (18% of $18,000) | $0 (on P&L, not job) | $3,240 |
| Callback reserve (1.5% of revenue) | $0 | $270 |
| Total Costs | $6,360 | $11,570 |
| Job Margin | $11,640 (64.7%) | $6,430 (35.7%) |
The job that looked like 65% gross margin is actually 36% net margin after true costs are included. Both contractors took home the same check — but only one knows how much of it is actually profit versus how much belongs to overhead that hasn't been billed yet. For more on what your P&L should show, see the roofing contractor P&L report guide.
How Do You Track True Job Cost in QuickBooks?
QuickBooks Online Projects is the right tool. Here's the setup:
- Create a Project for every job before the first material purchase. Every bill, receipt, and expense gets assigned to the Project immediately — not at month-end.
- Set up a fully loaded labor rate as a Service item in QBO. If your base wage is $26/hour and your burden rate is 40%, your loaded labor rate is $36.40/hour. Use this rate when entering time on jobs, not the base wage.
- Code dump fees and material waste to the job, not to office supplies or general overhead. Every dollar that was spent because of a specific job belongs in that job's cost column.
- Allocate overhead monthly by running your overhead rate against each job's revenue in the Project Profitability report. Some contractors do this as a manual journal entry; others use the overhead allocation feature in QBO Advanced.
- Track callbacks as a separate Project or as a cost category on the original job. A separate "2026 Callbacks" Project with all warranty work coded to it gives you annual warranty cost data.
For a step-by-step QuickBooks setup, see QuickBooks job costing for roofers. For help finding the $10K+ in hidden costs your current setup is missing, book a free 15-minute assessment.
Also relevant: why roofing contractors stay busy but not profitable — usually because true job cost is this much higher than they knew.
Find Out What Your Jobs Actually Cost
JobCostBooks sets up the QuickBooks job costing structure that shows you true margin on every job — materials, labor burden, overhead, and all. Book the free screen-share to see your current numbers.
Book Free Assessment →