Skip to main content
2,200+ service businesses benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level
Pillar guide

DSO and Collections for Contractors

The median contractor collects 85.1% of what they bill, and waits weeks to see the rest. That gap, not your margin, is why a profitable job can leave you cash poor. Top-decile collection is 96.0%; the 11-point spread is the difference between cash-rich and cash-poor at the same trade and revenue. This guide is the full playbook on billing speed, retainage, AIA cycles, and AR escalation.

Try the 2-min diagnostic

85.1%

median contractor collection rate (top decile: 96.0%)

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 464 contractors with at least $100K in invoiced revenue, the median collection rate is 85.1%, meaning 85.1 cents of every invoiced dollar is in the bank. The top decile sits at 96.0%. 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. The widely cited collectability curve from the Commercial Collection Agencies of America shows recovery dropping from about 94% at 30 days to 74% at 90 days to 26% at 12 months (a general commercial-collections benchmark, not construction-specific).

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. On the Commercial Collection Agencies of America collectability curve, a receivable that reaches 90 days without proactive escalation collects at about 74%, and by 12 months about 26% (a general commercial-collections benchmark). 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 the operating layer does each week

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 backed by AI 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

Why is my contractor business profitable but has no cash?

Because profit is booked when you invoice, but cash arrives when you collect, and for contractors that lag is long. Construction payment-timeline research points to roughly 80+ days from invoice to payment for the average contractor (directional, aggregated across published payment reports), and the Billd 2025 National Subcontractor Market Report found subcontractors wait about 56 days on average with only around 5% paid inside 30 days. Layer on the fact that the median contractor only collects about 85% of what they bill (Level Index, n=464), plus retainage held back on project work, and a job that shows a healthy margin on paper can still leave you unable to make payroll. It is a timing and collection problem, not a profit problem, which is why it is the fastest cash to recover: the revenue is already earned.

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. Intervening at 14 days rather than 30 recovers materially more of a receivable over its life, because collection probability drops the longer an invoice ages. If you only look at AR aging at month-end, you've already missed 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 analyzedWeekly action cadence

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

No commitment. Real numbers, not generic advice.