Skip to main content
2,200+ service businesses benchmarked. How do your margins stack up? See where you stand →
Level
Pillar guide

DSO and Collections for Contractors

The median contractor collects 80.8% of invoiced revenue. Top decile: 94.8%. The 14-point gap is the difference between cash-rich and cash-poor — same trade, same revenue. This guide is the full playbook on billing speed, retainage, AIA cycles, and AR escalation.

80.8%

median contractor collection rate (top decile: 94.8%)

7 days

median billing delay among non-progress billers

26%

collection probability on AR past 12 months

What DSO is and why it matters more than revenue

Days Sales Outstanding measures how long it takes you to collect cash after invoicing. A contractor with 30-day DSO collects in a month. A contractor with 90-day DSO takes a quarter.

On $10M in annual revenue, a 60-day swing in DSO is roughly $1.6M of cash that's either in your account or sitting in a customer's. At an 8% cost of capital, the spread between a well-run contractor and a poorly run one costs $130K+ a year in pure financing cost — before any bad debt.

Most contractors track revenue obsessively and DSO not at all. That's how profitable companies run out of cash.

The takeaway: Cash flow problems are usually DSO problems wearing a costume. If your P&L looks healthy and your bank account doesn't, look at DSO first.

Collection rate: what good looks like

Across 587 contractors with at least $100K in invoiced revenue, the median collection rate is 80.8% — meaning 80.8 cents of every invoiced dollar is in the bank. The top decile sits at 94.8%. The bottom decile collapses to 38.8%.

Some of the gap is normal working capital — recent invoices, retainage, AR not yet due. But the spread between contractors at 71% (P25) and 95% (P90) reveals real differences in AR management. Construction bad debt runs 1.5–3% of credit sales industry-wide. Collection probability drops from 94% at 30 days to 74% at 90 days to 26% at 12 months.

Contractors at the top decile aren't lucky. They escalate at 30 days, not 90.

Billing speed: the lever you control

Among contractors who don't progress-bill, the median delay between job completion and invoice is 7 days. One in four waits 14+ days. The bottom decile waits a full month. That's a month of free financing for the customer.

On a $50K job, a 30-day delay at 8% cost of capital costs $330 in pure float. Across hundreds of jobs per year, billing speed compounds into real money. The fastest contractors in our sample bill same-day or progress-bill — collecting cash while work is still in progress.

Owners who complain about cash flow often have an invoicing speed problem, not a revenue problem. The contractors with the best cash positions aren't the ones with the most revenue — they're the ones who bill fastest.

Get the next one

Get next week's benchmark by email

Real numbers from 2,200+ service businesses. One email a week.

Retainage and AR aging: the structural drag

Retainage on commercial work — typically 5–10% withheld until project completion — is structural cash drag. You can't eliminate it, but you can manage it. The contractors who collect retainage fastest have a retainage release process that starts 60 days before substantial completion, not 30 days after.

AR aging beyond 90 days is where bad debt hides. Once a receivable hits 90 days and there's been no proactive escalation, the math says you'll collect about 74% of it. At 12 months, you're at 26%. Treating 90 days as the start of escalation, not the start of awareness, is the single biggest improvement most contractors can make to collections.

Sub-contractors face the worst version of this. GCs treat them as interest-free lenders, holding payment 60–90 days as standard practice. The fix isn't to fight the system on every job — it's to price the cost of that float into your bid.

The collections playbook: what to actually do

  • Day 0: invoice the same day work completes (or progress-bill before). The number-one lever is speed.
  • Day 7: automated reminder if unpaid. Polite, just-the-facts. Most invoices get paid here.
  • Day 14: personal touch from accounting — phone call, not email. Confirm receipt, ask if anything is blocking payment (missing waiver, expired COI, PO issue).
  • Day 30: escalation. Owner-to-owner email or call. Past 30 days is where most contractors quietly give up. Don't.
  • Day 60: formal demand letter, payment plan, or finance-charge invocation. The longer past 60 days, the more aggressive you should be — collection probability is already starting to drop.
  • Day 90+: legal escalation, lien rights review, or factoring decision. By 90 days, you're playing for partial recovery, not full.

The takeaway: You don't need a collections agency. You need a calendar. The contractors with the best cash positions have a written escalation cadence and someone whose job it is to follow it.

Fixing the system: what a real CFO with AI leverage does

Most contractors don't have a DSO problem because they don't know how to collect — they have one because nobody owns the AR aging report. Office managers run payroll and cut checks. Bookkeepers reconcile. Owners chase quotes. Nobody calls past-due customers on day 14.

The fix is process, not personality. A weekly AR review with explicit owner accountability, an automated dunning cadence in QBO or your billing tool, and a monthly review of compliance gaps that stall payment (missing waivers, expired COIs, PO mismatches).

If you don't have someone on staff to own this, a fractional CFO with AI leverage is the cheapest version. We see your AR aging in real time, flag the past-due exceptions weekly, and run the escalation playbook so you don't have to.

Use the data yourself

Frequently asked

What's a good DSO target for an HVAC service contractor?

For service-heavy HVAC contractors (residential and light commercial), 30–45 days DSO is achievable and 35 days is a strong target. For commercial mechanical contractors with project work and retainage, 60–75 days is more realistic — anything under 60 is top-quartile. The metric only means something compared to your trade and mix. Public MEPs run 75–95 days DSO; that's the benchmark for project-heavy operators.

Should I charge late fees on past-due invoices?

Yes, if your contract supports it and your customers are commercial. Most state laws allow up to 1.5%/month (18% APR) on past-due commercial invoices when stated in the contract. Charging the late fee is less about the revenue and more about signaling. Customers who get charged late fees pay faster the next time. Residential is more nuanced — late fees can damage repeat-customer relationships, so use selectively.

Is factoring AR worth it?

Factoring (selling AR to a finance company at a discount) costs 1–4% of invoice value. For a contractor with 90+ day DSO and growth-driven cash needs, that 2% can be cheaper than the alternative (turning down work, missed payroll, distressed loans). For a contractor with 30-day DSO who's just impatient, factoring is expensive and signals to lenders that you can't manage your AR. Use it for working-capital expansion, not as a substitute for collections discipline.

How often should we run AR aging?

Weekly. Not monthly. The difference between a 14-day and a 30-day intervention is 20 percentage points of collection probability over the life of the receivable. If you only look at AR aging at month-end, you've already missed half the easy wins.

Stop letting cash sit in someone else's bank account.

We rebuild your AR process and recover what you've already earned. Free audit included.

2,200+ service businesses benchmarked$13.25B in revenue analyzed24-hour response

No credit card. 30-min audit. We only follow up if we can actually help.

No commitment. Real numbers, not generic advice.