You bid every tear-off with the same $450 disposal line because that is what it cost on the last ten jobs. Then a roof with two layers of shingles comes in, the dumpster fills halfway through, and the dump ticket shows an overweight charge. The invoices land in one account called Dump Fees, and the job still shows a healthy margin on paper.

Where Disposal Cost Hides

Disposal is rarely one invoice. A single tear-off can generate a dumpster rental, a second swap-out, an overweight or tonnage fee, a landfill charge, and crew time spent on magnet sweeps and cleanup. These bills arrive from different vendors on different days, and they often get coded to overhead or a general supplies account.

Two things go wrong. First, the job shows a margin that is too high, because the cost never reached it. Second, your estimating default never improves, because no one can compare the disposal line you bid to what the job actually cost. It is the same blind spot behind most margin numbers that look better than reality.

Worked Example: A Two-Layer Tear-Off

All figures are illustrative. Take a 30-square roof sold at $14,400 ($480 per square) with a $450 disposal line in the estimate, based on a single-layer tear-off. The homeowner's roof turns out to have two layers.

Disposal item Amount
Dumpster rental and haul $475
Second dumpster swap $475
Overweight fee $190
Crew time on cleanup and magnet sweep $110
Actual disposal cost (bid: $450) $1,250

The variance is $800, which is 5.6 points of margin on a $14,400 job. If ten jobs a year hit the same pattern, that is $8,000 of unplanned cost, and it never appears as a line anyone reviews. A second layer is also a scope change. Your change order process should capture it before the crew starts, not after the dump ticket arrives.

Tracking It by Job in QuickBooks

  1. Create a Disposal and Dump Fees account in cost of goods sold, not overhead.
  2. Assign every bill to the customer and project it served. Dumpster vendors usually put an address or job reference on the invoice. Make that your matching key.
  3. Add the dump ticket to the bill. Tonnage and overweight charges are the number your estimator needs next time.
  4. Code crew cleanup time to the job through your labor tracking, so the full cost shows up in labor hours per square.
💡 Check your local rules. Disposal requirements, landfill rates, and whether certain materials need special handling vary by state and municipality. Confirm what applies to your jobs with your disposal vendor, and ask your CPA how any fees you pass through to customers should be treated for sales tax.

The Monthly Variance Check

Once a month, pull closed jobs and compare estimated disposal to actual for each. Group the results by layer count and roof size. You are looking for a pattern, not a single bad job. If two-layer roofs average $1,100 against a $450 default, you do not have a bad-luck problem. You have an estimating problem.

Then change the inputs. Set separate disposal defaults for one-layer and two-layer roofs, add a line to your inspection checklist for layer count, and price the second layer as a documented add-on. For the broader repricing routine, see material cost repricing.