Skip to main content
2,200+ contractors in the research universe benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level
Cash Flow

Seasonal Cash Flow: When Contractors Make and Lose Money

Sam YangEx-CFO across trades, SaaS & services · $2.5B in total PE/banking transactions · Stanford MBA
Updated October 8, 2026·Originally published July 3, 2025·11 minute read
Share

From Level's proprietary contractor research

The median contractor in the Level Index earns 47% of annual revenue in its three strongest months, then funds 12 months of overhead. A zero-revenue quarter is an extreme stress scenario for sizing reserves or testing available credit, not proof that the business has a structural defect. Use actual receipts and commitments for the base forecast.

Level Index top-three-month revenue share, n=217 companies with more than $500K revenue

11 minute readCash Flow

The three-month revenue concentration

Most contractors know their business is seasonal. What they don't know is how extreme the concentration actually is.

The median contractor generates 47% of annual revenue in just 3 months. Not roughly half. Not "it gets busy in the fall." Nearly half of the entire year's revenue lands in that company's three strongest months, which may or may not be one calendar quarter. Revenue is not cash: collections from those months can arrive weeks later.

At the 75th percentile, it's worse: 66% of revenue in the three strongest months. Two thirds of the year's work, recorded in three months that need not be consecutive. At the 90th percentile, the top 3 months account for 91% of total annual revenue. (Level Index, n=217 companies with more than $500K in revenue; the three strongest months need not be consecutive.) That's not seasonality. Those three months need not form a quarter, and recorded revenue concentration is not a measured cash-receipt schedule.

My private-equity operating background informs the planning questions here; the canonical research below has its own narrower samples. The concentration is easy to underestimate. Owners usually know they are "busy in Q4" or "slow in spring," but fewer have calculated what share of the year lands in their three strongest months. And that gap between feeling and knowing is where the cash flow crises happen.

The Revenue Concentration Problem

Here's what the Level Index distribution looks like (share of annual revenue earned in each company's three strongest months, n=217 companies with more than $500K revenue):

Performance TierRevenue in Top 3 MonthsWhat It Means
P2538%Over a third of annual revenue in three months
P50 (Median)47%Nearly half of annual revenue in three months
P7566%Two thirds of the year in three months, not necessarily consecutive
P9091%Effectively a three-month business

The previous monthly curve is retained as a legacy, unverified reference. Its source population was not documented, its eleven numeric months already sum to 100%, and May was missing. Do not treat the missing month as measured zero or use this curve to fund reserves.

Month% of Annual RevenueNotes
December14.1%Peak month for 20% of contractors
January13.4%Year-end carryover, emergency work
November11.6%Pre-holiday push
October11.5%Peak month for 15% of contractors
September8.2%Ramp into fall busy season
August7.6%
July7.4%
June8.2%
March6.3%Dead zone
April6.2%Dead zone
February5.5%Lowest month for most contractors
May-Only 11% of contractors peak Feb through May combined

Now here's a fictional monthly curve for a commercial or mixed-service contractor. It is an illustrative shape, not a measured industry average, and it is separate from the $6M profile further down:

Month% of Annual Revenue (fictional)Notes
December14.0%Peak month in this example
January13.0%Year-end carryover, emergency work
November11.5%Pre-holiday push
October11.0%Ramp into peak
September8.0%Ramp into fall busy season
August7.5%
July7.0%
June7.5%
May5.5%Dead zone
April5.5%Dead zone
March5.5%Dead zone
February4.0%Lowest month in this example
Total100.0%

The pattern is stark, and the two measures differ. In this fictional curve, October through January is about half of annual revenue (49.5%), and February through May is 20.5%. Its top three months (December, January, November) total 38.5%, below the 47% Level Index median. That is expected. Averaging many firms' calendars together flattens the curve because firms peak in different months, while the Level Index measures each company's own three strongest months, wherever they fall, and then takes the median. A counterexample: two fictional firms, one earning 60% of revenue in December through February and one earning 60% in June through August, each have a 60% top-three share. Their pooled average curve shows only about 37% in December through February (assuming equal revenue and each firm's remaining 40% spread evenly over its other nine months). For a firm whose curve looks like this, spring isn't a slow season. It's a cash flow desert.

The earlier calendar peak-month shares (December 20%, January 15%, November 14%, October 11%) are legacy, unverified references, not part of the verified Level Index summary and not used in the reserve model. The two legacy notes conflict on October (15% in the table annotation, 11% here); the retained source cannot reconcile them. A note on methodology: the Level Index sample is cross-trade, not a separately measured HVAC, plumbing or electrical subset. Residential HVAC shops often see their peak in summer when AC demand spikes. If your business is primarily residential cooling, your curve will look different. The fictional commercial/mixed-service curve below peaks in Q4 and early Q1. Check your own history for possible budget-cycle, buildout or maintenance effects rather than assuming that pattern for every contractor.

What Happens During the Dead Months

Here's the part that kills contractors: revenue is seasonal. Costs are not.

Your techs need to get paid every two weeks whether you're running 40 jobs or 4. Your rent, insurance, truck payments, and lease obligations don't adjust to your revenue curve. Your material suppliers expect payment on their terms, not yours.

Here's a fictional profile with stated assumptions (not a real client) to show the mechanics:

Fictional $6M annual revenue HVAC contractor:

  • Peak quarter (Oct, Nov, Dec) revenue: $2.23M (37% of annual), about $740-750K per month
  • Dead stretch (Feb through May) revenue: about $360K per month, so the Feb-Apr dead quarter is $1.08M (18% of annual)
  • Monthly fixed overhead (payroll, rent, insurance, trucks): ~$280K
  • Monthly variable cost at peak: ~$180K
  • Monthly variable cost in dead months: ~$90K
  • Simplification: cash arrives in the month work is billed. A real forecast uses expected receipts, which lag billing

In peak months: Revenue ~$740K, costs ~$460K, so about $280K of monthly operating surplus. Cash flows in. You feel great. You buy a new truck. You give bonuses.

In dead months: Revenue ~$360K, costs ~$370K. You're cash flow negative by about $10K every month, February through May. That's $40K of cash burn before a single surprise expense, repair callback, or delayed payment, and the gap widens fast if dead-month revenue misses plan.

Contractors usually cover this gap with one of three approaches:

  1. A line of credit. This works if used deliberately. Draw in February, repay in November. Cost: interest and fees on the draw at whatever rate your lender sets. Manageable if planned.
  2. Cash reserves built during peak. This is the right answer. Set aside a share of peak-month surplus sized to your own dead-month deficit plus a stress buffer (Step 4 shows how). Fewer owners do it than should.
  3. Survival mode. Cut hours, delay vendor payments, defer maintenance, pray. It works until it doesn't.

Forecasting the Seasonal Cycle

The fix isn't complicated. It's just uncomfortable because it forces you to plan 6 months ahead instead of 6 weeks.

Step 1: Map your own seasonal curve. Pull 24 months of revenue data from QuickBooks. Plot monthly revenue as a percentage of annual. You'll see your pattern immediately. Compare your own top-three-month share with the Level Index percentiles above. The monthly shape will be your own, and every trade and geography has its own wrinkle.

Step 2: Map your cost floor. This is the amount you spend every month regardless of revenue. Payroll (including yourself), rent, insurance, truck payments, software, minimum material orders. As an illustrative planning assumption only (not a measured benchmark), a $3-10M contractor might land somewhere in a $150-350K/month range. Calculate yours. It moves slowly, not with monthly revenue.

Step 3: Plot the gap. Overlay your revenue curve on your cost floor. The months where revenue exceeds cost are your surplus months. The months where cost exceeds revenue are your deficit months. Add up the deficit. That's how much cash you need in reserve (or available on a line) to survive without stress.

Step 4: Build the reserve during peak. Using the fictional profile above, the base-case dead-season deficit is $40K (February through May at about $10K per month). Spread across the three peak months (October through December), that is about $13.3K per month, roughly 5% of the $280K monthly peak surplus. Now stress it. If dead-month receipts come in at $300K instead of $360K while costs stay at $370K, the deficit is $70K per month, or $280K over four months. That is about $93.3K per peak month, roughly 33% of the peak surplus. The set-aside percentage is an output of your own curve, not a fixed rule. Setting aside cash does not change October's $280K modeled operating profit. In the stress case, $93.3K is restricted by your reserve policy and $186.7K remains available for other cash uses; no extra expense or second profit deduction is created.

Here is the fictional base case as the 13-row running cash balance (opening balance plus 12 months). It assumes cash arrives in the month work is billed and excludes owner draws, taxes and loan principal. A real forecast should replace billed revenue with expected cash receipts by month.

MonthCash inCash outNetRunning balance
Opening (Jan 1)$100K
January$520K$430K+$90K$190K
February$360K$370K-$10K$180K
March$360K$370K-$10K$170K
April$360K$370K-$10K$160K
May$360K$370K-$10K$150K
June$420K$390K+$30K$180K
July$440K$400K+$40K$220K
August$460K$410K+$50K$270K
September$490K$420K+$70K$340K
October$740K$460K+$280K$620K
November$750K$460K+$290K$910K
December$740K$460K+$280K$1,190K

This is the single most important reframe in contractor financial management: peak-month profit is not discretionary income. A portion of it is pre-payment for the dead months. The contractors who understand this don't panic in March. The ones who don't are the ones drawing emergency lines of credit to cover payroll.

Free benchmark review

See how your cash cycle benchmarks.

Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.

Strategies for Smoothing the Curve

You can't eliminate seasonality, but you can reduce the concentration.

Service Agreements as Revenue Smoothing

This is the most underused lever. A well-structured service agreement book generates monthly recurring revenue that flows year-round. If your SA book represents 15-20% of total revenue and it's properly priced, it functions as a floor under your dead months.

The catch: some SA books are mispriced and potentially unprofitable. In the Level Index, service-agreement gross margin had a median of 37.9% but a 10th percentile of -30.4% (n=259 companies with at least $10K in SA revenue). Running a SA book at negative margins doesn't smooth your cash flow. It accelerates the burn. Audit the SA margins first, then grow the book.

Accelerate Billing During Peak

The fastest way to convert seasonal revenue into cash is to invoice the same day the work closes. During your peak months, each day of billing delay holds back more dollars. In the fictional profile, November billings of $750K are about $25K per calendar day, so a 5-day lag keeps about $125K out of the collection cycle that same-day invoicing would have started collecting. That is a one-time acceleration of cash, not new revenue or recurring profit. For reference, the Level Index median billing speed among post-completion invoicers is 7 days from work complete to invoice (n=733 companies overall; the all-company median is 1 day because about 25% progress bill).

Progress billing on commercial jobs is even more critical during the busy season. Don't wait for job completion. Bill on percentage of completion monthly, or more frequently if the contract allows it.

Collect Before the Slowdown

Your dead-season cash position is influenced by peak-season collections, opening cash, contribution margin, overhead, reserves and debt service. If you're carrying $400K in AR into February, some of that is peak-season revenue you haven't collected yet. It's December's cash, sitting in your customer's account while you're burning through reserves.

The collection rate problem hits hardest in seasonal businesses because the timing matters more. In the Level Index, collection rate (cash collected as a share of billed revenue) had a median of 85.1% across 464 contractors. The dataset also carries a legacy 92-96% comparison span retained for compatibility. It is not a universal target or exact P75-P90 endpoints, its measurement window is not published, and it is not an aged-AR recovery target. In the fictional profile, collecting 96% instead of 85% of $740K in October billings changes cash in hand by about $81K (11 points times $740K). This is a collection sensitivity outside the cash-flow table, which assumes same-month receipt. Not all of that gap is recoverable. Part is timing that would arrive in December or January anyway, and part may be disputed, retained or uncollectible. Only the portion you actually pull forward helps the dead months, and pulling it forward is a one-time timing gain, not recurring profit.

Shift Work Into the Dead Season

Some contractors actively pursue different work during the slow months. Retrofit projects, energy audits, indoor remodels, planned maintenance. The revenue won't match peak months, but in the fictional profile, dead-month revenue is already about $360K against $370K of cost. If each dead month adds $200K of off-season work at an assumed 30% contribution margin after its own incremental labor and materials, that adds $60K per month and turns the modeled -$10K month into about +$50K. Adding $100K per dead month adds $30K and produces about +$20K, before other changes. Use actual contribution, not gross added revenue, to evaluate the work.

The trade-off: off-season work is often lower-margin, and you risk overextending your team if peak season starts early. Price accordingly and build break clauses into the contracts.

When Seasonality Doesn't Apply

The contrarian take: not every contractor is equally seasonal.

Pure service and maintenance companies (no construction or project work) tend to have flatter revenue curves. Emergency demand varies by local weather, equipment and customer mix; January and July are not universally equally busy. If your business is predominantly reactive service, your top-three-month share might sit near or below the Level Index 25th percentile (38%) rather than the 47% median. Measure it.

Contractors with diversified trade coverage (HVAC + plumbing + electrical under one roof) can offset seasonality because different trades peak at different times. Cold-weather plumbing calls or shoulder-season HVAC installs may have different patterns, but inspect your own local history. The Level seasonality sample is cross-trade, not split by trade. A diversified mix can smooth the curve when its actual peaks and contribution differ.

Government and institutional contractors often operate on fiscal year cycles that don't track calendar seasonality. School districts spend in summer. Municipalities spend before fiscal year-end. If your book is 60%+ government, your seasonal pattern follows budgets, not weather.

If you're in one of these categories and your cash flow is still volatile, the problem probably isn't seasonality. It's likely slow collections, retainage drag, or overhead that's sized for peak revenue running year-round. Those are fixable problems, but they require different solutions than seasonal forecasting.


The Bottom Line

In the Level Index (n=217 companies with more than $500K revenue), the median contractor earns 47% of annual revenue in its three strongest months. At the 75th percentile, it's 66%. The revenue curve is steep, predictable, and often missing from financial planning.

Revenue is seasonal. Payroll is not. Rent is not. Insurance is not. The contractors who survive the dead months are the ones who planned for them during the peak months, and when the linked cash-days analysis reports a median of 21.4 days of cash (check that page for its sample and definition; it is not one of the verified Level Index metrics cited here), even one bad month without reserves can become a crisis. That means quantifying the gap, building reserves, accelerating collections before the slowdown, and treating October's profit as partially spoken for by February's payroll.

This isn't complex financial engineering. It's a 13-row spreadsheet with monthly revenue, monthly cost, and the running cash balance. But most contractors have never built it, and most bookkeepers don't think to ask. That's where a fractional CFO changes the conversation.

Q: How does Level help with seasonal cash flow planning? A: Depending on agreed engagement scope, we build a rolling 12-month cash-flow model from accounting data, subject to the installed QuickBooks edition or other system and authorized access. We compare your actual seasonal pattern with fixed commitments and update it on the agreed cadence. A forecast tests shortfalls; it cannot guarantee that every deficit is flagged or prevented. The first audit is free.

Q: How far in advance should I start planning for the dead season? A: Start reserving cash 4-5 months before your dead season begins. If February is your trough, start setting aside surplus in October. Start with the total modeled cash deficit for each dead month, then add a stress buffer for slower collections, lower revenue and higher costs as in Step 4. Check opening cash and payment timing rather than treating accounting revenue minus cost as the entire cash requirement. If you don't know your monthly cost floor, that's the first thing we calculate.

Q: Can faster invoicing really help with seasonal cash flow? A: It can, as a one-time timing gain. Run the arithmetic on your own numbers: peak-month billings divided by the days in the month, times the days of lag you remove. In the fictional profile, $750K of November billings is about $25K per day, so moving from 5-day to same-day invoicing pulls about $125K of collections earlier, assuming customers pay on the same terms. It does not add revenue or recurring profit, and it only helps if those customers actually pay sooner. Read our full billing speed benchmarks for the data.

Benchmark source scope

Measured Level Index comparisons on this page come from the canonical aggregate dataset. Each metric retains its own eligible population and definition; the broader founding-team research universe of 2,242 contractors and $13.25B of job revenue is provenance, not a count of Level clients or the sample of every metric. Fictional scenarios and legacy, unverified references are labeled separately.

Share

Get the next one

Want next week's benchmark in your inbox?

One email a week. Real numbers from 2,200+ contractors in the research universe. No fluff. Unsubscribe anytime.

Sam Yang

About the author

Sam Yang

Founder & CEO

Founder of Level, the always-on finance team for contractors, service businesses, and ecommerce brands. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses, $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. The Level founding team's analysis of 2,200+ contractors ($13.25B in job revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.

LinkedIn

See how your cash cycle benchmarks.

Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.

2,200+ businesses benchmarked$13.25B in revenue analyzedWeekly action cadence

No credit card. Start with a 15-min call. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.