QuickBooks Setup for Roofing Contractors: Chart of Accounts, Class Tracking, COGS
QuickBooks is not a roofing tool. But it is the bookkeeping tool almost every roofing contractor uses because their CPA demands it. Setting it up badly is the norm. Setting it up well separates the operators who know their numbers from the ones who guess.
Which QuickBooks
VersionPricingBest For QuickBooks Online Plus$99/mo1 to 5 users, retail + insurance mix QuickBooks Online Advanced$200/mo5 to 25 users, need class tracking QuickBooks Desktop Enterprise$125 to $300/moHeavy job costing, multi-entity QuickBooks Online Simple Start$30/moSolo operator, bare minimumFor most roofing contractors in 2027, QuickBooks Online Plus or Advanced is the right tier. Desktop is being sunset slowly. Stick with Online unless your CPA has a specific reason otherwise.
The Chart of Accounts for Roofing
Your chart of accounts is the skeleton. Get this right and reporting flows. Get it wrong and you are renovating at year 3.
Income Accounts
- 4000 - Residential Roofing - Insurance
- 4010 - Residential Roofing - Retail
- 4020 - Commercial Roofing
- 4030 - Gutters and Gutter Guards
- 4040 - Siding
- 4050 - Repairs and Service
- 4060 - Other Revenue
Cost of Goods Sold
- 5000 - COGS - Materials
- 5010 - COGS - Subcontractor Labor
- 5020 - COGS - Direct Labor (W-2 crews)
- 5030 - COGS - Dumpsters and Disposal
- 5040 - COGS - Permits and Fees
- 5050 - COGS - Equipment Rental
- 5060 - COGS - Measurement Reports
- 5070 - COGS - Sales Commissions
Operating Expenses
- 6000 - Marketing and Advertising
- 6010 - Office and Admin
- 6020 - Vehicle and Fuel
- 6030 - Software and Subscriptions
- 6040 - Insurance (liability, workers comp)
- 6050 - Professional Services (CPA, legal)
- 6060 - Owner Compensation
- 6070 - Bank and Merchant Fees
Class Tracking per Job
Class tracking is how you measure gross margin per job. Every invoice, bill, and expense gets tagged with a Class that represents the job. Then you run a P&L by Class and see which jobs made money and which lost money.
Setup:
- In QuickBooks Online Plus or Advanced, enable Class tracking in settings
- Create a Class for each job as it is opened (naming convention: "2027-1234 Smith, John")
- Every expense gets the Class assigned at bill entry
- Invoice line items get the Class assigned when invoicing the customer
Reality check: most roofing bookkeepers skip class tracking because it is tedious. The contractors who do it properly make 8 to 15 percent more margin because they fire their worst crews, fire their worst customer types, and find their hidden profit centers.
COGS Setup Done Right
The biggest mistake roofing contractors make is putting materials in an expense account instead of COGS. This breaks gross margin reporting.
Every dollar that goes into a job should be in the 5000 series (COGS) with a Class assigned to the job. Every dollar that is overhead (office rent, general insurance, owner pay) goes in the 6000 series (operating expenses).
The Gross Margin Math
With proper COGS setup, your monthly P&L will show:
- Revenue: $450,000
- COGS: $270,000 (60 percent of revenue)
- Gross Profit: $180,000 (40 percent gross margin)
- Operating Expenses: $95,000
- Net Income: $85,000
If you cannot read these four lines off your P&L in 10 seconds, your books are set up wrong.
Job Costing Workflow
- Job opens, Class created in QuickBooks
- Supplier bills entered, line items coded to COGS Materials with Class
- Subcontractor 1099 payments coded to COGS Subcontractor Labor with Class
- Sales commission entered as COGS Commissions with Class
- Customer invoice coded to Income Residential Insurance (or Retail) with Class
- At job close, run P&L by Class filtered to this Class to see job margin
CRM Integration
Most roofing CRMs sync to QuickBooks Online. What you want synced:
- Customers and jobs from CRM become Customers and Sub-customers in QBO
- Invoices generated in CRM flow to QBO as invoices
- Payments recorded in QBO flow back to CRM
- Supplier POs from CRM optionally create bills in QBO
Acculynx, JobNimbus, RoofKnockers, and Dataforma all have QBO sync. Read the docs on what fields map and where the gotchas are.
Common Mistakes
- Materials in Expenses, not COGS: breaks gross margin reporting
- No Class tracking: no per-job margin visibility
- Sales commissions in Payroll, not COGS: distorts operating expenses
- Insurance-paid deductibles netted against revenue: should be a separate expense line
- Cash basis when contracts span months: switch to accrual over $1M revenue
Monthly Close Checklist
- All supplier bills entered with Class
- All payroll processed and coded correctly
- All customer invoices sent and payments applied
- Bank reconciliation complete
- Credit card reconciliation complete
- Run P&L by Class to spot jobs with margin below 30 percent
- Review AR aging, chase anything over 30 days
RoofKnockers and QBO
RoofKnockers pushes jobs, invoices, and customer records to QBO with Class tagging built in. You do not manually copy data between systems. See features.
Related Reading
FAQ
Q: Do I need a full-time bookkeeper?
A: Under $1M revenue, part-time (5 to 10 hours per week) works. $1M to $5M, full-time bookkeeper or fractional controller. $5M+, dedicated finance staff.
Q: Cash basis or accrual?
A: IRS allows cash basis under $27M revenue (2027 rules). But for management reporting, accrual gives better margin visibility. Many contractors run cash for tax, accrual for management.
Q: Can I use QuickBooks Online Simple Start?
A: Only for a solo operator with fewer than 20 jobs per year. Simple Start lacks Class tracking, which is essential for roofing.
Ready to grow your roofing sales operation?
Start Your 14-Day Free Trial