Why does the channel ranking change when you attribute revenue instead of leads?
Because channels differ in what kind of work they bring, not just how much. A channel with cheap leads can rank first on cost per lead and last on cost per dollar of completed revenue if those leads book at a lower rate or buy smaller jobs. Ranking on revenue requires carrying the source identifier all the way into the system that holds the invoice.
Four stages, four different drop-off rates
Between a click and money there are several gates: the lead is created, the lead books an appointment, the job is completed rather than cancelled, and the invoice is issued at some value. Channels perform differently at every gate, and cost per lead only measures the first one.
A channel producing many inexpensive leads that book at a low rate can cost more per booked job than a channel with expensive leads that book reliably. A channel whose customers buy repairs rather than replacements can look identical on booking rate and still produce a fraction of the revenue.
The metrics that actually rank channels
- Booking rate by source. Leads that turn into scheduled appointments. Often the biggest single difference between channels.
- Completion rate by source. Booked jobs that are actually performed. Cancellations and no-shows are not evenly distributed.
- Average ticket by source. What the completed job invoiced for. Job mix varies more than most operators expect.
- Cost per completed revenue dollar. Spend divided by attributed completed revenue. The ranking metric that survives scrutiny.
- Revenue per lead. A blunt cross-check that no attribution model can flatter.
Why this is an integration problem, not a reporting problem
Every one of those metrics needs the lead source to survive the trip into the operational system and stay attached through booking, dispatch, completion and invoicing. If the source lives only in the ad platform or only in the call tracking tool, none of it is computable.
That is why the work usually starts with plumbing: capture source and click identifier at the lead, write them to the customer or job record, and keep them stable through every status change. Once that exists, revenue reporting by source is straightforward, and it is what ServiceTitan and Jobber integrations spend most of their effort on.
The uncomfortable findings to expect
Two results show up often enough to warn you about them. First, a channel everyone likes because the lead cost is low turns out to book poorly, and the true cost per job is much higher than assumed. Second, a channel that looked expensive turns out to bring larger jobs and ranks first on revenue efficiency.
Both findings tend to be resisted, because someone has been reporting the old numbers for a while. Publishing the match rate alongside the new ranking helps, because the honest response to skepticism is showing exactly how much of the revenue was identified and how much was not.
Topics: revenue attribution · booking rate · average ticket · channel ranking
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.