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.
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:
| Account | Type | Why it exists |
|---|---|---|
| Retail Contract Revenue | Income | Homeowner-funded jobs behave differently from claims; separate them so mix is visible |
| Insurance Restoration Revenue | Income | Claim-funded work: different sales cost, different collection pattern |
| Repair and Service Revenue | Income | Small-ticket, high-margin work that subsidizes slow months |
| Job Materials | COGS | Shingles, underlayment, flashing, vents; the largest direct cost, tracked per job |
| Subcontract Crew Labor | COGS | Crew payments per job; also the base for 1099 reporting |
| Direct W-2 Labor and Burden | COGS | In-house installers plus payroll tax and workers comp load |
| Disposal and Dumpster Fees | COGS | Tear-off debris is a real per-job cost, not office overhead |
| Permits and Inspections | COGS | Municipality fees belong to the job that triggered them |
| Equipment Rental | COGS | Cranes, lifts, ladder hoists rented for specific jobs |
| Sales Commissions | COGS | Commission tied to the job so job margin is true margin |
| Insurance Claim Receivables | Asset | Recoverable depreciation and supplements owed by carriers, by claim |
| Customer Deposits | Liability | Money collected before work starts is not revenue yet |
| Warranty Reserve | Liability | Expected cost of workmanship callbacks accrued as jobs close |
| Small Tools and Job Supplies | Expense | Nail guns, blades, sealant; watched separately because it leaks |
| Vehicle and Fuel | Expense | Truck 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
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.
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
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.
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.
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:
| KPI | How it is calculated | What it tells you |
|---|---|---|
| Gross margin per job | Job revenue minus direct job costs, by job and by estimator | Whether estimating and production are holding the margin you priced |
| Materials as % of job revenue | Job materials divided by job revenue | Supplier pricing drift and estimate accuracy on the biggest cost line |
| Claim receivable days | Average days from completion invoice to carrier payment | Whether holdbacks and supplements are being chased or evaporating |
| Backlog (weeks) | Signed, unstarted contract value divided by average weekly production | How far ahead the crews are sold; drives hiring and ad spend timing |
| Revenue mix | Retail vs insurance vs repair revenue, monthly | Dependence on storm work, which is high-revenue but lumpy and slower-paying |
| Overhead coverage (months) | Cash plus collectible AR divided by monthly fixed overhead | The 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 ConsultationThe 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
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