Bookkeeping for a roofing company is fundamentally different from bookkeeping for a restaurant, a law firm, or even most other contractors. Roofing has a unique financial structure: revenue that spikes with weather events and insurance cycles, a labor model that mixes W-2 crews with 1099 subcontractors, retainage held on every commercial job, and job profitability that varies wildly by job type. Generic bookkeeping misses all of this. Here is what roofing bookkeeping actually needs to look like.

Why Is Bookkeeping for Roofers Different from Regular Bookkeeping?

Bookkeeping for roofers is different because the core financial questions a roofing contractor needs answered — which jobs make money, how much retainage is outstanding, what is the true margin on an insurance job vs. a retail re-roof — cannot be answered by a generic bookkeeping setup. Standard bookkeeping records transactions. Roofing bookkeeping organizes them in a way that reveals job-level profitability.

Financial QuestionGeneric BookkeepingRoofing Bookkeeping
Did the business make money last month?✅ Yes — P&L shows totals✅ Yes
Which jobs made money?❌ No visibility✅ Project Profitability report
How much retainage is outstanding?❌ Not tracked✅ Retainage Receivable account
Is insurance work more profitable than retail?❌ Revenue is lumped together✅ Revenue split by job type
Which subcontractor is hurting margins?❌ All subs in one bucket✅ Sub costs per job
Are the books accurate at month-end?🟡 Depends on bookkeeper✅ Monthly reconciliation standard

The QuickBooks setup that works for a $500K roofing company is completely inadequate at $2M, and by $4M the lack of financial visibility is actively costing money in bad bids, uncollected retainage, and tax surprises.

Should Roofers Use Cash Basis or Accrual Accounting?

Roofing companies doing more than $1M in revenue should use accrual-basis accounting, not cash basis. Cash basis records revenue when money hits your bank account and expenses when money leaves. This sounds simple — but for roofing contractors it creates a dangerous distortion.

⚠ The cash basis trap for roofers: A $60,000 insurance check clears on October 31st. Your October P&L shows a huge revenue month. But the shingles were purchased in September, the subcontractor was paid in early October, and you still owe a $4,000 permit fee. Your cash-basis books say you made $60,000 in October. Your actual margin on that job — when all costs are matched — is $18,000. Cash basis made October look three times more profitable than it was.

Accrual accounting fixes this by matching revenue to the period when work is earned and expenses to the period when costs are incurred — regardless of when cash moves. The result is a P&L that reflects actual job performance, not the timing of bank deposits.

Cash BasisAccrual Basis
Revenue recorded whenCash receivedWork earned / invoice issued
Expenses recorded whenCash paidCost incurred
Monthly P&L accuracyDistorted by timingReflects actual performance
Insurance claim revenueSpikes when check clearsSpread across job completion
Best forUnder $500K, simple operations$500K+ roofing companies
Required for bank/bondingNoOften required
Tax filingSimpler at year-endMore accurate, better planning

In QuickBooks Online, you can switch between cash and accrual views in reports — but your underlying bookkeeping methodology (how transactions are entered and matched) determines whether accrual reports are meaningful. A roofing bookkeeper sets this up correctly from the start.

What Should a Roofing Company's Chart of Accounts Look Like?

A roofing-specific chart of accounts separates costs in a way that makes your P&L useful for decision-making, not just tax filing. The key differences from a generic setup:

AccountTypeWhy It Matters
Residential Roofing RevenueIncomeSeparate from insurance work — different margin profiles
Insurance Restoration RevenueIncomeTrack insurance job profitability separately
Commercial Roofing RevenueIncomeCommercial margins differ — must be visible
Materials — ShinglesCOGSLargest cost item — needs its own line
Materials — Underlayment & AccessoriesCOGSSecond-largest materials category
Subcontractor LaborCOGSSeparate from W-2 labor — 1099 compliance, different margins
Employee Labor — FieldCOGSW-2 crew cost — per job via QuickBooks Projects
Permits & DisposalCOGSDirect job cost, not overhead
Retainage ReceivableOther Current AssetHoldback owed — visible on balance sheet
Depreciation Holdback ReceivableOther Current AssetInsurance ACV/RCV holdback (restoration contractors)

Never put retainage in regular Accounts Receivable. Never combine subcontractor and employee labor. These two mistakes alone make it impossible to run an accurate job profitability report or comply correctly with 1099 filing requirements.

Job Costing: The Non-Negotiable for Roofing Bookkeeping

Job costing means tracking every dollar of revenue and cost against each individual roofing job so you can see gross profit and margin per job — not just company-wide totals. In QuickBooks Online, this is done through the Projects feature (available on Plus and Advanced plans).

Without job costing, a roofing company doing $2M in revenue might show 32% gross margin overall — but that average hides the fact that residential re-roofs run 44% and insurance restoration jobs run 21%. The owner keeps bidding both at the same rate, wonders why margins don't improve, and eventually learns the hard way which jobs were carrying the business.

With job costing, the Project Profitability report shows exactly this data every month. It takes 30 minutes to set up correctly in QuickBooks. It changes how you bid, which jobs you take, and how you evaluate subcontractor performance.

Full setup guide: QuickBooks job costing for roofers — step-by-step →

Retainage Tracking: The $40K–$120K Problem Most Roofers Have

Retainage is the 5–15% of contract value withheld by the property owner or GC until the roofing job reaches final completion. It's money you've earned. Without a dedicated Retainage Receivable account in QuickBooks, it's invisible — and roofing contractors at $2M revenue commonly have $40,000–$120,000 in uncollected retainage that simply doesn't exist in their books.

The fix is a single QuickBooks account: Retainage Receivable (type: Other Current Asset). Every invoice that has a holdback creates an entry here. A monthly balance sheet review flags any retainage over 60 days past job completion for collection follow-up.

Full setup guide: Retainage tracking in QuickBooks Online →

Insurance Claim Revenue: How to Record It Correctly

Insurance claim accounting is the most complex part of roofing bookkeeping, and the part most generic bookkeepers get wrong. An insurance job typically has three separate payments: the ACV check upfront, the depreciation holdback released after job completion, and any approved supplements. Each is a separate receivable and must be recorded separately in QuickBooks.

The cash basis mistake: recording the ACV check as full job revenue. The job isn't complete, you still owe the work, and the holdback hasn't been released. Your books show income that isn't fully earned yet.

The correct approach: invoice for full RCV at job start, record ACV receipt as partial payment, track the depreciation holdback in a Depreciation Holdback Receivable account, and invoice for the holdback release when work completes and documentation is submitted.

Full guide: Insurance claim accounting for restoration contractors →

The 3 Monthly Reports Every Roofing Company Needs

You don't need 15 reports. You need three, delivered by the 10th of every month for the prior month:

Report 1: Profit & Loss
Company-level revenue by job type, COGS by category (materials, labor, subs), gross margin %, and net profit. Target: 35–50% gross margin on residential, 25–38% on commercial. If gross margin is below 28% consistently, there's a pricing or cost problem job costing data will surface.
Report 2: Project Profitability
Gross profit and margin per individual job, sorted by margin %. The most useful report in roofing bookkeeping. Shows which job types, which crews, and which geographic areas produce the strongest margins. Use it to refine your bidding every month — not just at year-end.
Report 3: Balance Sheet (with Retainage focus)
Snapshot of financial position. Pay particular attention to Retainage Receivable — any balance over 60 days past job completion needs a follow-up call. Also check accounts payable aging to make sure no supplier invoices are aging past terms.

JobCostBooks delivers all three of these as standard monthly deliverables for every client. See what's included in each plan →

DIY Roofing Bookkeeping vs. Hiring a Specialist: Which Is Right for You?

DIY QuickBooksGeneric BookkeeperRoofing Specialist
Monthly cost$0 (time only)$300–$800$600–$1,800
Job costing setupOnly if you know howRarely done correctlyStandard — day one
Retainage trackingOnly if you know howUsually missedStandard — day one
Insurance claim accountingAlmost never correctUsually wrongStandard workflow
Monthly time required (owner)8–15 hours1–2 hours oversight30 min review
Risk of tax errorsHighMediumLow

For a roofing company doing under $500K, DIY with QuickBooks is manageable if you invest time in setup. Above $500K, the hours you spend on books — and the mistakes made without construction expertise — cost more than a specialist's monthly fee. A roofing contractor spending 10 hours/month on bookkeeping is spending $24,000/year in opportunity cost (at $200/hour effective rate) to do something a specialist handles for $7,200–$21,600/year.

How Much Does Bookkeeping for a Roofing Company Cost?

Roofing bookkeeping costs vary significantly by provider type:

Provider TypeMonthly CostJob CostingRetainage Tracking
Generic bookkeeper (local)$300–$800❌ Rarely❌ Rarely
Bench / generic online$299–$700+❌ Not available❌ Not available
JobCostBooks (roofing specialist, India)$600–$1,800✅ Standard✅ Standard
US roofing specialist$3,500–$5,000✅ Standard✅ Standard

JobCostBooks provides roofing-specialist bookkeeping — job costing, retainage tracking, monthly P&L and job profitability reports — at $600–$1,800/month. That's the same quality as a US-based roofing specialist at one-third the price, because we operate from India with lower overhead and pass the savings directly to clients.

Full pricing breakdown: How much does a bookkeeper for a roofing company cost? →

💡 Want this handled for you? JobCostBooks provides specialized bookkeeping for US roofing contractors — QuickBooks job costing, retainage tracking, accrual-basis monthly reports from $600/month. Guarantee: find $10K in profit leaks in 90 days or your first month is free. See our roofing bookkeeping services →