Roofing Bookkeeping Is Not Like Other Trades
Bookkeeping for roofers has a different set of challenges than bookkeeping for HVAC, plumbing, or electrical contractors. The revenue is lumpier, the labor model is different, and the cash flow dynamics can swing wildly depending on whether you are doing retail replacements, insurance restoration, or commercial work.
Most roofing companies outgrow their bookkeeping setup long before the owner realizes it. The QuickBooks file that worked at $1M is completely inadequate at $5M, and by $10M the lack of financial visibility is actively costing money. According to SBA guidance on financial management, maintaining accurate financial records is foundational to business health, but for roofers the specifics of what to track and how to structure it are what matter.
Here is what bookkeeping for a roofing company actually needs to look like, where most roofing companies get it wrong, and what your books should be telling you every month.
Looking for done-for-you bookkeeping rather than a how-to? See our roofing bookkeeping service — built specifically for roofing companies in the $3M–$30M range.
The Roofing P&L: What It Should Look Like
A roofing company P&L needs to be structured differently than a generic small business profit and loss statement. The line items matter because roofing has a unique cost structure: heavy material costs, a labor force that is often a mix of W-2 crews and subcontractors, and revenue that can spike and crash based on weather events.
At the top, revenue should be broken out by type. At minimum, separate residential from commercial. Ideally, break it further into retail replacements, insurance restoration, repairs, and commercial projects. Each of these has a different margin profile, and if they are all lumped into one revenue line, you have no idea which work is actually making you money.
Cost of goods sold for a roofer is dominated by materials and labor. Materials typically run 25 to 35 percent of revenue for residential work and can be higher for commercial depending on spec requirements. Your material line should be broken into shingles and underlayment, decking and lumber, flashing and accessories, and dumpster and disposal costs. If you are buying everything through one supply house, get the reporting broken out by category so your bookkeeper can code it properly.
Direct labor is the other major COGS component. For roofing companies using W-2 crews, this is crew wages plus payroll taxes plus workers comp. For companies using subcontractors, this is the sub invoices. Many roofers run a hybrid model with some W-2 crew leads and sub crews for overflow. Your books need to show both clearly, because the cost structure and tax implications are completely different.
Gross margins for well-run roofing companies typically land at 35 to 45 percent on residential work. If you are below 35 percent, you either have a pricing problem or a material waste problem. Commercial gross margins are usually tighter, 25 to 35 percent, because the work is bid competitively.
Below gross profit, your operating expenses should include sales and marketing, vehicle and equipment costs, insurance (GL and workers comp are significant for roofers), office and admin, and owner compensation. A well-run roofing company should target 13 to 15 percent net profit margins. Most roofing companies we see on first engagement are running 5 to 10 percent because of cost structure issues they cannot see in their current books.
Job Costing: The Non-Negotiable
See what your margins should be
In a free 30-minute call, we’ll calculate your true job costs, quantify what the gaps are costing you monthly, and give you the 3–5 highest-ROI fixes — ranked by impact.
Book a Free Call →Roofing is a project-based business. Every job has a different material spec, a different labor requirement, and a different margin. If you are not tracking profitability at the job level, you are flying blind.
Job costing means every material purchase, every labor hour, every sub invoice, and every overhead allocation gets tagged to a specific job. When the job is complete, you should be able to pull a report that shows total revenue, total direct costs, and gross profit for that job.
This matters because roofing jobs have wide variance. A residential tear-off and replace might generate 45 percent gross margin. A commercial re-roof bid tight against three competitors might come in at 22 percent. An insurance restoration job with supplement payments might end up at 50 percent. Without job costing, these all blend together and you think you are making 35 percent when in reality you are making great money on some jobs and losing money on others.
The other reason job costing matters is crew performance. When you can see profitability by crew, you know which crews are efficient and which ones are costing you money through slow production, material waste, or callbacks. This is data you cannot get from a summary P&L.
Most roofing companies that come to us are not doing job costing. They have a general sense of which jobs went well and which did not, but no actual data. The first thing we do is set up job costing in their accounting system so they can start making decisions based on numbers instead of gut feel.
Insurance Restoration: The Bookkeeping Nightmare
If you do insurance work, your bookkeeping is inherently more complex than a company doing only retail replacements. Insurance jobs have multiple payment milestones, supplement payments that arrive weeks or months after the job is done, and deductible collections from the homeowner that may or may not happen.
The revenue recognition challenge with insurance work is significant. When do you book the revenue? When the claim is approved? When you start the job? When you finish? When you collect? The answer matters for your financial statements and your tax liability.
For most roofing companies, the practical approach is to recognize revenue at job completion and book receivables for the outstanding amounts. But you need to track each component separately: insurance company payment (the ACV check and any supplements), the homeowner deductible, and any depreciation recoverable. These have different collection timelines and different likelihoods of collection.
Supplement tracking alone can be a full-time job. If your bookkeeper is not tracking supplements by job with dates filed, dates approved, and amounts collected, you are almost certainly leaving money on the table. We have seen roofing companies with $50K to $200K in uncollected supplements simply because nobody was tracking them.
The Storm Surge Problem
This is something we see regularly with roofing clients. A major storm hits the market and suddenly a $3M roofing company is doing $8M in a year. Insurance work is pouring in, every crew is running seven days a week, and the owner is hiring additional sub crews to keep up with demand.
The bookkeeping challenge during a storm surge is real. Transaction volume triples or quadruples. Material purchases spike. New subcontractors need to be onboarded, W-9s collected, and payments tracked. Cash is flowing in fast but flowing out faster because you are paying crews and buying materials before insurance payments arrive.
Then the storm cleanup ends. Revenue drops back to $3M. But the cost structure is built for $8M. You have truck payments on vehicles you do not need, lease obligations on warehouse space, and crews expecting work that does not exist. If your books were not clearly showing you the trajectory during the surge, you wake up six months later in a cash crisis with bloated overhead and declining revenue.
The fix is simple in concept and hard in practice: during a storm surge, your bookkeeper should be producing monthly financials that clearly show the temporary nature of the revenue spike and flag any fixed cost commitments that will outlast the surge. Every new truck lease, every new hire, every warehouse expansion should be evaluated against sustainable baseline revenue, not storm-inflated revenue.
Subcontractor Management: The Compliance Minefield
Roofing relies on subcontractors more heavily than most other trades. In HVAC, plumbing, and electrical, the skilled labor is typically W-2 employees, especially at larger companies. Roofing is different. Many roofing companies, even large ones, use a significant number of sub crews for production work.
From a bookkeeping perspective, subcontractor management creates specific requirements. You need W-9s on file before you make the first payment. You need to track payments by sub throughout the year. You need to issue 1099-NEC forms to every sub you pay $600 or more in a calendar year. And you need to be genuinely comfortable that your subs are actually independent contractors and not misclassified employees.
The misclassification risk in roofing is real. The IRS and state labor departments actively audit the construction industry for worker misclassification. If you are telling your subs when to show up, providing their tools and materials, and they work exclusively for you, there is a reasonable argument they are employees regardless of what your contract says. The penalties for misclassification include back payroll taxes, penalties, and interest. For a company running $2M through subs annually, a reclassification could mean a six-figure tax liability.
Your bookkeeper should be maintaining a clean sub ledger with W-9s, certificates of insurance, and payment history. At year end, 1099 preparation should be straightforward because the data has been tracked all year, not a scramble in January to figure out who you paid and how much.
What Your Roofing Company Books Should Tell You Monthly
Every month, your bookkeeper should be delivering financials that answer these questions:
Revenue by type. How much came from retail replacements, insurance restoration, repairs, and commercial? Are you trending up or down in each category? Is your insurance mix changing? Revenue mix drives margin mix, so shifts here matter.
Gross margin by revenue type. Are your retail replacement margins holding? Did commercial margins compress because you bid too aggressively? Is insurance work generating the margins you expected after accounting for supplement collection rates?
Material costs as a percentage of revenue. This should be consistent month over month for similar work. If material cost percentage is climbing, you have either a pricing problem (not passing through supplier increases) or a waste and theft problem on job sites.
Labor cost by type. W-2 crew costs and sub costs should be tracked separately. If sub costs as a percentage of revenue are climbing, you are either doing more sub-heavy work or your sub rates have increased. Either way, it affects your margin.
Overhead as a percentage of revenue. For roofing, total overhead should run 20 to 25 percent of revenue. If it is creeping above 25 percent, you are either overstaffed, overspending on marketing, or carrying fixed costs that do not match your revenue level.
Accounts receivable aging. For roofing companies doing insurance work, AR aging is critical. How much is outstanding over 30 days? Over 60? Over 90? Stale receivables in roofing are often uncollected supplements or deductibles that nobody is chasing.
Cash position and forecast. Where are you today and where will you be in 30, 60, 90 days based on your backlog and commitments? This is especially important for companies with seasonal revenue patterns or insurance-dependent revenue.
Common Roofing Bookkeeping Mistakes
After working with dozens of roofing companies, these are the patterns we see most frequently.
Not separating revenue by type. Everything goes into one revenue line. You cannot see margin by work type. You do not know if your insurance work is subsidizing unprofitable retail work or vice versa.
Booking materials to one expense account. All materials go to Materials Expense. You cannot see shingles vs. lumber vs. flashing vs. dumpster costs. You cannot identify pricing opportunities or waste.
Mixing W-2 and sub labor. Crew wages and sub payments are in the same account. You cannot see the true cost of each labor model or make informed decisions about whether to hire W-2 crews or use more subs.
No job costing. Revenue and expenses are tracked at the company level but not at the job level. You think you are making 35 percent gross margin but you have no idea which jobs are profitable and which are not.
Ignoring supplement tracking. Supplements filed but not followed up on. We routinely find $50K to $200K in aged supplements that were never collected because nobody was tracking them.
Not reconciling monthly. Bank accounts, credit cards, and loan accounts are not reconciled monthly. Transactions are missed, duplicated, or miscoded. The longer reconciliation goes, the harder and more expensive it is to clean up.
When to Level Up Your Bookkeeping
Most roofing companies start with the owner’s spouse doing the books, or a part-time bookkeeper who handles everything from invoicing to bank reconciliation. That works until it does not.
The inflection points where you need to level up are predictable. At $2M to $3M in revenue, you need a dedicated bookkeeper who understands construction accounting and can do job costing. At $5M, you need someone who can produce monthly financial packages with the detail described above. At $10M and above, you should have a bookkeeper plus a controller or outsourced CFO who can do analysis, forecasting, and strategic financial planning.
If your books are always two to three months behind, if you cannot tell me your gross margin by job type, or if your year-end tax prep is a three-month ordeal because the books are a mess, you have outgrown your current bookkeeping setup. The cost of upgrading is almost always less than the money you are losing from lack of visibility.
If you are looking for bookkeeping that actually gives you the financial visibility to run your roofing company, our roofing bookkeeping services are built specifically for contractors in your position.
Related: Residential vs. Commercial Contracting: Financial Differences
Related: Working Capital for Contractors: How Much Cash You Actually Need
Related Reading
- Cash vs. Accrual Accounting for Contractors
- Capitalize vs. Expense: When to Use Each Method
- The Complete Guide to Financial Management for Home Services
Raymond Gong is the founder and managing partner of Profitability Partners, a fractional CFO and bookkeeping firm serving small to mid-sized businesses nationwide. With expertise spanning financial reporting, cash flow management, tax planning, and ServiceTitan accounting integration, Raymond helps home services companies, startups, and growing businesses build the financial infrastructure they need to scale confidently. He specializes in translating complex financial data into clear, actionable insights — so owners can make smarter decisions about growth, profitability, and exit planning. Based in Tampa, FL, Raymond works with clients across HVAC, plumbing, electrical, and roofing to optimize their books, streamline reporting, and prepare for what's next.
Connect on LinkedInSee where your margins are leaking
Book a free consultation with a senior partner. We'll review your situation and tell you honestly if we can help.
Book Free Consultation →