Your marketing report doesn’t show booked work
Most plumbing, HVAC, electrical, and roofing businesses can tell you how many calls came in last month. They can usually tell you what they spent on Google Ads, Local Services Ads, Facebook, direct mail, and referral programs.
The harder question is this: which marketing source brought in jobs that were actually booked, completed, and paid?
A Google Ads report might show 80 calls. Your call tracking platform might say 56 were answered. The office may have booked 22 jobs. But unless those records connect through to dispatch, estimates, invoices, and revenue, you still don’t know what those 80 calls produced.
That gap creates expensive assumptions.
An HVAC owner sees plenty of calls from a summer campaign and increases the budget. Later, they find that many calls were people looking for a cheap refrigerant top-up or asking if the business services a suburb outside its area. Meanwhile, a modest Google Business Profile campaign generated fewer calls but delivered 12 high-value replacement estimates.
The first campaign looked successful on a marketing dashboard. The second one made more money.
For trades businesses doing $1 million to $25 million in revenue, this is often where $50,000 to $200,000 a year quietly leaks away. It isn’t always a single bad campaign. It’s a combination of untracked calls, missed after-hours opportunities, poor source data, unqualified inquiries, and estimates that never receive a follow-up.
The answer isn’t more reporting. It’s connecting the customer journey from first call to booked job, then using that information to make better decisions every week.
Why call counts are a poor marketing metric
A call is not a lead. A lead is not a booked job. A booked job is not necessarily profitable revenue.
That sounds obvious, but most marketing conversations still stop at call volume. Agencies report impressions, click-through rates, form fills, and phone calls. An owner looks at the spend, sees the phone ringing, and assumes the campaign is working.
In a trades business, calls can include:
- Existing customers checking appointment times
- Suppliers returning a message
- Job seekers
- Sales calls
- Requests outside your service area
- Small repairs that don’t fit your minimum charge
- Emergency calls that should have been booked immediately
- High-value replacement or installation opportunities
- Calls abandoned before anyone answers
If your office team tags every call manually, the data becomes inconsistent quickly. One dispatcher might tag a call as “Google.” Another uses “website.” A third leaves the source blank because the phone is ringing again.
Then there are after-hours calls. The owner is on a job, the office is closed, and voicemail picks up. A customer with a leaking hot water system may call three businesses in 10 minutes. If your team calls back the next morning, the booked job may already belong to someone else.
A missed service call can represent $500 to $3,000 in lost work, depending on the trade and job type. It also means your advertising produced demand that someone else converted.
Before spending another dollar on lead generation, get clear on your conversion chain:
- Which campaign or channel produced the inquiry?
- Did someone answer the call or reply to the form?
- Was the caller a fit for your service area and job type?
- Was the work booked into the dispatch calendar?
- Was an estimate needed?
- Did the estimate convert?
- What revenue and gross margin did the job produce?
If you can’t answer those seven questions by channel, you are managing marketing with incomplete information.
Start with a practical lead-source map
You don’t need a giant data project to improve attribution. Start by mapping the sources that actually create inquiries.
For most established trades businesses, that list includes Google Ads, Local Services Ads, Google Business Profile, organic search, Facebook or Instagram ads, referrals, repeat customers, signage, direct mail, local partnerships, and third-party lead platforms.
Each source should have a clear identifier. That may be a tracked phone number, landing page parameter, dedicated form, QR code, or a short question asked during intake.
The important part is not the technology itself. It is making sure the source stays attached to the lead after the first interaction.
A workable record might look like this:
| Data point | Example |
|---|---|
| Lead source | Google Local Services Ads |
| Campaign | Emergency plumber, Northside |
| Call outcome | Answered by voice agent |
| Job type | Burst pipe |
| Service area | Within zone |
| Booking status | Booked for 2:00 pm |
| Technician | Crew 3 |
| Invoice value | $1,250 |
| Estimate follow-up | Not required |
| Review request | Sent next day |
Once that record is available, you can compare channels based on booked jobs and revenue, not noise.
A plumbing business may find that Google Ads generates 40 calls at a high cost per inquiry, but 16 become booked work. A cheap directory listing might create 25 calls, but only four fit the service area and two turn into jobs. Cutting the directory listing isn’t a guess anymore. It’s a decision based on operational data.
This is also where Omni voice workflows become useful. The call isn’t only recorded. It is qualified, classified, and passed into the next business process while the details are fresh.
What AI call tracking looks like in a real trades operation
AI call tracking should not mean dropping an automated summary into an inbox that nobody reviews. It should handle the work your office currently does inconsistently, then produce clean data your owner, dispatcher, and marketing partner can use.
The 24/7 Dispatch Voice Agent is a practical example.
When a call comes in, it answers immediately using the business name and a clear opening. It asks enough questions to determine what the customer needs. For a plumber, that may be a leak, blocked drain, no hot water, or renovation quote. For an HVAC business, it may be no cooling, a maintenance request, or a replacement inquiry.
The agent then determines:
- Is this an emergency or a scheduled job?
- Is the address inside your service zone?
- Is the caller an existing customer?
- What equipment or system is involved?
- Does the caller need a technician, an estimator, or a callback?
- Which campaign or phone number generated the call?
For a genuine service request, the agent books an available slot directly in the dispatch tool and sends a text confirmation. If it is an emergency, it follows the escalation rules you set. If the call is outside your area or not a fit, it can close the interaction professionally without creating a false lead in your reporting.
That matters because your marketing data now distinguishes between all calls and qualified opportunities. It also prevents the common issue where an owner has spent money creating demand but loses it because nobody answered at 6:40 pm.
The agent should capture the source automatically wherever possible. If a caller arrives through a tracked Google Ads number, that attribution is already present. If they come from a direct website form, the form parameters should travel with the lead. For a referral or offline source, the agent can ask a simple question such as, “Before I book this in, how did you hear about us?”
No long survey. No awkward interrogation. Just enough data to make decisions later.
For businesses that want a clearer view of where automation fits across dispatch and back-office work, Omni ops shows the operating model behind these agents.
Connect calls to jobs, estimates, and revenue
Tracking source at the point of call is only step one. The real value comes from joining that information to the job record.
Your dispatch system, CRM, quoting tool, invoicing platform, and call system don’t have to be replaced. They need a reliable handoff between them.
A lead created by the 24/7 Dispatch Voice Agent should carry its channel and campaign data into the dispatch record. When the job is completed and invoiced, the original source can be matched to revenue. When a technician creates an estimate rather than a completed job, the lead source needs to stay connected to that estimate too.
This tells you things a marketing report cannot:
- Google Business Profile may produce the best same-day repair work.
- Search ads may create more replacement opportunities with longer sales cycles.
- Facebook ads may attract low-intent price shoppers unless the offer is tightened.
- Referral leads may have the highest close rate and average job value.
- A roofing campaign may generate fewer inquiries but more substantial project estimates.
You can also see operational bottlenecks. If leads from one campaign have a strong qualification rate but a weak booking rate, the campaign may not be the issue. Your response time, call handling, available booking slots, or pricing conversation may be the real constraint.
One electrical contractor in our network described the problem plainly. Their advertising was producing calls, but they were measuring the agency by leads while judging the business by revenue. Once they matched calls to completed jobs, a channel they had almost cut turned out to be a reliable source of larger switchboard upgrade work.
That is why attribution needs to sit close to operations, not live only in a marketing agency dashboard.
Don’t lose the value after the first booking
A booked service call is valuable. An estimate that receives no follow-up is often where the next layer of leakage appears.
A technician may send a $4,800 HVAC replacement estimate on a Friday afternoon. The customer says they need to speak with their partner. The office intends to follow up on Monday. Monday gets busy. A technician calls in sick, two emergency jobs land, and the estimate sits untouched for three weeks.
Follow-up alone can convert roughly 15% to 25% of stale estimates in many trades businesses, depending on job type, price point, and the quality of the original sales process. That is not a reason to send generic reminders. It is a reason to create a controlled sequence.
The Estimate Follow-Up Agent tracks each estimate that goes out and follows up on day 2, day 5, and day 14. The messages can reflect the trade, job size, financing options, urgency, and customer context.
For example, a small plumbing repair estimate needs a different message than a full roof replacement quote. A replacement air conditioner estimate may include an option to book a quick phone review. A commercial electrical quote may need a request for a site decision date rather than a consumer-style text message.
When the customer responds, the agent records the outcome and routes complex questions to a person. When a job converts, the original source remains attached. That means you can identify not only the campaign that generated calls, but the campaign that generated jobs which later required estimates and converted into real revenue.
Then the Review and Reactivation Agent takes over after the work is complete. It asks happy customers for a review the next day and reactivates past customers at the appropriate service interval. That creates a useful feedback loop. Better reviews strengthen local search performance, which can generate more organic service calls that you can track properly.
For more ideas on making your customer operations measurable, browse the Enterprise DNA guides alongside your own process map.
Build a weekly marketing-to-job scorecard
You don’t need 40 metrics. A weekly scorecard with eight or nine fields is enough to identify where money is working and where it is leaking.
For each marketing source, review:
- Spend
- Total inquiries
- Answered calls and response time
- Qualified service requests
- Booked jobs
- Estimates issued
- Estimates won
- Invoiced revenue
- Gross margin where available
From there, calculate practical measures such as cost per booked job, booking rate, estimate conversion rate, average invoice value, and revenue per dollar spent.
Keep the reporting window realistic. Emergency plumbing calls may convert the same day. Roofing, replacement HVAC, and larger electrical work can take weeks or months. If you judge every campaign after seven days, you may shut off a source that is still developing into profitable work.
Also separate campaign performance from team performance. If one location has 95% call answer coverage and another has 62%, the lower-performing location may make the same ad campaign look weak. The data should help you fix the workflow, not just blame the channel.
If you want a useful starting point for your after-hours process, use the After-Hours Call Recovery Plan for Trades as a worksheet with your office manager or dispatcher. You can also get the practical checklist directly here: download the plan.
Where most owners get stuck
The usual problem is not that the owner doesn’t understand the value of attribution. It’s that the current process depends on people remembering to do too much.
Someone has to answer every call. Someone has to ask the source question. Someone has to create the lead in the dispatch platform. Someone has to update the job status. Someone has to chase estimates. Someone has to review campaign results against invoices.
In a business where the owner is still dispatching crews, handling escalations, checking supplier availability, and resolving customer issues, that system won’t stay clean for long.
The goal is not to remove your people from customer interactions. It is to remove repetitive tasks that make the customer experience and reporting unreliable.
AI agents can answer immediately, capture consistent qualification data, book work, trigger follow-up, and keep source data attached. Your team can focus on the calls that need judgement, the jobs that need technical expertise, and the customers who need reassurance.
That is the practical promise. Not vague automation. A controlled process that tells you which marketing creates work and stops valuable calls from disappearing into voicemail.
If you want to map this against your current call flow, dispatch platform, and marketing spend, Book a 60-min Omni Audit. We will look at where attribution breaks, where calls are being lost, and which workflow is likely to deliver the fastest payback.
What an Omni Audit gives you
An Omni Audit is a 60-minute working session, not a sales deck.
We look at the calls and leads you are already generating, the systems your team uses, and the handoffs where data gets lost. For a trades business, that often includes inbound phone handling, after-hours coverage, dispatch booking, estimate follow-up, review requests, and marketing reporting.
You leave with three practical outputs:
- A map of your current lead-to-job workflow, including the points where calls or source data disappear.
- A prioritised list of agent opportunities, such as a 24/7 Dispatch Voice Agent or Estimate Follow-Up Agent.
- A view of the likely commercial impact, grounded in your actual call volumes, job values, staffing time, and missed opportunity patterns.
There is no need to start with a large software rollout. You may find that capturing after-hours calls and linking them to booking outcomes is the first move. Another business may find that the bigger opportunity is recovering unworked estimates from campaigns that are already generating quality leads.
You can see the wider approach in the AI audit for trades businesses. The work is designed around the operational realities of plumbing, HVAC, electrical, and roofing companies, not generic marketing automation.
Make your next marketing decision with job data
Don’t judge marketing by the number of times the phone rings. Judge it by qualified calls answered, work booked, estimates won, and revenue collected.
Start with your top three lead sources. Track each one from inquiry through dispatch and invoice for the next 30 days. Pay close attention to after-hours calls and estimates that have gone cold. Those two areas often reveal more recoverable revenue than an owner expects.
Then decide what deserves more budget, what needs a tighter offer, and what should be cut.
For a clear plan built around your business, Book my Omni Audit. If you want to understand how the broader system works first, see Omni for trades businesses.