← All posts
contractor metricscash flowApril 23, 2026Sully Research Team

9 Contractor Dashboard Metrics Most Owners Ignore (Until Cash Flow Breaks)

The nine contractor metrics that sit in your CRM but almost never get pulled, until the cash flow crunch forces it. With 2025 Billd and ServiceTitan benchmarks and exact prompts for each.

Key takeaways

  • Billd's 2025 report found subs who accounted for working capital cost in bids had 24 percent margins versus 17 percent for those who did not.
  • 40 percent of subcontractors keep half or more of their profits tied up in operations, starving growth.
  • Trades DSO averages 56 days, while general contractors pay subs in 56 days on average even when they believe it is 30.
  • Most shops have 20 to 40 percent of their customer database dormant at any time, worth millions in reactivation revenue.
  • Invoca data shows 27 percent of calls go unanswered, costing roughly $1,200 per missed call in lost revenue.

Billd's 2025 National Subcontractor Market Report surveyed 800+ contractors and found the ones who tracked working capital cost in their bids ran a 24 percent profit margin. Those who did not ran 17 percent. Same trades, same markets, 7-point margin gap from a single metric nobody pulls until cash runs out.

The nine metrics below hide in every CRM and accounting system. Owners find them at 2 AM in December when the AR aging report finally gets opened. Pull them weekly instead and the cash crunch never shows up. Every one of them can be pulled in one sentence to Sully without building a report.

1. Work in Progress (WIP) Revenue Not Yet Invoiced

WIP = revenue earned on completed jobs that have not been invoiced. Invoicing within 24 hours of completion cuts DSO by 5 to 8 days on its own per Foundation Software's 2025 accounting guidance.

Techs who close out jobs 3 days late on the iPad have already cost you a week of cash on every one. Pull this weekly and you find the slow closers immediately. A shop doing $4M that trims WIP from 10 days to 3 days frees roughly $75K in cash.

Most owners discover WIP the month they need to make payroll with cash they earned last month but never invoiced.

Text Sully: "jobs completed in the last 14 days that have not been invoiced yet, grouped by tech"

2. AR Aging Past 60 Days

AR past 60 = invoiced revenue outstanding more than 60 days. Trades DSO averages 56 days per creditpulse data. Billd's 2025 report found subs waited 56 days for GC payment despite GCs believing payment happened in 30.

Once an invoice crosses 60 days, collection probability drops from 90 percent to 60 percent. Past 90 it drops to 40 percent. Past 120 you are writing it off.

Most residential shops let 3 to 8 percent of revenue sit in 60+ day aging. On a $5M shop that is $150K to $400K the owner never knew was gone.

Text Sully: "invoices past 60 days with customer, amount, and original job date"

3. Cost of Working Capital Consumed Per Job

Working capital cost = (AR days + inventory days minus AP days) times cost of capital. Billd: subs who baked working capital cost into bids ran 24 percent margins. Those who did not ran 17 percent.

If you float $200K in receivables for 60 days at a 12 percent blended cost of capital, that is $4,000 a month in invisible cost that is not in your P&L but is eating your cash.

Almost no home service shop under $10M tracks this. The ones that do add 2 to 4 percent to bids and watch profit lift without raising prices to customers.

Text Sully: "average AR days this quarter times our $2M average AR balance, at a 12 percent cost of capital"

4. Dormant Customer Count and Value

Dormant customers = customers with no job in 18+ months. Most shops have 20 to 40 percent of their database dormant at any time.

A shop with 25,000 customers and 30 percent dormant has 7,500 warm contacts worth an estimated $200 to $400 in reactivation revenue each. That is $1.5M to $3M sitting in the CRM nobody has touched.

Reactivation campaigns convert at 4 to 12 percent with a clear offer. See AI customer reactivation for contractors for the workflow. This metric is invisible on every standard contractor dashboard.

Text Sully: "count of customers with no job in 18+ months who had a tune-up or service in the past"

5. Missed Call Count and Estimated Missed Revenue

Missed calls times average missed-call value. Invoca 2025: 27 percent of home services calls go unanswered and each is worth roughly $1,200 in revenue.

A shop taking 1,200 calls a month misses 324. At $1,200 average value that is $389K a month in lost opportunity. Most of it is after-hours, which is exactly when the owner is not watching the phone.

The ugly version: plumbing specifically answers only 66 percent of calls per Invoca, the worst of any trade. See missed call text back for contractors and AI missed call followup agent.

Text Sully: "missed calls yesterday and this week, with phone numbers I have not attempted to call back"

6. Close Rate on Quotes Over 30 Days Old

Sold jobs / quotes outstanding more than 30 days. Painting has the highest estimate abandonment rate in home services per Jobber data. A systematic 5-touch follow-up sequence typically lifts close rate on unconverted estimates by 8 to 12 percentage points.

Most shops quote a job, do not follow up, and write it off mentally at day 7. But quotes aged 14 to 45 days close at 10 to 20 percent with automated follow-up, versus 2 to 4 percent without.

On a shop that produces $800K in outstanding quotes in any given month, an 8-point close-rate lift is $64K a month in sold work from leads you already paid to generate.

Text Sully: "quotes aged 14 to 45 days that have not been followed up in 7+ days"

7. Callback and Warranty Job Cost

Callback cost = (truck roll loaded cost + parts + lost billable hour) times callback count. Industry average first-time fix rate is 75 percent. Top operators run 85 percent+.

A 10-point improvement on a 4,000-job shop eliminates 400 callbacks. At $180 loaded truck cost and $100 in lost tech-hour capacity, that is $112K in recovered margin.

This metric is almost never tracked because callbacks get coded as new service calls, not callbacks. The fix is forcing techs to tag recalls in the CRM, then running the aging report weekly.

Text Sully: "callbacks in last 30 days by tech and original job, with estimated cost"

8. Gross Margin by Job Type

Gross margin = (revenue minus direct cost) / revenue, broken out by job type. Plumbing contribution margin 71 percent. HVAC installs 35 to 45 percent. Service calls 55 to 70 percent.

Most shops have 1 or 2 job types quietly running negative margin because labor and truck cost drifted up faster than pricing did. Owners see aggregate margin of 45 percent and miss that drain cleaning is 65 percent while water heater swaps are 12 percent.

Pull this quarterly, minimum. Monthly if you are actively raising prices. Flat-rate adoption is usually the 5 to 10 point lever.

Text Sully: "gross margin by job type last 90 days, flagging any below 30 percent"

9. Active Member Churn Rate

Members lost / total members, monthly. Member LTV runs 2.5 to 3x non-member LTV. Losing a member costs 2.5x what losing a non-member costs.

Most shops do not track churn because membership renewal is on auto-charge and the cancellation comes through as a credit card decline, not a cancel event. The member quietly disappears from the list.

Monthly churn above 2 percent is a problem. Above 3 percent is a crisis. One franchise operator in a ServiceTitan case study traced 40 percent of annual member loss to a single technician generating poor post-call NPS scores.

Text Sully: "members lost in the last 90 days versus new members added, and their last service dates"

A 2 AM December pattern

Talk to any home service bank lender and you hear the same story. Shop does $5M top-line, grew 25 percent last year, owner is proud of the numbers, then in December the line of credit draws come in to cover payroll. Four weeks later the bank forces a cash flow review.

What the review always finds: WIP sitting at 18 days, AR aging at 47 percent past 60 days, dormant customer base at 35 percent, and a reactivation campaign that was planned but never ran. The revenue is real. The cash is not. The owner was reading the P&L monthly and never reading the AR aging.

That gap between accrual-basis profit and cash-in-the-bank is where these nine metrics live. They are not exotic. They are the ones your accountant mentions in passing and then nobody asks about again.

The cascade that kills shops

Every one of the nine metrics above is a leading indicator of cash failure. WIP bloats first. Then AR aging creeps past 60 days. Then working capital cost silently eats margin. Then dormant customers accumulate because nobody is watching. Then missed calls spike because CSR coverage drops to keep payroll flat. Then close rate on aged quotes goes to zero because follow-up stops.

By the time revenue dips, the problem has been building for six months. The owner sees the revenue number in the monthly P&L and thinks the market softened. The actual cause is a cascade that could have been caught by pulling two of these metrics weekly.

Billd's 2025 data is the clearest statement of the pattern: the 24 percent margin shops tracked working capital. The 17 percent margin shops did not. Seven points of margin on $5M is $350K. That gap is not marketing budget or pricing. It is measurement habit.

Why these nine never make the dashboard

Every dashboard ever built is missing these nine. Not because they are hard to calculate, but because they are embarrassing. They expose the cash problem before it is a crisis. Standard dashboards show revenue, job count, and call volume, all of which look fine right up until the AR aging hits 90 days and payroll is due.

The pattern is always the same. Owner builds a dashboard in Looker or Grow in year one. By month 4 the schema drifts, the tech coding gets sloppy, and the dashboard is lying by 15 percent. By month 8 nobody trusts it and it stops being opened. Then a BI consultant is hired to rebuild it, and the cycle repeats.

Chat-based KPI retrieval avoids the rot. You ask Sully "what is our WIP right now?" and it pulls live from ServiceTitan or Housecall Pro or Jobber. No BI seat, no maintenance, no drift. The only dashboard that works is the one you build on demand, one question at a time, against the current data.

The nine metrics above are the ones that keep shops alive. Most owners pull them for the first time in December when the AR crisis hits. The ones who pull them weekly never have the crisis in the first place. Pick three to pull every Monday morning. WIP, AR past 60, and missed calls is the minimum triad. Everything else compounds from there.

Sources:

See Sully in action

Sully is the pre-built AI for home service shops. Connect your CRM, email, and phone system in minutes and the agents run on your real data.