How to Measure AI ROI in a Contracting Business

A dashboard full of conversations handled proves nothing. Here is how to set a 30-day baseline, track booked jobs and revenue, and work out payback without fooling yourself.

Most AI dashboards report the wrong thing. They show conversations handled, messages sent, calls answered, hours saved. Those numbers go up almost automatically once you turn a tool on. None of them tells you whether your schedule got fuller.

For a contractor, the return on AI comes down to two numbers: booked jobs and the revenue attached to them. This guide shows how to measure both, how to set a baseline so the comparison is fair, and how to do the payback math without flattering yourself. It is the measurement companion to AI for contractors: where to start.

Why "conversations" is the wrong metric

A conversation is an activity. A booked job is an outcome. Vendors report activities because activities are easy to count and always look big.

Consider a texting tool that "handled 1,200 conversations" last month. Of those, how many were:

Only the last group pays you. If the vendor cannot show you that count, the dashboard is a vanity page. The same logic applies to "time saved." Saved time is real only if someone used it for something that books work. A CSR who gets 40 minutes back and spends it on the same low-value tasks has saved you nothing.

For context, even industry surveys are mostly about sentiment, not return. ServiceTitan's 2026 State of the Trades report, a survey of 1,000 residential contractors, found 48% of AI adopters reporting increased productivity. That is self-reported and does not say what the gain was worth. Your business needs a number in dollars.

Step 1: Take a 30-day baseline before you change anything

You cannot show improvement against a past you never recorded. Before launching any AI project, spend 30 days measuring the current state. Thirty days is long enough to smooth out a bad week and short enough that you do not stall the project.

Record these for the leads your project will touch (phone, web forms, ad leads, old estimates):

MetricWhere it comes from
New-job leads by sourceCall tracking, web forms, field service software
Answered vs missed callsPhone system report
Time to first contactTimestamps in your CRM or field service software
Appointments or estimates bookedField service software
Booked jobsField service software
Revenue from those booked jobsInvoices, not quotes

If your CSRs do not tag lead source consistently, fix that first. A booked job with no source cannot be credited to anything. In a multi-location business, keep every number split by branch. One branch often drags the average, and you want to see whether the project helps there.

Also write down the baseline conditions: season, ad spend, headcount in the call center, any promotions. You will need them in step 4.

Step 2: Choose four numbers and ignore the rest

Four numbers are enough to judge most projects aimed at leads and follow-up.

  1. Booked jobs from the targeted lead sources. The headline number.
  2. Revenue from those booked jobs. Use invoiced revenue, since quoted revenue is a forecast.
  3. Lead-to-booked rate. Booked jobs divided by new-job leads. This shows whether you are converting better or just receiving more leads.
  4. Time to first contact. An input metric. If it improves and booked jobs do not, you have a different leak than you thought.

Everything else, such as messages sent or minutes of call time, is a diagnostic you check only when one of the four moves unexpectedly.

If the project targets old customers or unsold estimates, swap in the equivalent: jobs closed from estimates older than 30 days, or jobs from customers with no visit in 24 months. See following up on unsold estimates for how to define that pool.

Step 3: Count only incremental jobs

The question is not "how many jobs did the AI touch?" It is "how many jobs would not have happened without it?"

Some of those jobs would have booked anyway. A caller who reached voicemail may have called back. A customer who got no follow-up text may have booked on their own. Crediting every touched job to the tool overstates the return and sets you up for a bad decision when the number collapses later.

Practical ways to get closer to incremental:

None of these is perfect. Each is better than crediting the tool with every job it touched.

Step 4: Do the payback math

Payback is how many months of added profit it takes to cover what you spent. Use profit, not revenue. A $450 service call does not put $450 in your pocket.

Monthly net gain = (added booked jobs per month x average ticket x gross margin) minus monthly running cost

Payback in months = one-time setup cost divided by monthly net gain

Worked example (illustrative numbers)

These numbers are made up to show the arithmetic. They are not benchmarks or results from any company.

A plumbing company records a 30-day baseline: 210 booked jobs from phone and web leads, averaging a $450 ticket, so $94,500 in revenue. It launches a missed-call recovery and follow-up project. Thirty days later, in a comparable month, it records 228 booked jobs from the same sources.

Now stress it. Suppose half of those 18 jobs would have happened anyway. Added jobs fall to 9, added gross profit to $1,620, and monthly net gain to $120. Payback stretches past 4 years. That is why step 3 matters: a result that depends on every touched job being incremental is fragile.

Run your own version with both the optimistic and the skeptical case. If the project only works in the optimistic case, say so before you scale it.

Step 5: Read it weekly, decide at 90 days

Weekly numbers are noisy. Read them weekly anyway, because a sudden drop usually means something broke, such as a number that stopped forwarding or a sync that failed.

Make the decision on a longer window. A reasonable rule: look at the first 30 days to confirm the system works, and judge return over 90 days against the baseline. Set the success threshold before you launch, written down, so you are not choosing the goalposts after the fact. For example: "If added gross profit does not exceed running cost by month three, we change or stop."

Common ways ROI gets overstated

What a good report looks like

If you hire anyone to build or run this, ask for a weekly report that shows the baseline next to the current week, split by source and branch, with booked jobs and revenue at the top. That is the structure we use in the weekly booked-job report that is part of the Booked-Jobs Recovery System, our fixed-scope engagement that goes live in 30 days and is measured in booked jobs. If you want a second opinion on how to set up measurement before you buy anything, we cover that in AI strategy consulting.

For the first number to chase, start by sizing the leak. What a missed call really costs a contractor walks through that formula, and speed to lead in home services covers the response-time side.

Frequently asked questions

What should I measure to know if AI is working in my contracting business?

Booked jobs and the revenue from them, compared with a 30-day baseline taken before launch. Add lead-to-booked rate and time to first contact to see why the numbers moved.

How long should I run a baseline?

Thirty days is a reasonable minimum for most contractors. If your business is strongly seasonal, also compare to the same period last year.

How do I calculate payback on an AI project?

Divide the one-time setup cost by monthly net gain, where net gain is added gross profit from incremental booked jobs minus monthly running cost. Use gross profit, not revenue, and test a skeptical case where only part of the added jobs are truly incremental.

Is time saved a valid ROI measure?

Only if the saved time is redeployed into work that books jobs or cuts a real cost, such as overtime. Otherwise it is a nice-to-have, not a return.

Want us to look at your numbers?

Tell us where leads are slipping. A founder reads every message and replies personally. The first call is free.

Thanks, it's in.

We'll be in touch soon. Prefer email? dihydigital@gmail.com

Ready to find the revenue leak?

Book a free 30-minute strategy call. We'll look at where leads are slowing down, where follow-up is leaking, and what it would take to recover more booked work.

Book a Free Strategy Call →