How to Track Marketing ROI for Contractors: What to Measure

To track marketing ROI as a contractor, you need to know which source each lead came from and whether that lead became a paid job. Once you have that, you can compare what each channel costs per booked job, not per click or per lead.
Most contractors already have the pieces. What is missing is the link between them. This guide shows you what to measure, how to set it up and how to read it each month.
The three numbers that matter
Clicks, views and leads are easy to count, but they do not pay the bills. Booked jobs do. So focus on three numbers for each marketing source:
- Booked jobs. How many paid jobs came from this source?
- Revenue. What were those jobs worth?
- Cost per booked job. What you spent on the source, divided by the jobs it booked.
With those three, you can answer the real question: if I put more money here, will I get more work back?
You will still watch leads and calls. They tell you early if something breaks. But leads are not the goal. A cheap lead that never books costs more than an expensive one that does.
Give every source its own tracking
You cannot measure a source you cannot see. Each channel needs its own way to show where a lead came from.
Phone calls. Calls are where most service jobs start. Use a separate tracked phone number for each major source, such as your Google Business Profile, Google Ads and your website. Call tracking tools forward the calls to your normal line and log the source.
Website visits. Add tracking tags to every link you control: your profile, your emails, your social posts and your ads. Google's URL builder guide explains the three tags to use: utm_source, utm_medium and utm_campaign. Visits with those tags show up in the Traffic acquisition report in Google Analytics.
Forms. Make sure each form sends the page it came from and the source with the lead. Many form tools can do this with hidden fields.
Word of mouth. Ask every new customer how they heard about you, and write the answer down. Referrals and repeat customers are often your strongest source, and no tool tracks them for you.

Count the actions that matter in Analytics
Google Analytics counts page views by default. It does not know which visits matter to you unless you tell it.
Mark your form submissions and phone number clicks as key events. Google's help page on marking events as key events walks through the steps in the Admin area. Once they are set up, your reports show which pages and sources bring in real inquiries, not just traffic.
This step takes little time, and it is the one we see skipped most often. Without it, a website report can only tell you how many people visited, not how many asked for a quote.
Keep a simple lead log
Tracking tools tell you where a lead came from. Only your office knows if it became a job. A lead log ties the two together.
It can be a spreadsheet or the job software you already use. Each lead needs these fields:
- Date the lead came in.
- Name and contact details.
- Source (profile, ads, website, referral, repeat customer).
- Job type they asked about.
- Booked yes or no.
- Job value once the work is invoiced.
Fill it in for every call and form, even the ones that do not book. The ones that do not book tell you just as much. A source with lots of leads and few bookings may be sending the wrong customers.
Read your numbers once a month
Set a time each month to pull the numbers together. A month gives you enough leads to see a pattern, and it lines up with most ad and software bills.
For each source, write down:
- What you spent, including ad spend, agency fees and tools.
- How many leads came in.
- How many of those booked.
- The revenue from those jobs.
Then work out two figures. Divide spend by booked jobs to get cost per booked job. Divide revenue by spend to see what each dollar returned. Compare sources side by side, and look at the trend over three months, not one.
Be careful with brand searches. Someone who heard about you from a neighbour and then searched your name will show up as search traffic. That is why the "how did you hear about us" question matters.

Common tracking gaps to fix first
When we review a service business, the same gaps come up again and again:
- One phone number everywhere. Every call looks the same, so no source gets credit.
- No key events in Analytics. Reports show visits but not inquiries.
- Untagged profile link. Google Business Profile visits mix in with other traffic.
- Missed calls not logged. The leads that slipped away never show up anywhere.
- No job value. You can count bookings but not what they were worth.
Fix the first two before anything else. They take little time and change what every other report can tell you.
If you run paid ads, tracking matters even more. Our guide to Local Services Ads vs Google Ads shows why cost per booked job is the fairest way to compare two channels.
Get your tracking checked
Measurement is one of the areas we review in every free growth plan. A person on our team looks at how your calls, forms and sources are tracked today, and shows you which gaps to close first. There is no obligation.
If you want the whole system built and run for you, our Service Business Growth System connects your marketing, follow-up and tracking so every channel is judged on the jobs it books.
Frequently asked questions
Want to see where you stand?
Get a free Growth Audit showing where demand, conversion, retention, and measurement are disconnected across your business.
Get Your Free Growth PlanRelated articles

Local Services Ads vs Google Ads for Service Businesses
