What Is the Seasonal Cash Flow Problem for Roofing Contractors?
For most US roofing contractors — especially in the Midwest, Northeast, and Mountain states — roofing season runs May through October. Six months of active work must generate enough cash to sustain a year-round business: year-round insurance, year-round truck payments, year-round owner draw, and often year-round crew retention for skilled workers you don't want to lose.
A roofing company doing $1.5M in annual revenue might earn $1.2M from May to October ($200K/month) and $300K from November to April ($50K/month). Fixed overhead — insurance, vehicles, owner salary, software, phones — runs $25K/month all year. The cash flow math is brutal if you spend as you earn: you're $100K short by February.
How Do You Calculate the Cash Reserve a Roofing Company Needs?
The target cash reserve is 3–6 months of fixed overhead, held in a separate savings account before November 1st. Here's how to calculate it:
Step 1: List Your Fixed Monthly Overhead
| Expense | Example Amount | Notes |
|---|---|---|
| Owner salary / draw | $8,000 | Pay yourself consistently year-round |
| Base crew pay (retained workers) | $12,000 | Year-round employees only |
| Vehicle payments & insurance | $3,500 | All fleet vehicles |
| Business insurance (GL, workers' comp) | $2,800 | Monthly installment |
| Software (QBO, CRM, etc.) | $400 | All subscriptions |
| Phone & communications | $600 | Owner + crew phones |
| Office / storage rent | $1,200 | If applicable |
| Bookkeeping & accounting | $900 | Monthly retainer |
| Total fixed overhead | $29,400 |
Step 2: Calculate How Many Off-Season Months You Have
Count the months where revenue falls below fixed overhead. For a northern contractor: November, December, January, February, March = 5 months. For a Texas contractor: December and January only = 2 months.
Step 3: Set Your Reserve Target
Multiply fixed monthly overhead by number of lean months, then add 30% buffer. For the example above (5 lean months, $29,400 overhead): 5 × $29,400 = $147,000 × 1.30 = $191,100 reserve target. This feels like a lot. That's the point. Most contractors have never had $191K in the bank. The ones who do sleep well in January.
How Should Roofing Contractors Build a Reserve During Peak Season?
Build the reserve by treating it as a fixed expense, not leftover cash. Every month from May through September, transfer a fixed percentage of gross revenue into a separate savings account before spending anything else. A 10–15% gross revenue transfer each month will typically build the required reserve by October.
For a $200K/month peak-season contractor saving 12% of gross revenue:
- May: $200K revenue → $24K transferred to reserve
- June: $210K revenue → $25.2K transferred
- July: $220K revenue → $26.4K transferred
- August: $210K revenue → $25.2K transferred
- September: $180K revenue → $21.6K transferred
- October: $150K revenue → $18K transferred
- Total reserve built: ~$140K by end of October
This only works if the cash is in a separate account the owner can't easily access. Name it "Winter Reserve" in your banking app. Do not mix it with operating cash.
How Does Retainage Factor Into Seasonal Cash Flow?
Retainage — the 5–10% held on commercial contracts until job completion — is often the most overlooked piece of a roofing contractor's cash flow plan. A contractor doing $800K in commercial work annually at 8% average retainage has $64,000 sitting in retainage receivables at any given time. If not actively managed, that $64K doesn't get collected until well into the off-season — or not at all.
The September–October collection push is critical: before the season ends, every project manager should be closing out open jobs, submitting final completion documentation, and invoicing retainage. A contractor who collects $40K in retainage in October instead of February has an extra $40K sitting in the reserve account during the hardest two months of the year.
For how to set this up in QuickBooks so retainage is visible and trackable, see our guide on retainage tracking in QuickBooks Online.
Also see: common cash flow problems for roofing contractors and how to diagnose which one your company has.
How Do Roofing Contractors Manage Cash During the Off-Season?
Three levers: reduce variable costs, defer discretionary spending, and generate off-season revenue where possible.
Reduce Variable Costs
Seasonal roofing employees should be laid off in November with clear return dates. Keep only the year-round core: foreman(s), office staff, and the owner. Every month you carry a crew member who isn't generating revenue costs you $3K–$6K in wages, payroll taxes, and workers' comp.
Defer Discretionary Spending
New equipment, vehicle upgrades, software, marketing spend — defer everything discretionary to March or April, paid from spring cash flow rather than winter reserves. The winter reserve is for fixed obligations only: payroll, insurance, vehicles, debt service.
Off-Season Revenue
Some roofing contractors generate meaningful winter revenue from: roof inspections and certifications ($300–$800 each, takes 45 minutes), ice dam removal (high urgency, premium pricing), interior water damage referral partnerships with restoration contractors, and commercial annual maintenance contracts (flat fee, 12-month agreements). None of these replace peak-season revenue, but $15K–$30K in winter side revenue can make the difference between drawing from reserves or not.
How Do You Track Seasonal Cash Flow in QuickBooks?
Three QuickBooks tools that directly support seasonal cash flow management:
Cash Flow Projector
QuickBooks Plus and Advanced include a cash flow planner that projects your bank balance 30, 60, and 90 days out based on open invoices, scheduled bills, and historical patterns. Run it every Monday during the peak season to see when your reserve-building is on or off track.
Retainage Aging Report
Set up a Retainage Receivable account in QuickBooks and run an accounts receivable aging report filtered to that account monthly. In September, every retainage balance over 30 days should have a collection email queued. See retainage tracking in QuickBooks Online for the setup.
Monthly P&L Comparison
Run a P&L comparison report in QuickBooks: current year by month vs. prior year by month. This shows your seasonal pattern clearly and tells you whether this year's peak season is tracking ahead or behind last year — critical information for deciding how aggressively to build your reserve. See what your monthly P&L should show.
What Are the Warning Signs a Roofing Contractor Is Behind on Cash Flow?
These are the signs your cash flow plan isn't working — and you should see them by September, not December:
- No separate reserve account — If all your cash is in one operating account, you have no reserve. It will get spent.
- Outstanding retainage over 90 days — Retainage that's more than 90 days old without a collection plan is likely going to be a winter problem.
- Overhead growing faster than revenue — New vehicles, equipment, and hires during peak season feel good in August and look terrifying in February. Your P&L comparison report will show this.
- No visibility into job margins — If you don't know which jobs are profitable, you can't know how much net cash your peak season actually generated. You're operating on feel. See why roofing contractors stay busy but don't turn a profit.
- Operating line of credit used for payroll — If you're drawing on a line of credit to make payroll in January or February, you didn't build enough reserve in peak season. It's a symptom, not the disease — the disease is no cash flow plan.
Want JobCostBooks to Build This for You?
JobCostBooks sets up the monthly reporting, retainage tracking, and cash flow visibility your roofing company needs to survive — and thrive — through every season.
Book Free Assessment →