Revenue Tracking
Cost per lead is a vanity metric. Cost per booked job is not.
Channels that look expensive at the lead level are often the cheapest source of revenue you have.
May 2026 · 5 min read
Two channels, same budget
A paid social campaign delivers leads at $18. Local Services Ads deliver them at $75. On a platform dashboard, the choice looks obvious. Reconciled against the CRM, the picture inverts: the $18 leads book at 12% and close at 30%, while the $75 leads book at 55% and close at 60%.
Cost per booked job on the cheap channel is $500. On the expensive one, it is $227. Cutting the expensive channel to protect cost per lead would have removed the profitable half of the account.
The chain you need to see
Every channel should be readable end to end, by source:
- Spend → leads → qualified opportunities → booked appointments
- Booked appointments → quotes issued → jobs won
- Jobs won → average ticket → collected revenue → return on ad spend
Why platform conversions mislead
Ad platforms count what happens on their surface: a click, a form, a call over 30 seconds. They cannot see the disqualified lead, the appointment that no-showed, or the quote that was never signed. When budget is optimized on that data, the algorithm gets very good at producing cheap events instead of customers.
Feeding CRM outcomes back into the platform changes what it optimizes for. Once won jobs are the conversion, the algorithm starts hunting for buyers rather than form-fillers.
A workable reporting cadence
Weekly: spend, leads, response time, booked appointments. Monthly: jobs won, average ticket, collected revenue, cost per customer and ROAS by channel. Quarterly: budget reallocation and market or service expansion decisions. Anything more frequent than that on revenue data usually produces noise-driven decisions.
Want this run inside your business instead of read about?
Book a Growth Call