Marketing Attribution for Contractors: A 30-Day Plan
A contractor's 30-day plan to see which marketing produces booked jobs: call tracking, UTMs, CRM source fields, offline conversions, and revenue reports.
Cost per lead hides the number that pays the bills. Get the cost-per-booked-job math, the tracking it needs and the traps that inflate it quietly.
Cost per booked job is total marketing spend divided by the number of jobs that actually got booked from that spend. It is the first metric that charges every channel for two things at once: the quality of the leads it delivers, and how good your business is at turning those leads into scheduled work. A $60 lead that never books costs more than a $100 lead that books next week, and only this number shows it.
This guide walks through the formula, a worked example, the definition discipline the number needs, a tracking setup you can run without an analytics team, and the mistakes that quietly keep owners optimizing the wrong thing. It is written for operators who buy leads, not for people who collect dashboards.
Cost per lead is not a lie; it is an incomplete sentence. It tells you what the front door costs. What it hides is everything after the form fill: whether anyone answered fast, whether the caller was in your service area, whether the job was the kind you want.
The weighting problem is simple. CPL treats every lead as equal. A homeowner requesting a quote this week and a student writing a research question both count as one lead. A campaign that generates cheap junk can post a beautiful CPL while a campaign that generates fewer, better leads looks expensive. The cheap campaign wins the report and loses the month.
The second problem is that CPL moves for reasons that have nothing to do with lead quality: seasonality, a competitor bidding up auctions, or a landing page change. When CPL rises, you do not know whether to fix the ad account or the intake process. When cost per booked job rises, the same question has a sharper answer, because the number includes both halves of the system.
Use CPL for one job only: keeping the front door efficient. Then convert everything into bookings before you decide where budget goes.
Every step simply divides the previous step by a conversion rate. Write these down once and they will serve you for years.
The middle line is the one owners skip, and it is usually where the money hides. Here is an illustrative example with two campaigns spending the same budget.
| Metric | Campaign A | Campaign B |
|---|---|---|
| Spend | $6,000 | $6,000 |
| Leads | 100 | 60 |
| CPL | $60 | $100 |
| Lead-to-booking rate | 15% | 35% |
| Booked jobs | 15 | 21 |
| Cost per booked job | $400 | $286 |
| Close rate on booked jobs | 30% | 30% |
| Won jobs | 4.5 | 6.3 |
| Cost per won job | $1,333 | $952 |
The numbers are illustrative, but the shape recurs constantly: the campaign that looks 67% more expensive per lead is actually 29% cheaper per booked job. If you had cut Campaign B for its CPL, you would have cut your best channel.
For outside context on where leads typically leak, First Page Sage's 2026 funnel benchmarks - drawn mostly from its B2B clients, so read them as context rather than a target - put HVAC lead-to-MQL conversion at 42% and construction at 17%. The gap between industries is normal. The gap between your own months is the one to act on.
Cost per booked job inherits the honesty of your booking definition. Most teams need three stages, tracked separately:
A few rules keep the definition stable. Count a lead once even if it arrived twice. Exclude internal tests, vendors and obvious spam. Record who booked and when, because the difference between a booking made in five minutes and one made after three days is a process fact you can fix. If you change the definition, note the date and restate the history, or every chart after the change will be a lie.
You do not need a data warehouse. You need one lead ID, one source field, one booking stage and a monthly routine. Four steps do most of the work.
Start with source-level numbers: Google Ads, LSA, Meta, organic, referral. Drill into campaigns only when a source-level number asks a question you cannot answer, such as two campaigns in the same channel behaving very differently.
One page is enough. Review spend, leads, booking rate and cost per booked job per channel, plus one blended row. Then read them in this order.
The fastest way to improve booking rate without touching ads is response time and answer rate. HBR's study found most firms were slow, and the slow ones paid for it. If you have not audited your own intake recently, the lead journey audit shows where to look, and the contractor-focused marketing attribution setup shows how to wire the reporting underneath it.
None of this requires new tools. It requires picking the unit you actually get paid in - the booked job - and refusing to manage anything upstream of it in isolation.
What is cost per booked job?
Cost per booked job is your total marketing spend divided by the number of jobs booked from that spend. If you spend $6,000 in a month and book 20 jobs, your cost per booked job is $300. It can also be calculated as cost per lead divided by your lead-to-booking rate.
How is it different from cost per lead?
Cost per lead counts leads; cost per booked job counts work on the calendar. Two campaigns can share a $60 CPL while one converts 35% of leads to bookings and the other 15%, which makes their true costs $171 and $400 per booked job. CPL measures what you paid at the front door; cost per booked job measures what reached the schedule.
What counts as a booked job?
You have to define it in writing. Most teams track three stages separately - requested, booked and completed - because no-shows and cancellations sit between booked and revenue. Pick one stage as your booking definition, keep it stable, and count duplicates and internal test leads as zero.
What is a good cost per booked job?
There is no universal number, because it has to sit under the margin of the job you sell. A roofer with a $12,000 average job can absorb a far higher number than a cleaner with a $120 recurring ticket. Set your ceiling from your own gross margin and close rate, then manage every channel to that ceiling.
Run the math for your two biggest channels this week: spend, leads, booking rate, cost per booked job. If you cannot fill in the booking column, that is your first build, because everything else is guessing until it exists. If you would rather have the tracking and the report built for you, start at the funnel breakdown on our home page or book a call and we will map it against your actual lead flow.
A contractor's 30-day plan to see which marketing produces booked jobs: call tracking, UTMs, CRM source fields, offline conversions, and revenue reports.
Map your lead journey from capture to reactivation, answer 12 questions, score each stage and find the leaks costing you deals, in one sitting.
A source-checked roundup of missed call text back statistics. See answer and reply rates, what makes texts get read, and what the numbers really prove.
More articles: browse the full Praktivo blog.