Ask most contractors how their marketing is performing and you will get a cost per lead. It is the number on the monthly report, it is the number the agency leads with, and it is the number that gets campaigns switched on and off.
It is also the number most likely to make you cut the wrong campaign.
The arithmetic that shows the problem
Take two campaigns. Campaign A produces leads at $40 each. Campaign B produces leads at $120 each. On a cost per lead report, A is three times better and B is the obvious candidate for cutting.
Now add what happens after the lead arrives. Campaign A's leads close at one in twenty, so a booked job costs $800 in marketing. Campaign B's leads close at one in four, so a booked job costs $480.
Campaign B is substantially the better performer and the cost per lead report said the opposite. If you optimised on the number you were given, you cut the campaign making you money and put more budget behind the one losing it.
This is not a hypothetical edge case. It is the normal situation, because the channels that produce cheap leads are generally the ones reaching people early in their thinking, and the channels producing expensive leads are generally reaching people ready to hire.
Ticket size changes the answer again
Close rate is only half of it. A contractor whose average job is $30,000 can pay considerably more per lead than one whose average job is $4,000, and both can be running sound campaigns.
Which is why industry benchmark figures for cost per lead are close to useless. A $90 lead is excellent for a roof replacement business closing one in four and ruinous for a gutter cleaning business closing one in fifteen. The same number, opposite verdicts, and no benchmark can tell you which you are.
What you need to track it
The obstacle is not usually willingness. It is that lead source stops being recorded somewhere between the enquiry and the sale, so the two halves of the calculation live in different places and never meet.
- Capture the source on every enquiry — which campaign, which keyword, which page. Forms can carry this automatically; calls need call tracking
- Carry the source into wherever deals live, so it is still attached when the job is won or lost
- Record won and lost with a reason. A lost reason of "price" and one of "could not schedule" mean very different things for your marketing
- Record the job value. Without it you have cost per job but not whether that cost was worth paying
- Review monthly by source rather than in total, which is where the surprises are
None of this requires expensive software. A CRM used consistently is enough, and consistency matters more than sophistication — a simple pipeline everybody updates beats an elaborate one nobody does.
The calls problem
For most contractors the majority of enquiries arrive by phone, and phone calls are where attribution usually collapses. An account measuring only form submissions is seeing the minority of its results and drawing conclusions from it.
We have taken over accounts where the campaign about to be switched off for poor performance was quietly producing most of the phone calls. Nobody had ever measured them, so on paper it looked like waste.
Call tracking fixes this and is one of the cheapest improvements available in contractor marketing. If you only do one thing from this article, do that one.
What to do with the number once you have it
Compare it against what a job is worth to you, not against an industry average. If a booked job costs $600 in marketing and nets $7,000 in margin, that is a channel to put more money behind, not less — even if the cost per lead looks high next to someone else's.
And when a channel genuinely cannot produce a booked job below what the job is worth, switch it off rather than optimising it indefinitely. Knowing which situation you are in is the entire point of measuring this way.
The short version
Cost per lead tells you what an enquiry costs. It tells you nothing about whether that enquiry becomes work. Track the source through to the won job, compare against your real ticket and close rate, and a lot of decisions that currently feel like judgement calls become arithmetic.
