In This Guide

  1. What Is Roofing Bookkeeping?
  2. How Is It Different from Regular Bookkeeping?
  3. QuickBooks Setup for Roofing Contractors
  4. Job Costing: Tracking Profit Per Job
  5. Retainage Tracking
  6. The 3 Monthly Reports Every Roofer Needs
  7. 5 Most Common Bookkeeping Mistakes Roofers Make
  8. DIY vs. Hiring a Roofing Bookkeeper

What Is Roofing Bookkeeping?

Roofing bookkeeping is the process of recording, organizing, and reporting all financial transactions for a roofing or restoration business — at both the business level and the individual job level.

Unlike generic bookkeeping (which treats your roofing company like a restaurant or retail store), roofing-specific bookkeeping includes:

When these elements are set up correctly in QuickBooks Online, you know exactly which jobs made money and which lost it — before you bid the next one.

The core problem: Most roofing companies doing $1M–$5M in revenue have decent overall financials but no idea which jobs are profitable. They win more work and get busier — but the margin never improves. Job costing fixes this.

How Is Roofing Bookkeeping Different from Regular Bookkeeping?

Regular bookkeeping tracks income and expenses at the business level. You see total revenue, total costs, total profit. It tells you if the business made money — but not which jobs drove it.

Roofing bookkeeping goes two levels deeper:

Feature Generic Bookkeeping Roofing Bookkeeping
Income trackingBusiness level onlyPer job + business level
Expense trackingCategory only (materials, labor)Per job + category
RetainageIgnored or lumped in ARTracked as separate receivable
Progress billingSingle invoice per jobDraw schedule billing
Insurance claimsRecorded as lump sum revenueACV, supplement, RCV tracked separately
WIP schedulesNot applicableMonthly per-job snapshot
Chart of accountsGeneric (Office Supplies, Utilities)Construction-specific (Materials by job type, Subcontractor labor, Overhead)

The difference isn't just complexity — it's the information you get out. A generic bookkeeper gives you last month's numbers. A roofing bookkeeper tells you which jobs to stop taking and which to scale.

QuickBooks Setup for Roofing Contractors

Which QuickBooks Plan Do You Need?

For job costing, you need QuickBooks Online Plus (minimum) or Advanced. The Projects feature — which powers job costing — is not available in Simple Start or Essentials.

Plan Price/mo Job Costing (Projects) Best For
Simple Start~$30NoNot suitable for roofing
Essentials~$55NoNot suitable for roofing
Plus~$90YesSolo operators to mid-size crews
Advanced~$200YesMulti-crew, $3M+ revenue

Chart of Accounts for a Roofing Company

The chart of accounts is the backbone of your books. Most generic charts of accounts are useless for roofing — they don't separate job costs from overhead, and they have no construction-specific categories.

A proper roofing chart of accounts includes:

Critical mistake to avoid: Never put retainage in your regular Accounts Receivable. It needs its own balance sheet account. If it's mixed in AR, you'll think you have cash coming that may not arrive for months — and your AR aging will be wrong.

Setting Up the Projects Feature

QuickBooks Online's Projects feature is how you track job costing. Each roofing job becomes a "Project" in QuickBooks. Every invoice, bill, and expense gets assigned to the project. QuickBooks then shows you revenue, cost, and profit for that specific job.

Steps to set up:

  1. Go to Settings → Account & Settings → Advanced → Enable "Projects"
  2. Create a new project for each job (link to customer)
  3. Assign all invoices and bills to the project when entering them
  4. Run the "Project Profitability" report monthly

Job Costing: Tracking Profit Per Job

What Is Job Costing for Roofing Contractors?

Job costing is the process of tracking all revenue and expenses for each individual roofing job — so you know exactly how much profit (or loss) each job generated. Instead of seeing "we made $80,000 last month," you see "the Henderson re-roof made $12,400 and the Smith storm job lost $2,100."

That information changes how you bid, which jobs you take, and which types of work you focus on.

What Gets Tracked in Job Costing?

Job Cost Report: What to Look For

Run the QuickBooks "Project Profitability" report at the end of each month. For each completed job, you'll see:

Line Item What It Tells You
RevenueTotal billed (excluding uncollected retainage)
Job CostsMaterials + labor + subs for that job
Gross ProfitRevenue minus job costs (before overhead)
Gross Margin %Target 35–50% for residential roofing

If your gross margin on a job type is consistently below 30%, that job type is probably not worth bidding. This is the insight that changes businesses.

Retainage Tracking

What Is Retainage in Roofing?

Retainage (also called retention) is a percentage of the contract price — typically 5–10% — withheld by the property owner or general contractor until the roofing job is fully completed and inspected. Retainage protects the owner against incomplete work or defects.

For roofing contractors, retainage can represent $5,000–$50,000 per job depending on contract size. Many roofing companies leave significant retainage uncollected simply because nobody is tracking it.

How to Track Retainage in QuickBooks

The correct method for tracking retainage in QuickBooks Online:

  1. Create a "Retainage Receivable" account on your balance sheet (separate from Accounts Receivable)
  2. When billing, create a line item for retainage using a negative line item on the invoice (reduces the amount due now)
  3. Debit Retainage Receivable for the amount withheld
  4. When the job is complete and retainage is released, invoice the customer using a Retainage Revenue income account
  5. Run a "Retainage Receivable" balance sheet report monthly to see total uncollected retainage

Real example: A 6-crew roofing company doing $3M/year was carrying $87,000 in uncollected retainage that had been sitting over 90 days. Nobody on staff knew the total. Once tracked properly, they collected $61,000 within 30 days by sending invoices.

The 3 Monthly Reports Every Roofer Needs

You don't need 20 reports. You need three. Run these by the 10th of every month for the prior month:

1. Profit & Loss by Job (Project Profitability Report)

Shows revenue, costs, and gross profit for every job. Tells you which job types are most profitable. Use it to refine your bidding and focus on high-margin work.

2. Balance Sheet

Snapshot of your financial position: what you own (assets), what you owe (liabilities), and what's left (equity). Pay special attention to Retainage Receivable — this is your uncollected money.

3. Accounts Receivable Aging

Shows all outstanding invoices grouped by age: 0–30 days, 31–60 days, 61–90 days, 90+ days. Any invoice over 60 days needs immediate follow-up. Any retainage over 90 days past completion is at risk of never being collected.

5 Most Common Bookkeeping Mistakes Roofing Contractors Make

1. No Job Costing Setup

Recording all income and expenses at the business level with no job-level tracking. You see total profit but can't identify which jobs or job types drove it. Fix: Enable Projects in QuickBooks Plus and assign every transaction to a project.

2. Retainage Mixed Into Regular AR

Recording retainage in the same Accounts Receivable account as regular invoices. Your AR looks inflated, and you have no idea what's actually collectible. Fix: Create a separate Retainage Receivable balance sheet account.

3. Subcontractor Payments Not Allocated to Jobs

Paying subcontractors and recording it as a general expense rather than assigning it to the specific job. This destroys your job profitability reports. Fix: Always assign subcontractor bills to the correct project in QuickBooks.

4. Mixing Personal and Business Expenses

Running personal purchases through the business account. Makes your books messy, inflates costs, creates tax risk. Fix: Separate business account, separate business credit card, no exceptions.

5. Only Looking at Books at Tax Time

Treating bookkeeping as a tax-season activity rather than a monthly management tool. You fly blind all year, make bad bids, miss collection opportunities. Fix: Close your books by the 10th of every month. Review the three reports above.

DIY vs. Hiring a Roofing Bookkeeper

Should you do your own bookkeeping or hire a specialist?

DIY in QuickBooks Generic Bookkeeper Roofing Specialist
Cost$0 (time only)$300–$800/mo$600–$1,800/mo
Job costing setupOnly if you know howRarelyAlways
Retainage trackingOnly if you know howRarelyAlways
Monthly reportsYou run themStandard P&L onlyFull construction reports
Time cost5–15 hrs/month1–2 hrs/month oversight1 hr/month oversight
Tax prep qualityDepends on your skillAdequateCPA-ready books

For a roofing company doing under $500K, DIY in QuickBooks is viable if you invest time in learning job costing. Above $500K, the hours you spend on books — and the mistakes you'll make without construction expertise — cost more than a specialist's monthly fee.

The real cost of DIY: A roofing contractor spending 10 hours/month on books is spending 120 hours/year on bookkeeping. At $200/hour (your effective rate as the business owner), that's $24,000/year in opportunity cost — to do something a specialist can handle for $7,200/year.

Get a Free QuickBooks Assessment for Your Roofing Company

We'll review your current setup, identify the biggest gaps in your job costing and retainage tracking, and show you exactly what's costing you money — in 15 minutes, free.

Book My Free Assessment →

About JobCostBooks

JobCostBooks is a specialized bookkeeping service built exclusively for US roofing, restoration, and real estate companies. We set up and manage QuickBooks Online with full job costing, retainage tracking, and monthly P&L reporting — delivered remotely from India at a fraction of US specialist rates.

Plans start at $600/month. No contracts. Book a free 15-minute assessment at cal.com/jobcostbooks/15min.