Roofing Business Problem · Cash Flow

Roofing Contractor Cash Flow Problems: Causes and Fixes

Roofing companies can be profitable on paper and broke in real life. Here's why cash flow problems happen — and the bookkeeping systems that prevent them.

Book Free 15-Min Assessment → Find $10K in profit leaks in 90 days or first month free
✓ QuickBooks ProAdvisor ✓ Roofing specialist ✓ Plans from $600/mo
$10K+Profit leak guarantee
14 daysTo clean books
$600Starting monthly rate

Profitable on paper, broke in real life. It's the most frustrating position in roofing: the income statement says you're making money, but the bank account says otherwise. Construction cash flow is shaped by timing — and roofing has more timing complexity than almost any other trade. Understanding the specific mechanisms helps you fix the right problem instead of just watching your bank account and hoping.

The 5 Roofing Cash Flow Killers

1. Materials Paid Before Insurance Checks Clear

Insurance restoration jobs create a structural cash flow gap: you order and pay for materials before the ACV check arrives. If your supplier terms are net-30 and the insurance adjuster takes 45 days to release payment, you're floating $15,000–$40,000 per job. With multiple active jobs, this gap compounds fast.

Fix: Collect 30–40% deposit before ordering materials. Negotiate net-45 or net-60 with your primary supplier once you have payment history. Track job-level cash position in QuickBooks Projects so you can see which jobs are cash-negative and for how long.

2. Invoicing at Job Completion Instead of on Draws

Many roofing contractors invoice once — when the job is done. On a $50,000 job that takes 3 weeks, this means 3 weeks of materials and labor paid out before a dollar comes in. Progress billing (invoicing 40–50% upfront, 40% at substantial completion, 10–20% at final) dramatically shortens the cash cycle.

Fix: Build a draw schedule into every contract. Invoice at mobilization (40%), at substantial completion (40%), and at final walk-through and punchlist (20% minus retainage). QuickBooks Projects tracks billing vs. completion for every job.

3. Retainage Sitting Uncollected for Months

Retainage held on completed jobs is cash the business has earned but not collected — and without a tracking system, it often stays that way. A roofing company at $2M revenue typically has $40,000–$120,000 in outstanding retainage across completed jobs. That's cash sitting in customers' accounts because nobody sent the completion invoice.

Fix: Create a Retainage Receivable account in QuickBooks (Other Current Asset). Invoice for retainage the same day you submit job completion documentation. Run a monthly retainage aging report — follow up on anything over 45 days. Full guide →

4. Seasonal Revenue Swings Without Cash Reserves

Roofing revenue is seasonal — storm season creates surges, winter creates dips. Without a cash reserve built from busy months, the slow months create payroll and overhead stress. Most roofing contractors under $3M don't have a formal cash reserve strategy because they've never had clean enough monthly books to see the seasonal pattern clearly.

Fix: Run 12 months of P&L by month to identify your seasonal pattern. Target a cash reserve equal to 2–3 months of fixed overhead. Set aside 10–15% of gross profit during peak months specifically for the reserve. This requires monthly books that are accurate enough to trust — which is the foundation of everything else here.

5. Tax Liabilities Not Set Aside Through the Year

Roofing contractors often underpay quarterly estimated taxes because their books don't give them an accurate picture of taxable income. Then the April tax bill — sometimes $40,000–$80,000 or more for a $2M company — arrives as a cash emergency. This is a bookkeeping problem: if monthly P&L is accurate, quarterly estimated payments can be calculated correctly and set aside before spending.

Fix: Set aside 25–30% of net profit monthly into a separate tax reserve account. Provide your CPA with monthly accrual-basis financials so quarterly estimates are accurate. Catch up on any prior underpayments before penalties compound.

The Common Thread: Bookkeeping That's Too Late and Too Inaccurate

Every cash flow problem above is worsened by books that are weeks behind, cash-basis instead of accrual, and not structured for roofing-specific cost tracking. When you can't see your real financial position until 6 weeks after month-end, you make cash decisions blind.

JobCostBooks closes every client's books within 5 business days of month-end. You see last month's P&L, job profitability, retainage aging, and balance sheet by the 10th of every month — in time to make decisions, not just review history. See what's included →

Fix Your Roofing Cash Flow

Book a free 15-minute QuickBooks screen-share. JobCostBooks will identify your specific cash flow gaps and show you how to close them.

Book My Free 15-Min Assessment →

$10K profit leak guarantee in 90 days · Plans from $600/mo · hello@jobcostbooks.com