Most roofing estimates carry one permit line, usually a flat number copied from the last job. The city then charges by project valuation, the inspector shows up on Thursday instead of Tuesday, and your crew stands around for two hours. None of that lands on the job report, so the next estimate repeats the same mistake.

What Permits Really Cost

A permit has four cost layers, and only the first arrives as a bill:

  • The fee itself. Many jurisdictions scale it to contract value, so a flat estimate line drifts as your prices rise.
  • Re-inspection fees. A failed or missed inspection often triggers a second charge.
  • Office time. Applications, uploads, calls to the permit counter and pulling documents all take paid hours.
  • Crew standby. When the schedule says the inspector arrives between 8 and noon, a crew that finishes at 9 often waits.

Fee schedules, inspection rules and whether a reroof needs a permit at all vary by city and county, so check with your local building department rather than assuming.

Worked Example: A $13,200 Reroof

All figures are illustrative. You estimate a 28-square reroof at $13,200 with a flat $300 permit line. Here is what the job actually carries:

Line Estimated Actual
Permit fee $300 $425
Re-inspection fee $0 $90
Office time (3 hrs at $35 burdened) $0 $105
Crew standby (4 people, 2 hrs at $30 burdened) $0 $240
Total $300 $860

The gap is $560, or 4.2 points of margin on a $13,200 job. If a similar gap shows up on 120 jobs a year, that is $67,200 of profit that never appears on a job report. Your estimate was not wrong because of one bad job. It was wrong by design.

Recording It in QuickBooks

  1. Create a Permits and Inspections account under cost of goods sold, not general office expense.
  2. Assign every payment to the job. City portal charges, re-inspection fees and permit runner invoices each get the customer or project tag at entry.
  3. Log standby and office hours on the job. A simple time-entry code for permit work keeps labor out of unassigned payroll.
  4. Reimbursed fees stay visible. If a contract bills the permit separately, record the billed amount as revenue and the fee as cost on the same job so the two net out in the job report.
💡 Confirm treatment with your CPA. Whether a separately billed permit fee is taxable, and how it is reported, depends on your state and your contract language. Check before you build the invoice template.

Fixing the Estimate

Once ten or more closed jobs carry permit costs, compare estimated to actual by municipality. Most contractors find two or three jurisdictions that account for most of the overrun. Set a separate permit default for each, built from the fee schedule plus average re-inspection and hours, not one flat number.

Then track one operating number: first-pass inspection rate. Every failed inspection is a measurable cost, and the crew leads who fix their punch lists before calling for inspection will show it in the data. For the margin math behind the numbers, see markup vs margin, and for the same estimated-versus-actual method applied to another line, read tear-off and disposal costs.