DSO at the Biggest U.S. Contractors: 60–108 Days (And Why Yours Is Different)

Two Ways to Measure DSO — And They Give Very Different Answers
When I talk to contractors about days sales outstanding, there's usually a disconnect. They've heard "DSO" thrown around by their accountant or a PE firm, but the number they calculate from their invoicing system doesn't match what they see in industry reports.
That's because there are two fundamentally different ways to measure DSO — and public companies use a different method than most private contractors.
Public company DSO (GAAP balance sheet method):
DSO = (Accounts Receivable / Annual Revenue) × 365
This uses the AR balance from the balance sheet — which includes billed AR, unbilled AR, retainage, and contract assets. It's a point-in-time snapshot of how much revenue is tied up in receivables.
Private contractor DSO (invoice-level method):
DSO = Average days from invoice date to payment date
This is what your FSM or accounting software calculates — the actual time between sending an invoice and getting paid.
Both are valid. They measure different things. And the gap between them explains a lot about why public company DSO looks so high.
What the Public Companies Report
Here's DSO for the five largest publicly traded specialty contractors, calculated from their most recent 10-K filings:
| Company | Revenue | AR (net) | DSO | DPO | Current Ratio |
|---|---|---|---|---|---|
| Comfort Systems (FIX) | $9.1B | $2.7B | 108 days | 37 days | 1.21x |
| EMCOR Group (EME) | $17.0B | $4.2B | 91 days | 33 days | 1.22x |
| Limbach Holdings (LMB) | $647M | $133M | 75 days | 57 days | 1.44x |
| APi Group (APG) | $7.9B | $1.6B | 72 days | 35 days | 1.50x |
| IES Holdings (IESC) | $3.4B | $552M | 60 days | N/A | 1.71x |
Sources: FY2025 10-K filings (FIX, EME, APG, LMB filed Feb–Mar 2026; IESC filed Nov 2025).
Why Comfort Systems Shows 108 Days
Comfort Systems' 108-day DSO looks alarming until you understand what's in their AR balance.
Their 10-K breaks it out: $2.58B in billed AR, $123M in unbilled AR, plus $89M in costs and earnings in excess of billings. That $2.7B combined figure includes:
- Progress billing on large construction projects — revenue recognized but not yet billed per contract terms
- Retainage — amounts withheld by customers until project completion (typically 5–10%)
- Unbilled work — revenue earned but invoice not yet issued
For a company doing 63% new construction work, a significant portion of AR is structural — it's not "slow collections," it's the nature of construction billing.
IES Holdings, by contrast, has a 39% residential segment where billing cycles are much shorter. Their 60-day DSO reflects that mix.
The Cash Conversion Cycle
DSO alone doesn't tell the full story. What matters is the spread between how fast you collect and how fast you pay — the cash conversion cycle.
| Company | DSO | DPO | Cash Cycle (DSO – DPO) |
|---|---|---|---|
| Comfort Systems | 108 | 37 | 71 days |
| EMCOR | 91 | 33 | 58 days |
| APi Group | 72 | 35 | 37 days |
| Limbach | 75 | 57 | 18 days |
Limbach has the tightest cash conversion cycle at 18 days — they collect in 75 days and pay suppliers in 57 days. That's only 18 days of working capital they need to finance.
Comfort Systems, despite the highest DSO, has a 71-day cash cycle. At $9.1B in revenue, that's roughly $1.8B in working capital tied up at any given time. They can afford it — they generated $1.2B in operating cash flow last year and sit on $982M in cash.
Most $5–30M contractors can't.
How This Compares to Private Contractors
From the Level Index, which analyzes operational data from 2,242 contractors:
- 82% of contractors wait 30+ days past payment terms to collect
- Collection rate median: 80.8% (meaning 19.2% of billed revenue is outstanding at any point)
- Billing speed median: 1 day (but adjusted for progress billers, the real median is 7 days)
- Collection probability drops from 94% at 30 days to 26% at 12 months
The difference between public and private contractor DSO isn't just the number — it's the infrastructure behind it.
Public contractors have:
- Dedicated AR teams and credit departments
- Automated billing systems tied to project milestones
- Contractual payment terms enforced with legal resources
- Diversified customer bases that reduce concentration risk
Most private contractors have the owner calling customers to ask where the check is.
What PE Firms Look at During Diligence
When a PE firm evaluates your business for acquisition, they calculate DSO from your balance sheet — the same way public companies report it. They also look at:
AR aging: What percentage of your receivables are current (0–30 days), 30–60, 60–90, and 90+? Anything over 90 days gets heavily discounted in their model.
Customer concentration in AR: If 40% of your outstanding AR is from one customer, that's a risk they price. One disputed invoice could blow up your cash flow.
Retainage exposure: How much of your AR is retainage? Is it documented? When does it convert to cash? Retainage that's been outstanding for 12+ months is effectively a write-off.
Write-off history: What percentage of AR do you write off each year? Construction bad debt runs 1.5–3% of credit sales. If yours is higher, they'll want to know why.
The Practical Takeaway
You don't need to match IES Holdings' 60-day DSO. But you should know your number — and know what's driving it.
Calculate your GAAP DSO: (Total AR including retainage / trailing 12-month revenue) × 365. This is the number a buyer will calculate.
Calculate your invoice-level DSO: Average days from invoice to payment. This is the number you can actually improve.
Tighten the cash cycle: If your DSO is 90 days and you're paying suppliers in 15 days, you're financing 75 days of working capital. Every day you close that gap frees up cash.
Benchmark against the right comp: A commercial mechanical contractor should benchmark against Comfort Systems or Limbach, not IES Holdings. Revenue mix drives DSO more than operational efficiency.
The full operating benchmarks for all five public contractors — including DSO, DPO, current ratio, FCF margin, capex, and ROE — are in the Level Market Monitor.
FAQ
Q: What's a "good" DSO for a private contractor?
It depends on your revenue mix. Residential and service-heavy contractors should target 30–45 days. Commercial contractors with project work will naturally run 60–90 days due to retainage and progress billing. The key is knowing your number and trending it monthly.
Q: How does DSO affect my company's valuation?
Directly. Lower DSO means less working capital tied up in receivables, which means more free cash flow. PE firms model working capital requirements as part of the purchase price adjustment. High DSO = more cash locked up = lower effective purchase price.
Q: Why is DPO important alongside DSO?
Because the spread between DSO and DPO is your cash conversion cycle — the number of days you need to finance from your own cash. Public contractors maintain 18–71 day cash cycles. If yours is 90+ days, you're effectively running a bank for your customers.
Q: How do I improve my DSO?
Three levers: (1) Invoice faster — the Level Index shows billing speed is the most controllable variable. (2) Enforce payment terms — stop accepting "net-60" from customers who should be net-30. (3) Reduce retainage exposure — negotiate retainage release at substantial completion, not final completion.
About the author
Sam Young
Founder of Level. Former private equity investor and investment banker. Built AI-powered accounting products while building financial products for 1,000+ commercial contractors — benchmarking financial data across 2,200+ contractors in HVAC, plumbing, electrical, and mechanical trades. Operations analytics work with PE-backed contractor portfolios across the trades. Co-founded a real estate tax optimization firm, where his team has analyzed over $1B in real estate assets. Stanford MBA.
LinkedIn