Marketing Guides · Lexington, KY

Call Tracking for Contractors: How It Works, Best Software and Setup

By Faisal Zaman, Senior SEO Strategist · Overcome Media

Call tracking gives each marketing channel its own phone number and forwards every call to your real line. It records the call and logs where it came from. So you know which channel booked the $12,000 roof, instead of guessing.

Key points

  • It tells you if a call came from the Google Business Profile, a Google ad, a Local Services ad, the truck or a yard sign.
  • On the trades accounts we run, phone calls are 68 to 88 percent of all leads.
  • A business that only counts website forms is blind to most of its own pipeline.
  • Setup takes a day.
  • It costs between $30 and $200 a month as of October 2026.
  • It is the first thing we install on any account before spending a dollar on ads.

We put call tracking on every client account we manage. Every number in this guide comes from those accounts. The tools we name are the ones we use.

In this guide

What is call tracking?

Call tracking is software that rents you a pool of local phone numbers. It assigns one to each place a customer might find you. All of them forward to the number you already answer.

When a call comes in, the software knows which number was dialed. So it knows which channel produced the call. It records the call, transcribes it, and sends the lead into your CRM with its source attached.

On the website it goes one step further. A small script swaps the displayed phone number depending on how the visitor arrived. People who clicked a Google ad see one number. People from the Maps listing, organic search and Facebook each see another.

The visitor sees one number and calls it. You see where they came from.

That is the whole product. Everything else is what you do with the data.

Why does a contractor need call tracking?

Because contractors get leads by phone, and most analytics only see forms. Here is the split on two accounts we track. The tracking software counted every lead.

Stacked bar chart of tracked leads by type on two trades accounts: 151 calls, 62 forms and 9 texts of 222 leads for a construction company, and 50 calls of 57 leads for a dumpster rental company
Every tracked lead on two accounts, by how it arrived. Source: WhatConverts lead logs.

On the construction account, 151 of 222 leads were calls. On the dumpster rental account, 50 of 57.

A contractor counting form submissions in Google Analytics would have seen 62 leads and 7 leads. They would have drawn the wrong conclusions about every channel. The ads would have looked expensive. The Business Profile would have looked useless. Both would have been wrong.

The second reason is that attribution without tracking defaults to whatever channel is easiest to see. On one roofing account, we put a tagged link on the Google Business Profile. That let us tell map clicks apart from the rest of organic search.

That one tag showed the profile sending 42 percent of all organic website clicks. Without it, the profile work would have been invisible inside a general “SEO” number. The obvious conclusion would have been to spend less on the profile. It was the channel doing the most.

The third reason is the one that pays for the software. You cannot know what a job costs from any channel until you can tie the job back to the call. Cost per lead is what the ad platform tells you. Cost per booked job is what matters.

The gap between them depends on how many of those leads were real and how many booked. Only tracking tied to a CRM can tell you that. We come back to it below.

Want this done for you? Book a free 15 minute call or call (859) 710-8408. We will tell you what to fix first, no pitch.

How does call tracking work, step by step?

Five step diagram of how call tracking works for contractors: a number per channel, dynamic swap on the website, recording and spam marking, lead into the CRM, booked job marked against the lead
The five pieces of a working call tracking setup, from the click to the booked job.
  1. One number per channel. Google Business Profile, website organic, Google Ads, Local Services Ads, Facebook, the truck wrap, yard signs, print. Each gets its own local number from the tracking pool. All of them forward to your real line. Your real number can stay on your trucks and business cards. The tracking numbers only live where you want attribution.
  2. Dynamic swap on the website. The script reads where the visitor came from (the ad click id, the referrer, a tag on the link) and shows the matching number. One pool of four to eight numbers covers a typical contractor site.
  3. Recording and transcription. Every call is recorded with a short disclosure. The transcript lets you, or the software, mark spam, wrong numbers, vendors and existing customers. Those never count as leads. On trades accounts a third or more of inbound calls are not leads. The cost per lead numbers are wrong until those are removed.
  4. Into the CRM. Each call, form and text creates a contact with its source attached. We use WhatConverts for the tracking and GoHighLevel as the CRM. The lead, the quote and the job all sit on one record.
  5. Mark the booked job and its value. This is the step most owners skip. It is the one that makes everything above worth doing. When a lead becomes a job, the job value goes against the lead. Now you can divide spend by jobs, by channel, and know what each one is worth.

How do you set up call tracking for a contractor?

A day of work, most of it waiting for numbers to provision. In order:

  1. Decide the channels you want to tell apart. For most contractors: Business Profile, website organic, Google Ads, Local Services Ads, Facebook, and one offline number for trucks and signs. Six numbers.
  2. Buy local numbers in your area code. Out of area numbers get fewer calls from homeowners. Keep your real number as the forwarding target.
  3. Put the Business Profile tracking number in the profile’s primary phone field, and your real number as an additional phone. Google allows this. It does not hurt your listing as long as the real number is also present. Add a tagged link in the website field at the same time (something like ?utm_source=google&utm_medium=organic&utm_campaign=gbp). That separates map clicks too.
  4. Install the swap script on the website and set the rules. Ad click id present, show the ads number. Referrer is Google with the gbp tag, show the profile number. Everything else, show the organic number.
  5. Connect Google Ads and Local Services Ads so calls from those are imported as conversions. Google Ads can then optimize toward calls that were actually qualified, not every call.
  6. Turn on recording, set the spam rules, and connect the CRM. Decide who marks the leads as qualified or not. Decide who marks the job as booked. If nobody owns that, the data decays in a month.
  7. Check the forwarding by calling every number yourself. Then check that the real number still appears on the site for people who type it from a truck.

How do you get from cost per lead to cost per job?

The ad platforms stop at cost per lead. Here are two real figures from accounts we run. Then we carry them through to booked jobs.

Table carrying two real cost per lead figures, $15.09 from Local Services Ads and $31.36 from Google Ads, through to cost per booked job at 30 and 50 percent booking rates
Two real cost per lead figures carried through to cost per booked job. The booking rate is what tracking tied to a CRM measures.

On a junk removal account in September 2026, Local Services Ads charged for 20 leads. That was $15.09 each.

On a lawn care account over May and June, Google Ads search produced 193 conversions. They cost $31.36 each on $8,438 of spend.

Both are good numbers. Neither is the number that matters. A $15 lead that books one time in ten costs $150 a job. A $31 lead that books half the time costs $63.

The booking rate is the thing call tracking tied to a CRM measures. Nothing else does. Once you have it by channel, the decisions get easy.

Keep the channel with the cheapest booked job, not the cheapest lead. Cut the one that produces calls nobody can close.

Which call tracking software should a contractor use?

Three options cover nearly every trades business. Prices are approximate as of October 2026. They move with how many numbers and minutes you use.

ToolRough costBest forWatch for
WhatConvertsAbout $30 to $160 a month plus number and minute usageContractors who want calls, forms, texts and chats in one lead log with job value attached. What we use on client accounts.Per number charges add up if you track many offline sources.
CallRailAbout $50 to $200 a month, numbers and minutes extraSimple call only tracking with a large integration list.Spam calls bill as minutes; forms and texts are add ons.
GoHighLevel built in numbersIncluded with the CRM plan plus per minute usageBusinesses already running GoHighLevel who want everything in one place.No dynamic number swap on the website without extra setup, so attribution is coarser.

Our setup is WhatConverts feeding GoHighLevel. The tracking tool is better at attribution than any CRM. The CRM is better at running the follow up than any tracking tool.

If you only want one bill and your channels are few, GoHighLevel’s own numbers are enough to start.

What mistakes make call tracking numbers lie?

  • Counting every call as a lead. Spam, vendors, existing customers and wrong numbers are a large share of inbound calls on most accounts. Mark them, every week, or the cost per lead is fiction.
  • Putting a tracking number on the Business Profile without keeping the real number too. Add the real number as an additional phone. Keep it consistent everywhere else. Otherwise you create a name, address and phone mismatch that hurts the map ranking you are trying to measure.
  • Forgetting the Business Profile website link. One account we audited linked the profile to the http, www version of its site. Every map click took two redirect hops and arrived with no source. The tag was lost and the clicks were credited to “direct”.
  • Nobody marking booked jobs. Without step five, you have a call log, not attribution. Give the job to whoever already closes the sale.
  • Changing the number on trucks and signs. Leave the real number on anything printed. Tracking numbers belong on the digital sources where the swap can do its work.
  • Reading one month. A roofing company’s July and a junk removal company’s spring weekends are not normal months. Judge channels on a quarter. Compare the same season year on year.

One more, about customers. Spam calls often go up after you start advertising, because your number is now on more pages. Say so to the office before they notice.

Owners have asked us whether we sold their number. We have not, and neither has any tracking vendor we use. The number simply became easier to find. Spam marking in the tracking tool is the fix.

Frequently asked questions

Does call tracking hurt local SEO?

Not if it is set up correctly. Put the tracking number as the primary phone on the Business Profile. Keep your real number listed as an additional phone and everywhere else. The mismatch problems come from swapping the real number out entirely.

How much does call tracking cost for a small contractor?

Between about $30 and $200 a month as of October 2026. It depends on the tool, how many numbers you track and how many minutes you use. Six numbers and a few hundred calls a month sits toward the lower end.

What is a call tracking number?

A local phone number rented through the tracking software and assigned to one marketing source. It forwards to your real line. Because each source has its own number, the software knows which source produced each call.

Do I need call tracking if I only do SEO and no ads?

Yes. SEO has two halves, the Business Profile and the website. They need separate numbers to be judged. On one roofing account the profile alone sent 42 percent of organic clicks. That was only visible because the profile link was tagged.

What is the difference between call tracking and a CRM?

Call tracking tells you where a lead came from. A CRM tells you what happened to it. You need both to know what a booked job costs by channel. That is why we run WhatConverts into GoHighLevel rather than either on its own.

Want to know what your jobs actually cost by channel?

We set up tracking on every account before we touch ads. We will show you what it finds in the first 30 days. Request the free audit or call (859) 710-8408 and we will include a look at your current tracking.

Overcome Media is a marketing agency in Lexington, Kentucky. We run lead tracking, SEO and paid ads for roofing, HVAC, junk removal and other trades businesses across Kentucky, Ohio and the surrounding states. Related guides: how long local SEO takes and roofing SEO.

Sources

  • WhatConverts lead logs, Google Local Services Ads and Google Ads account data from Overcome Media clients, May to September 2026. Clients and cities withheld.
  • Google Search Console data from one Overcome Media roofing client, 2026.
  • How to improve your local ranking on Google, Google Business Profile Help
Faisal Zaman, Senior SEO Strategist at Overcome Media

Written by

Faisal Zaman

Senior SEO Strategist, Overcome Media

Faisal runs SEO for Overcome Media’s roofing, HVAC, junk removal and dumpster rental clients. He builds the Google Business Profile, location page and content plans that get blue collar companies into the map pack, and writes the Knowledge Base from what works on live client accounts.

One call

Fifteen minutes on the phone.

Tell us what you sell and which towns you drive to. We will tell you what we would do first, and whether it is worth doing at all.

+1 859-710-8408 Weekdays. Somebody who has been on a job site this month picks up.
Or
Pick a time instead Takes about twenty seconds.
What the call is not
No deck
Nobody is going to share a screen at you for forty minutes
No contract on the call
We will not ask you to decide anything while we are still talking
No follow up sequence
If it is not a fit, you hear that once and never again