Most roofing contractors run a standard QuickBooks Profit and Loss report and see a wall of numbers that doesn't tell them much. The problem isn't the report — it's that the default P&L isn't built for a roofing company. A useful roofing P&L shows revenue by job type, costs by category, gross margin, and ideally per-job profitability alongside company totals. Here's what it should look like and how to get there.

What Should a Roofing Company P&L Report Show?

A roofing company P&L should show five things clearly: revenue by job type, direct job costs by category, gross profit and margin, operating overhead, and net profit. If your current P&L shows only "Revenue" and "Expenses" without any of this detail, it's a generic setup that won't help you run your business.

💡 The report that matters more: The standard P&L shows company-level totals. The Project Profitability report in QuickBooks shows margin per individual job. Run both every month — the P&L tells you how the business is doing, the Project report tells you why.

P&L Structure for a Roofing Company

Here's what a properly structured roofing company P&L looks like in QuickBooks:

Line ItemExample ($2M company)% of Revenue
REVENUE
  Residential re-roof$1,100,00055%
  Insurance restoration$700,00035%
  Commercial$150,0007.5%
  Service / repair$50,0002.5%
Total Revenue$2,000,000100%
COST OF GOODS SOLD
  Materials$560,00028%
  Subcontractor labor$320,00016%
  Employee labor — field$200,00010%
  Permits & disposal$40,0002%
  Equipment rental$20,0001%
Total COGS$1,140,00057%
GROSS PROFIT$860,00043%
OPERATING EXPENSES
  Insurance (business)$80,0004%
  Vehicle expenses$60,0003%
  Owner salary$120,0006%
  Admin / bookkeeping$30,0001.5%
  Marketing$40,0002%
  Software & tools$20,0001%
Total OpEx$350,00017.5%
NET PROFIT$510,00025.5%

What Margins Should a Roofing Company Target?

MetricTargetWarning Sign
Gross margin (residential re-roof)38–50%Below 28%
Gross margin (insurance restoration)30–45%Below 22%
Gross margin (commercial)25–38%Below 18%
Gross margin (service/repair)50–65%Below 40%
Materials as % of revenue22–32%Above 38%
Subcontractor labor as % of revenue12–20%Above 25%
Net profit margin10–20%Below 8%

If your gross margin is consistently below 30%, the issue is almost always one of three things: materials being purchased at above-market rates, subcontractor labor costs running over estimate, or jobs being bid too low. Job costing data from the Project Profitability report will show you which one. Use our free roofing job cost calculator to check margin on individual jobs.

How to Run the Right P&L in QuickBooks

  1. Go to Reports → Profit and Loss
  2. Set date range to prior calendar month
  3. Click Customize → Rows/Columns → Group by Class (if you use Classes for job types) or run separately by customer
  4. For per-job detail: run Project Profitability report (Reports → search "Project Profitability")
  5. Export both to PDF or Excel and review by the 10th of every month
⚠ If your P&L has no COGS section: Your chart of accounts is set up incorrectly — all job costs are coded as operating expenses. This makes gross margin impossible to calculate. Fix: move materials, labor, and subcontractor accounts to Cost of Goods Sold type. A roofing bookkeeper can reclassify these in a QuickBooks cleanup.

The 3 Reports Every Roofing Contractor Should Run Monthly

Run these three by the 10th of every month for the prior month. Nothing else is required:

  1. Profit & Loss — company-level revenue, COGS, gross margin, net profit
  2. Project Profitability — gross margin per individual job; sort by margin % to find outliers
  3. Balance Sheet — check Retainage Receivable balance and follow up on anything over 60 days

These three reports give you everything you need to manage the financial health of your roofing business month to month. JobCostBooks delivers all three as standard deliverables for every client. See our roofing bookkeeping services →