Contractor Tech Support

Cost per lead is lying to you. Track cost per sold job.

October 05, 2026

Do not judge a lead source by cost per lead alone. Track cost per sold job, then compare it with completed-job revenue and gross profit so low-value, canceled, or unprofitable work does not make a source look better than it is.

Cost per lead stops too early. It tells you what you paid to produce a name, form submission, or call under whatever definition that report uses. It does not tell you how many leads booked, how many appointments ran, how many jobs sold, whether those jobs were completed, or what they were worth.

What should you calculate instead of cost per lead?

The minimum calculation is:

Cost per sold job = attributable source cost ÷ sold jobs from that source

You can also calculate it as:

Cost per sold job = cost per lead ÷ lead-to-sold-job close rate

The second version works only when both calculations use the same lead definitions and the same group of leads. ServiceTitan’s documentation describes marketing scorecards that connect campaign costs, leads, sold jobs, and revenue rather than stopping at the first response (source).

The numerator also needs a written definition. Depending on the decision, source cost could include media spend, lead fees, agency management, call tracking, creative, software subscriptions, discounts, or internal sales labor. There is no universal numerator. State exactly what your report includes instead of calling an incomplete number total acquisition cost.

How can the cheapest lead become the most expensive sold job?

Here is a constructed example using three sources. The figures are illustrative as of October 5, 2026. They are not observed contractor results or industry benchmarks.

MeasureSource A: lead aggregatorSource B: paid searchSource C: Local Services Ads
Source cost$3,000$6,000$4,500
Leads1006030
Cost per lead$30$100$150
Sold jobs51515
Lead-to-sale rate5%25%50%
Cost per sold job$600$400$300
Average sold-job value$800$2,500$5,000
Attributed sold revenue$4,000$37,500$75,000
Attributed sold revenue ÷ spend1.33×6.25×16.67×

Source A wins the CPL report. Its $30 lead looks much cheaper than a $100 or $150 lead. But it sells only 5 of 100 leads. The calculation becomes $3,000 divided by 5 sold jobs, or $600 per sold job.

Source C looks worst in the CPL report at $150. It sells 15 of 30 leads, so its cost per sold job is $300. That is half of Source A’s cost per sold job. The cheapest lead became the most expensive sale.

The job values widen the difference. Source A has $4,000 in attributed sold revenue, compared with $37,500 for Source B and $75,000 for Source C. Jobber and ServiceTitan both document reporting that connects sources with later job or invoice value (Jobber source; ServiceTitan source).

This example shows that a reversal is possible. It does not establish how frequently the cheapest CPL is the most expensive sold job across contracting businesses. No primary, trades-specific dataset establishing that frequency was found.

Is cost per sold job the final answer?

No. Cost per sold job fixes the close-rate blind spot, but not the job-value or profit problem.

Two sources could both cost $400 per sold job. One might produce small repairs. The other might produce larger work. The same acquisition cost does not mean the same result.

A sold job is not necessarily earned revenue either. It can cancel, move outside the reporting period, or fail to become completed work. ServiceTitan’s ROI guidance says completed-job revenue is preferable to booked revenue for this reason (source). Incorrect sold-estimate workflows can also double-count revenue or costs (source).

Your owner-level scorecard should therefore pair cost per sold job with completed-job revenue. Add gross profit when your job costing is consistent. Gross profit can separate jobs with different labor, materials, equipment, commissions, financing fees, permits, and callback costs. If those costs are not captured consistently, do not present source-level gross profit as complete.

What has to be tracked before the number is real?

What counts as a lead and a sold job?

Write down your definitions for a valid lead, qualified lead, booked job, ran job, sold job, completed job, and collected job. There is no universal definition across contractor software.

This matters because two reports can show different CPLs without either division being wrong. As of October 5, 2026, one ServiceTitan scorecard definition uses calls lasting over 60 seconds or calls manually classified as leads, subject to its exclusions (source). Google Ads lets the advertiser choose a minimum call duration (source). A looser definition creates more reported leads and can lower the displayed CPL.

Can the original source survive all the way to the completed job?

The source cannot disappear when a lead becomes a customer. Google’s enhanced-conversions-for-leads documentation calls for accurate conversion times, separate offline funnel events, first-party identifiers, click IDs when available, values and currencies, and order or transaction IDs that help control duplicates (source; source).

Both contact paths matter. Forms can carry UTM fields and a Google Click ID into the CRM. Calls can use campaign-linked tracking numbers or a manually assigned campaign, as documented by ServiceTitan (source). Google Ads can also import call outcomes recorded in a CRM (source).

If forms are attributed but calls are not, the sources are not being compared on the same basis.

Are you following the same leads long enough?

Do not divide this month’s spending by this month’s sales when the sales came from older leads. Start with a lead-created group and follow that same group through a mature sales window.

The correct duration depends on the business. Emergency service, replacement estimates, roofing insurance work, and remodeling do not share one verified universal window. Google Ads allows conversion windows to be adjusted, while ServiceTitan warns that reports can disagree when they use different scheduling, attribution, and completion dates (Google source; ServiceTitan source).

Do cancellations and corrections flow back into the report?

A canceled job cannot remain a permanent sale. Refunds, reduced invoices, duplicate jobs, and corrected values need to update the scorecard. Google Ads supports conversion retractions and value restatements for this purpose (source).

Without those corrections, the report can continue crediting revenue that no longer exists.

What should the scorecard contain?

A practical source scorecard should include:

  • Source cost, with the included costs listed
  • Unique valid leads
  • Booked jobs
  • Ran jobs where that stage matters
  • Sold jobs
  • Completed jobs
  • Lead-to-sold-job close rate
  • Cost per sold job
  • Completed-job revenue
  • Gross profit when complete job costing is available
  • Cost as a percentage of completed revenue or gross profit

Every column needs one documented definition, one attribution rule, and compatible date groups. ServiceTitan and Jobber reporting documentation supports following marketing sources beyond the lead into jobs, revenue, and business performance (ServiceTitan source; Jobber source).

A weak close rate does not automatically prove that the source is bad. A full schedule, slow call handling, limited availability, service-area mismatches, pricing, or sales performance can affect what happens after the lead arrives. ServiceTitan gives an example in which cost per ran job rises when the job board is full and customers will not wait (source). Response processes by source belong in Angi, Thumbtack and Google LSA leads each need a different response. Response timing belongs in “Speed to lead: why sixty seconds decides who wins the job.”

Should Google Ads optimize for sold jobs too?

Not always. The deepest event can be too rare or too delayed to guide an ad platform well.

As of October 5, 2026, Google’s value-based Target ROAS guidance generally calls for at least 15 conversions in the previous 30 days (source). That is bidding guidance, not a verified minimum sample size for deciding whether a contractor’s lead source is profitable.

A contractor with only a few large sales may need Google Ads to optimize toward a higher-volume qualified-lead event. Sold jobs should still remain on the owner’s financial scorecard. Google recommends choosing a funnel stage with adequate volume and a reasonably short reporting delay (source).

Does attribution prove the ad caused the job?

No. Attribution assigns credit under a chosen rule. It does not prove what would have happened without the ad.

First-touch, last-touch, campaign tracking numbers, direct attribution, and data-driven models can rank sources differently. Google explains that last-click attribution gives the final eligible interaction all the credit, even when a customer interacted with multiple ads (source).

Google distinguishes normal attributed conversions from incremental conversions measured with treatment and control groups (source). An eBay paid-search experiment also found that conventional observational attribution materially overstated causal returns in that setting (source). That does not supply a contractor benchmark. It shows why attributed revenue should not be described as proven incremental revenue.

Use attribution as a consistent management rule. Do not pretend it answers a different question.

What should you ask for at the next marketing meeting?

Ask for source cost, valid leads, sold jobs, cost per sold job, completed-job revenue, and gross profit where available. Ask which dates, definitions, costs, and attribution rule produced those numbers. Then ask whether cancellations, duplicate jobs, and changed invoices flow back into the report.

If the report ends at CPL, it cannot show whether the leads turned into completed, profitable work.

Book a free consultation. We’ll set the tracking up so the number is real.

blog author avatar
Contractor Tech Support|Your outsourced technology team
We set up and look after the software contracting businesses run on — CRM and GoHighLevel, lead follow-up, AI call handling, websites and integrations. We're independent of the platforms we support, so we have nothing to push.
Back to Blog
Free, no obligation

You run the business. We'll handle the tech.

Tell us what isn't working. We'll look at your current setup, find the problem and explain what we would do about it. No complicated tech talk, no slide deck.

Mon–Fri, 9am–6pm CT. Calling is the quickest way to get an answer.