Taxstra Logo
Free Initial Consultation Available

Bookkeeping for Roofers Who Want to Know Which Jobs Made Money

Per-roof job costing, insurance claim receivables that actually get collected, subcontractor compliance, and monthly financials closed by the 20th. Built by a CPA firm, so tax season starts finished.

A guide by Taxstra Tax & Accounting · CPA-led tax strategy for business owners

Written by Bryan Martin, CPA, Managing Partner and Founder of Taxstra. Last updated July 17, 2026.

Roofing bookkeeping fails in a specific, predictable way: every cost gets dumped into company-wide expense accounts, insurance holdbacks never get invoiced, and in February the owner discovers that a year that felt busy was barely profitable. The fix is not more effort in December. It is books structured around the three things that make roofing money move differently: jobs, claims, and crews.

Key Insight
Bookkeeping for a roofing company means job costing every roof (materials, crew labor, disposal, permits, commissions tagged to the job), tracking insurance claims by payment stage (ACV check, deductible, recoverable depreciation, supplements), keeping subcontractor paperwork compliant (W-9s, certificates of insurance, 1099-NECs), and closing the books monthly so the P&L, Balance Sheet, and Cash Flow statement are ready by the 20th. Done right, you know your margin per job and per crew, and tax filing becomes a handoff instead of a reconstruction project.

Why Roofing Books Are Different

Jobs, claims, and crews break generic bookkeeping

A retail store's books can live on a simple P&L because revenue and cost arrive together and look alike all year. A roofing company breaks every one of those assumptions. Revenue arrives per job, in uneven chunks, sometimes months after the work. Costs belong to specific roofs, not to the company in general. A storm can double revenue in a quarter and a hard winter can zero it out. And the people producing the work are often subcontractor crews whose paperwork is a compliance obligation, not just an expense entry.

That means a roofing company with generic books has three blind spots at once. It cannot see which jobs made money, so estimating never improves. It cannot see what insurance carriers still owe, so recoverable depreciation and supplements quietly go uncollected. And it cannot prove its subcontractor relationships are papered correctly, which is exactly what a state workforce agency or workers comp auditor asks about first.

Everything on this page is the fix for those three blind spots, in the order they cost you money. If you are a general contractor or another trade rather than a roofer, the same logic applies with different accounts; start with our trades and service business tax services overview or the outsourced bookkeeping service page.

A Chart of Accounts Built for a Roofing Company

If the accounts are wrong, every report downstream is wrong

The default QuickBooks chart of accounts is written for a generic service business. A roofing company needs accounts that separate direct job costs from overhead, split the revenue types that behave differently, and put claim holdbacks somewhere visible. These are the accounts we set up for roofing clients and why each one exists:

AccountTypeWhy it exists
Retail Contract RevenueIncomeHomeowner-funded jobs behave differently from claims; separate them so mix is visible
Insurance Restoration RevenueIncomeClaim-funded work: different sales cost, different collection pattern
Repair and Service RevenueIncomeSmall-ticket, high-margin work that subsidizes slow months
Job MaterialsCOGSShingles, underlayment, flashing, vents; the largest direct cost, tracked per job
Subcontract Crew LaborCOGSCrew payments per job; also the base for 1099 reporting
Direct W-2 Labor and BurdenCOGSIn-house installers plus payroll tax and workers comp load
Disposal and Dumpster FeesCOGSTear-off debris is a real per-job cost, not office overhead
Permits and InspectionsCOGSMunicipality fees belong to the job that triggered them
Equipment RentalCOGSCranes, lifts, ladder hoists rented for specific jobs
Sales CommissionsCOGSCommission tied to the job so job margin is true margin
Insurance Claim ReceivablesAssetRecoverable depreciation and supplements owed by carriers, by claim
Customer DepositsLiabilityMoney collected before work starts is not revenue yet
Warranty ReserveLiabilityExpected cost of workmanship callbacks accrued as jobs close
Small Tools and Job SuppliesExpenseNail guns, blades, sealant; watched separately because it leaks
Vehicle and FuelExpenseTruck costs, tracked for both margin and tax substantiation

Two structural rules matter more than any single account. First, anything that exists because of a specific roof is cost of goods sold, not overhead, and gets a job tag. Second, money received before the work is done (deposits, ACV checks on unstarted jobs) is a liability until the job earns it. Companies that book deposits as revenue run profitable Decembers and bankrupt Junes. For the generic starting framework this builds on, see the small business chart of accounts guide.

Job Costing Per Roof: The Worked Example

Margin per job is the number that improves estimating

Job costing means every direct cost is tagged to the roof that caused it, in QuickBooks Online via projects or classes, the week it happens. The payoff is a report nobody can get from blended books: gross profit per job, compared against the estimate that won the job.

What One Job Looks Like With Real Job Costing

Job #2417: Maple St. Re-Roof (28 squares)

Retail asphalt replacement, hypothetical round numbers

Contract price$24,000
Materials (shingles, underlayment, flashing)($8,400)
Subcontract crew labor($6,000)
Tear-off disposal and dumpster($600)
Permit($250)
Fasteners, sealant, job supplies($350)
Sales commission (8%)($1,920)
Job gross profit$6,480 (27%)

Without job-level tagging, this job's 27% margin disappears into a company-wide blend, and the jobs losing money hide behind the ones making it.

Worked example (hypothetical, illustrative round numbers)

A roofer runs $1.8 million of annual revenue across roughly 75 jobs. Blended books show a 26% company gross margin and everyone feels fine. Job-costed books show something different: retail replacements average 31%, insurance restoration jobs average 27%, and the 12 jobs sold by one particular rep average 14% because his estimates consistently missed tear-off depth and disposal costs.

Those 12 jobs represent about $290,000 of revenue. Moving them from 14% to the 27% company average is roughly $37,000 of annual gross profit, recovered not by selling more but by fixing one estimator's template. That is the entire case for job costing: the blended number hides the fix.

Taxstra CPA Tip
Cost the job while it is open, not after it closes. A materials overrun you see on Tuesday is a supplement request or a change order. The same overrun discovered at month-end is just a smaller margin.

Insurance Claim Receivables: The Money Roofers Forget to Collect

ACV checks, deductibles, depreciation holdbacks, supplements

Insurance restoration work pays in stages, and the stages are governed by the claim, not by your invoice. A typical replacement-cost claim starts with an actual cash value (ACV) payment, holds back the depreciation until completion is documented, leaves the deductible to be collected from the homeowner, and only pays supplements that were requested and approved. Each stage is a separate receivable with a separate follow-up owner.

When Insurance Money Actually Arrives on One $22,000 Claim

Claim approved$0 to you yetACV check$15,000Job complete +deductible$2,000Recoverabledepreciation$5,000Supplement(if approved)$1,800The last $6,800 only arrives if someone invoices for it and chases it

Hypothetical replacement-cost claim: $22,000 RCV, $2,000 homeowner deductible, $5,000 depreciation held back until completion is documented. Books that do not track the holdback as a receivable routinely never collect it.

The bookkeeping structure that makes this work: the approved claim value is the job's contract amount; the ACV check reduces the receivable; the recoverable depreciation sits in its own receivable account, by claim, until the completion invoice goes to the carrier; the homeowner deductible is invoiced to the homeowner directly; and supplements get added to the contract value only when approved, so the job margin stays honest. A monthly claim receivable aging report is part of our standard roofing package, because a holdback that is 90 days old without a completion invoice is not aging, it is evaporating.

Watch Out
Waiving or rebating homeowner insurance deductibles is illegal in a number of states, and books that show a pattern of jobs collecting exactly the ACV plus depreciation and never the deductible document that pattern for anyone who looks. Invoice the deductible, collect it, and record it. If a discount is given, paper it as a contract price adjustment, not a phantom collection.

Subcontractor Crews: Payments, Paperwork, and 1099s

The compliance file matters as much as the ledger entry

Most roofing production runs through subcontractor crews, which means the books carry a compliance layer that generic bookkeeping ignores. Before the first payment, each crew should have a Form W-9 on file, a certificate of insurance (general liability, and workers comp where required), and a written subcontractor agreement. Our monthly process flags any crew payment made without that file complete, because chasing a W-9 in January from a crew that moved on in July is how 1099 season goes wrong.

For payments made in 2026, the Form 1099-NEC reporting threshold is $2,000 per payee for the calendar year, raised from the old $600 rule by the 2025 tax law and indexed for inflation in later years. The threshold tests total payments to the payee across the year, not per check, so essentially every real crew relationship still requires a 1099. Payments to incorporated subs are generally exempt; payments to LLCs depend on how the LLC is taxed, which is exactly what the W-9 tells you.

The bigger risk than a missed form is misclassification. A crew that works only for you, on your schedule, with your materials and your supervision, starts to look like employees to a state workforce agency or a workers comp auditor, and reclassification comes with back payroll taxes and penalties. Clean books help here too: separate accounts for W-2 labor and subcontract labor, matched to the compliance file, are the first thing we hand a client facing a workers comp premium audit.

Seasonality: Budgeting a 12-Month Company on 8 Months of Revenue

The winter payroll is paid with September's discipline

In most of the country, roofing revenue concentrates from late spring through fall while overhead runs all twelve months. The bookkeeping response is a rolling cash view that pairs the monthly close with a simple forward look: booked backlog, expected claim collections (including those depreciation holdbacks), and fixed monthly overhead. The question the report answers every month is concrete: how many months of winter overhead does current cash plus collectible receivables cover?

A storm season adds the opposite problem: a revenue spike that shows up first as a cash drain, because materials and crews get paid weeks before carriers release final payments. Growth consumes cash before it returns cash. This is where the deposit and receivable discipline from the earlier sections stops being bookkeeping hygiene and becomes survival: a roofer who books ACV checks as profit and spends them has borrowed from his own unfinished jobs. Our cash flow calculator gives a quick version of this math; the monthly package makes it standing.

Taxstra CPA Tip
Set a winter reserve target as a number, not a feeling: fixed monthly overhead times the number of low-revenue months in your market. Move a percentage of every final job payment into a separate account until the target is funded. The roofers who make this automatic stop having February layoff conversations.

The Roofing KPIs Worth Watching Monthly

Six numbers, defined, from books that can actually produce them

KPIs only work when the books beneath them are structured to produce them. With job costing, claim receivables, and separated revenue types in place, these six numbers come out of the monthly close automatically:

KPIGross margin per job
How it is calculatedJob revenue minus direct job costs, by job and by estimator
What it tells youWhether estimating and production are holding the margin you priced
KPIMaterials as % of job revenue
How it is calculatedJob materials divided by job revenue
What it tells youSupplier pricing drift and estimate accuracy on the biggest cost line
KPIClaim receivable days
How it is calculatedAverage days from completion invoice to carrier payment
What it tells youWhether holdbacks and supplements are being chased or evaporating
KPIBacklog (weeks)
How it is calculatedSigned, unstarted contract value divided by average weekly production
What it tells youHow far ahead the crews are sold; drives hiring and ad spend timing
KPIRevenue mix
How it is calculatedRetail vs insurance vs repair revenue, monthly
What it tells youDependence on storm work, which is high-revenue but lumpy and slower-paying
KPIOverhead coverage (months)
How it is calculatedCash plus collectible AR divided by monthly fixed overhead
What it tells youThe seasonality number: how much winter the company can currently afford

We review these with clients on the monthly financial package, not once a year. A margin slide caught in June is a pricing fix; the same slide discovered at tax time is just a bad year.

Want your jobs costed and your claims collected without doing it yourself?

A free initial consultation covers your current books, what cleanup they need, and what monthly bookkeeping would look like for your roofing company.

Book a Free 30-Minute Consultation

The Monthly Close Process and Software Stack

What happens each month, and by when

Monthly bookkeeping for a roofing client runs on a fixed cadence. During the month: transactions are categorized and job-tagged weekly, subcontractor payments are checked against the compliance file, and deposits and ACV checks are booked to the right liability or receivable accounts. After month-end: every bank, credit card, and loan account is reconciled; open jobs are reviewed so costs and billings sit in the right period; the claim receivable aging is updated; and the financial package goes out by the 20th.

The package is three statements plus the roofing layer: Profit and Loss, Balance Sheet, and Cash Flow statement, then job profitability, claim receivable aging, and the KPI page from the prior section. Statements without the job layer are compliance paperwork; the job layer without reconciled statements is guesswork. You need both.

The stack is QuickBooks Online at the core, with job costing handled through QBO projects or the roofing CRM you already run (job management platforms that push invoices and costs into QBO). Receipt capture ties material purchases to jobs from the supplier invoice, and payroll runs through a provider that files the payroll returns. We work inside the tools you have where possible; the goal is a clean ledger, not a software migration. If the file is months or years behind, cleanup comes first: catch-up bookkeeping rebuilds the history so the monthly cadence starts from truth.

The Tax-Ready Handoff, and Who This Service Fits

Clean books are the input; tax strategy is the payoff

Because Taxstra is a tax-led CPA firm, the monthly books are built to feed the return and the planning work, not just to exist. Clean roofing books make the real decisions answerable: whether an S corporation election beats your current structure at your profit level, how much equipment to place in service before year-end, and what your quarterly estimated payments should actually be instead of last year's safe harbor on autopilot. Method choice matters here too: roofers under the IRS gross receipts threshold ($32 million average annual receipts for 2026) with contracts finishing inside two years are generally exempt from percentage-of-completion for tax and can often defer income under the cash or completed contract method. That choice is made well when the books can show job status cleanly, and made badly by default when they cannot. The planning side of that conversation lives on our contractor tax planning page.

This service is a fit if:

  • You run a roofing or exterior contracting company doing roughly $500K to $10M in annual revenue
  • You want to know margin per job and per estimator, not just a year-end total
  • Insurance restoration is part of the mix, or you want it to be, and holdbacks need owning
  • You pay subcontractor crews and want the W-9, COI, and 1099 file handled correctly
  • You want bookkeeping and tax under one roof so nothing is lost in the handoff

It is probably not a fit if you want a data-entry-only bookkeeper with no tax connection, or the business is a side operation below the point where monthly financials change decisions. In that case a quarterly cleanup with our small business accounting team may serve you better until the volume grows. Either way, the bookkeeping cost calculator gives you a price range in about a minute.

Frequently Asked Questions

Bookkeeping for roofing companies

Three things: every dollar of cost belongs to a specific roof, a big share of revenue arrives through insurance claims that pay in stages, and most production labor runs through subcontractor crews instead of W-2 payroll. Generic bookkeeping blends all of that into one P&L line and tells you nothing about which jobs, crews, or lead sources actually make money. Roofing books need job costing, claim receivable tracking, and subcontractor compliance built in from day one.

Get Roofing Books That Answer Questions

A free initial consultation covers your file, your cleanup needs, and a monthly bookkeeping plan built for how roofing money actually moves.

Book a Free 30-Minute Consultation