A hailstorm rolls through your service area on a Tuesday afternoon. By Wednesday morning, your phone is ringing nonstop. Within a week, you have 40 signed contracts, dozens of pending insurance claims, and a backlog of supplemental damage reports waiting for adjuster approval. Six months later, your CPA asks a simple question that you cannot answer: how much of that storm revenue have you actually earned versus how much is still a liability on your books?
Roofing is one of the few trades where a single weather event can compress a year's worth of work into a quarter — and one of the few where revenue recognition, insurance accounting, and labor classification all intersect at once. The contractors who survive these cycles are not necessarily the ones with the biggest crews. They are the ones whose books accurately reflect what they own, what they owe, and what they have truly earned.
This guide walks through how residential roofers and storm restoration specialists should think about bookkeeping in 2026, with practical guidance on revenue recognition, insurance claim accounting, tax method elections, labor classification, and the KPIs that separate profitable shops from busy ones.
Retail Jobs Versus Insurance-Paid Repairs Are Two Different Animals
The first mistake most roofers make is treating every job the same in their accounting system. A retail cash job and an insurance restoration job have fundamentally different revenue profiles, and lumping them together blinds you to where you are actually making money.
Retail re-roofs are clean. The customer signs a contract for a fixed scope and price. Work happens. They pay. Revenue is recognized as the performance obligation is satisfied — typically when the roof passes final inspection. Margins are usually higher because there is no carrier negotiation eating into the spread.
Insurance-paid storm restoration jobs are messier. The transaction price is variable. You write an initial scope using estimating software, the carrier approves a portion, and then weeks or months later you discover hidden decking damage, wind-damaged flashing under the shingles, or improperly installed underlayment that needs replacement. You file a supplemental claim. Sometimes the carrier pays. Sometimes they fight it. Sometimes they pay partially.
Under ASC 606, this variable consideration must be estimated at contract inception using either an expected-value or most-likely-amount approach, and it must be constrained to the amount you can reasonably expect to collect without a significant revenue reversal. In practice, that means most storm restoration shops should book initial revenue at the carrier-approved scope and recognize supplemental revenue only when there is sufficient evidence — typically a signed supplemental approval or a documented carrier acceptance — that the additional amount will be collected.
Segregate your chart of accounts to reflect this reality. Separate revenue accounts for retail jobs, insurance jobs, and supplemental claim revenue let you see margin by channel at a glance.
Section 460 and the Small Contractor Exemption
For tax purposes, federal law generally requires long-term contracts to use the percentage-of-completion method (PCM) under Internal Revenue Code Section 460. But there is a meaningful exemption that most residential roofing shops fall under.
The small construction contractor exemption applies if your average annual gross receipts for the three preceding tax years do not exceed approximately $31 million (this threshold is indexed for inflation). Contracts that are reasonably expected to be completed within two years also qualify regardless of size, which covers virtually every residential re-roof.
If you qualify, you can elect alternative methods including:
- Completed contract method (CCM) — recognize all revenue and costs when the job is finished. Simple, but lumpy. Useful for shops that close out jobs quickly and want to defer income.
- Cash method — recognize revenue when cash is received and expenses when paid. Best for small shops that want maximum tax deferral.
- Accrual method without PCM — recognize revenue when billed and costs when incurred.
The One Big Beautiful Bill Act expanded the exemption to residential construction contracts for buildings with more than four dwelling units, taking effect for contracts entered in tax years beginning after July 4, 2025. For owner-operators of single-family roofing shops, the most common election remains cash or CCM at the federal level — but your book accounting under ASC 606 may still require percentage-of-completion treatment for any contract that spans a reporting period boundary. Many small contractors run two sets of books in parallel for this exact reason.
How to Handle the Customer Deductible Without Breaking the Law
Here is where many roofing contractors get into serious legal and accounting trouble at the same time.
At least 28 states — including Texas, Colorado, Oklahoma, and Florida — have anti-deductible-waiving statutes that make it illegal for a roofer to absorb, rebate, or offset a homeowner's insurance deductible. Texas House Bill 2102, for example, requires roofing contracts over $1,000 to include bold 12-point notice that the homeowner must pay their deductible out of pocket. Violations can carry criminal penalties.
This affects your books in two ways:
- The deductible is not your revenue to waive. When the carrier issues a payment that subtracts the deductible, the contract value still includes that deductible amount. You must collect it from the homeowner.
- Until the deductible is collected and the carrier approves the final scope, the customer payment portion sits as a liability, not revenue. Many shops mistakenly recognize the full Xactimate scope as revenue on day one. The cleaner approach is to track customer deductible payments in a dedicated receivable account and recognize revenue only as work is performed and the carrier acknowledges completion.
A simple rule: if you find yourself drafting an invoice that quietly omits the deductible line, stop. The accounting is wrong and the legal exposure is worse.
Inventory and Per-Job Cost Tracking
Roofing materials are bulky, expensive, and easy to lose track of. A 30-square asphalt shingle job consumes shingles, underlayment, ice and water shield along the eaves and valleys, drip edge, ridge cap, vent flashing, pipe boots, nails, and disposal dumpsters. If you are not tracking these per-job, you cannot calculate true gross margin.
The cleanest approach is job costing at the line-item level — every load ticket from the supply house gets coded to the specific job. Software like Beacon PRO+, ABC Supply's myABCsupply, or QXO portals export purchase data that can be reconciled directly to your accounting system.
Critical wrinkles to handle:
- Manufacturer volume rebates (CertainTeed Master Shingle Applicator rebates, GAF Master Elite credits, Owens Corning Platinum incentives) should be booked as contra-COGS, not revenue. Treating them as revenue inflates your top line and distorts margin analysis.
- EagleView and Hover aerial measurement orders are per-job costs and should be allocated to the specific roof they measured.
- Dumpster rental and disposal fees vary by job size and should be tracked per-job. Many shops treat these as overhead and bury margin erosion.
- Returned overage material from finished jobs has actual resale value and should reduce the originating job's cost, not vanish into yard inventory at full price.
Crew Classification: W-2, 1099, or Both?
Roofing is one of the most heavily scrutinized trades when it comes to worker misclassification, and the regulatory landscape has been shifting.
The Department of Labor's 2024 final rule restored a six-factor "totality of circumstances" economic-reality test for determining whether a worker is an employee or independent contractor under the Fair Labor Standards Act. In early 2026, the DOL proposed rescinding the 2024 rule and reverting to an amended version of the 2021 rule, with enforcement currently in flux while the legal challenges work through the courts.
Whatever the federal rule of the day says, most states apply their own ABC test — and several use a stricter standard than the federal one. California, Massachusetts, and New Jersey are particularly aggressive. Under the strictest formulations, a worker is an employee unless:
- A. They are free from your control and direction.
- B. They perform work outside the usual course of your business.
- C. They are engaged in an independently established trade or business.
For a roofer, prong B is the killer. If your business is installing roofs and your subcontractor crew is installing roofs, you almost certainly fail prong B in ABC-test states regardless of contractual language.
Practical bookkeeping implications:
- Misclassified workers create workers' compensation audit exposure. When the WC carrier audits and reclassifies your 1099 crews as W-2-equivalent, you owe back premiums plus penalties.
- Track 1099 spend by crew lead so you can model the financial impact of a forced reclassification before an auditor does it for you.
- Maintain separation between W-2 production employees and any legitimately independent specialty subs (gutter installers operating with their own license, EPDM specialists working multi-job contracts) — and document that separation in your job files.
OSHA Fall Protection and the Accounting for Safety
Roofing fatalities are dominated by falls. Under 29 CFR 1926 Subpart M, workers engaged in residential construction six feet or more above lower levels must be protected by guardrails, safety nets, or personal fall arrest systems. Steep-slope roofs (slopes greater than 4:12) require fall protection with no monitoring-only alternative.
The accounting question: how do you treat the cost of compliance?
- Anchor systems and tie-off equipment that are durable and reusable across jobs are capital assets if they cross the de minimis threshold (often $2,500 per item under the IRS safe harbor). Otherwise they are expensed.
- Harnesses, lanyards, and lifelines issued to specific employees are typically expensed as supplies in the period purchased.
- OSHA training certifications (10-hour, 30-hour, Competent Person Training) are deductible business expenses but should be tracked per-employee in your HR records — they are required for compliance audits.
A failed OSHA inspection on a residential job carries citations that average several thousand dollars per violation, and repeat or willful violations escalate sharply. Treat fall protection as a non-negotiable line item, not a discretionary expense.
Section 179, Bonus Depreciation, and Equipment Decisions
Roofing fleets and equipment are capital-intensive. Crew trucks, dump trailers, lift gates, magnetic sweepers, conveyors, nail guns, generators, and tear-off equipment all qualify for accelerated depreciation under Section 179 and bonus depreciation.
Key 2026 planning points:
- Section 179 allows immediate expensing up to the annual cap (indexed for inflation), subject to phase-out at higher equipment-purchase thresholds.
- Bonus depreciation has been in a phase-down trajectory, but recent legislation has restored full bonus treatment for qualifying property — confirm the current year's percentage with your tax advisor before year-end equipment purchases.
- Heavy SUVs and pickups over 6,000 pounds GVWR remain a favored category for owner-operated roofing shops, with a separate cap that is more generous than the passenger-vehicle limit.
- Used equipment qualifies for bonus depreciation as long as it is new to your business.
Time large equipment purchases to align with strong revenue years rather than thin years — accelerated depreciation creates no value when you have no income to offset.
Workmanship and Material Warranty Reserves
Most residential roofing shops offer a workmanship warranty (commonly five to ten years) and pass through a manufacturer material warranty (30-year architectural shingle, lifetime transferable, etc.). The accounting question is whether you should reserve for warranty claims.
For tax purposes, warranty reserves are generally not deductible until the claim is actually paid (the all-events test). But under ASC 460 for book purposes, you should accrue an estimated warranty liability based on historical claim experience. For a typical residential re-roofer, this might be 0.5% to 1.5% of completed-job revenue.
If you offer a labor-only workmanship warranty separate from the manufacturer warranty, the manufacturer claim flows through a different process — you file the claim with the manufacturer, they ship replacement materials, and your labor cost to install the warranty materials is your reserve exposure.
Track warranty claims by manufacturer, by shingle line, and by installation crew. If a particular crew has elevated callback rates, your accounting data will surface it before your customer reviews do.
The KPIs That Actually Run the Business
Roofing is a high-volume, low-margin trade. The shops that thrive watch a small set of metrics weekly:
- Squares per crew-day. A good crew installs 6–8 squares per day; a strong crew hits 8–10; a poor crew lags at 4–5. Top performers achieve 4.5–5.5 labor hours per square start-to-finish.
- Gross margin by channel. Residential re-roof should run 30–35%; commercial 35–40%; insurance jobs 32–38%; repairs and maintenance 40–50%. The NRCA has reported that the average roofing contractor nets only about 2.8% — meaning half the industry makes less than that.
- Material cost as a percentage of revenue. Target 28–34%. Anything over 35% signals supplier-pricing problems or scope-creep.
- Labor as a percentage of revenue. Target 35–40%. Over 42% suggests crew productivity issues or pricing weakness.
- Overhead as a percentage of revenue. Industry average is around 19%.
- Sold-to-estimated ratio for insurance jobs. Track what percentage of your Xactimate-written scope actually gets approved and paid. A consistently low ratio means your estimators are over-writing scope or your supplement workflow needs work.
- Average ticket size, lead-to-contract close rate, and days from contract signing to job completion.
A monthly P&L by job class — retail, insurance, repair, commercial — is the single most useful management report for a residential roofing shop. Combined with crew productivity tracking, it tells you within 90 days whether your shop is structurally profitable or one slow quarter from trouble.
Keep Your Job Costing Clean from Day One
Whether you run a two-crew operation chasing storms or a 30-crew shop with insurance claim specialists on staff, the financial difference between a profitable roofing business and an unprofitable one is rarely the price you charge — it is whether your books accurately tell you what each job actually cost, what you have truly earned, and what you still owe.
Beancount.io provides plain-text accounting that gives roofing contractors complete transparency over every job, every supplemental claim, and every material purchase — no black boxes, no vendor lock-in, and a full audit trail when the WC carrier or the IRS comes knocking. Get started for free and see why operators who care about understanding their numbers are switching to plain-text accounting.