Cost per booked job is the total you spend on a marketing channel in a period, divided by the number of new jobs that channel put on your schedule. Plumbing marketing should run on it because it's the only figure that ties spending to work. A click, a lead or a ranking can all look good while the board stays empty. This guide shows how to work it out, what data you need and where owners usually go wrong. It's the same method we use in paid search and local SEO reporting.
Why clicks and leads aren't enough
The short answer: each step between a search and a job loses people, and most of those losses happen after the click.
A typical path for a plumbing call:
- Someone searches "no hot water [City]".
- They click your ad, your profile or your website.
- They call.
- Someone answers, or doesn't.
- The person on the phone books the job, or doesn't.
- The tech shows up and does the work.
A report that stops at step 2 or 3 tells you almost nothing about steps 4 and 5, which is where many plumbing companies lose half their opportunities. That's why two companies on the same budget can see very different results.
The formula
Cost per booked job = total channel cost ÷ new jobs booked from that channel
Total channel cost includes:
- media spend (what Google or Microsoft charged),
- management fees for that channel,
- any tools tied to it, such as a call tracking line or a landing page tool.
New jobs booked means appointments for new customers that your office scheduled from calls or messages attributed to that channel. Count bookings, not quotes. For big jobs like repipes, track sold jobs separately as well.
A worked example
These are labelled assumptions, not results from a client.
A four-truck company runs Google Ads for one month across three job types:
| Emergency | Water heaters | Drains | |
|---|---|---|---|
| Media spend | $2,400 | $1,800 | $1,100 |
| Share of management fee | $600 | $450 | $275 |
| Total cost | $3,000 | $2,250 | $1,375 |
| Calls | 72 | 41 | 38 |
| Qualified calls (new customers, in area, real job) | 49 | 30 | 22 |
| Booked jobs | 30 | 17 | 15 |
| Cost per booked job | $100 | $132 | $92 |
On its own, the water heater figure looks worst. Now add what each job is worth in gross profit, from the company's own records:
| Emergency | Water heaters | Drains | |
|---|---|---|---|
| Typical gross profit per job | $380 | $1,150 | $260 |
| Marketing cost as share of gross profit | 26% | 11% | 35% |
The ranking reverses. Water heaters are the most efficient channel by far, and drains are the least, even with the lowest cost per booked job. The decision that follows is to move budget toward water heater campaigns. If drain jobs often lead to bigger work such as lateral repairs, that's worth tracking separately before cutting them.
Where the data comes from
You need three sources, and they have to connect:
- Platform data: spend by campaign from Google Ads, Microsoft Ads and Local Services Ads.
- Call tracking: a separate number per channel, so every call is attributed. Calls are tagged booked, not booked, existing customer, wrong number or spam. Our websites and call tracking service sets this up.
- Job records: from your dispatch or field-service software, matched to the calls by phone number and date, so you know which booked jobs were completed and what they were worth.
If your office books jobs in a paper diary, start there anyway. A weekly tally of "booked from Google, booked from the profile, booked from referral" is better than nothing.
How to set a target
Work backwards from gross profit, job type by job type.
- Pull the average gross profit per job for each job type from the last six months.
- Decide what share you're willing to spend to win a new customer. Many owners start somewhere between 15% and 30%. Consider repeat value too: a customer who comes back every year for a maintenance visit is worth more than one job.
- Multiply. A $1,000 gross-profit job at 20% gives a $200 target.
- Agree the target with whoever runs your marketing before any money is spent.
The traps
- Counting every call as a lead. Spam, wrong numbers, job seekers and suppliers inflate the number.
- Counting existing customers as new business. It makes branded searches look like a goldmine.
- Ignoring missed calls. If 20% of calls ring out, your real cost per booked job could fall by a fifth just by answering them, with no change to the ads.
- Comparing channels on different definitions. LSA leads, ad calls and profile calls must all be counted the same way.
- Judging SEO in month two. Organic work has a long payback; compare it over 12 months.
- Letting the agency mark its own homework. The booked-job count should come from your records, not from the platform.
A one-page monthly view
Once the data connects, the monthly view fits on one page:
| Channel | Total cost | Booked jobs | Cost per booked job | Gross profit booked | Cost as share of gross profit |
|---|---|---|---|---|---|
| Google Ads | |||||
| Local Services Ads | |||||
| Google Business Profile and organic | |||||
| Referrals and repeat |
Fill it in for three months running before making big changes. One month can be distorted by weather, a holiday or a single large job; three months show the pattern.
What to do with the number
Once you know cost per booked job by channel and job type, decisions get simpler:
- Shift budget from the least efficient job type to the most efficient, as a share of gross profit.
- Fix call answering before raising spend if many calls go unanswered.
- Expand into a new town only when the core area holds its target.
- Keep SEO and reviews running even when paid search looks cheaper, because they lower the blended cost over time.
That's the discipline behind every plan on our pricing page. If you'd like help setting up the tracking, call, text or email. If your bottleneck is the office's booking rate rather than marketing, our sister practice plumber.consulting works on that side of the business.
Frequently asked questions
What's a good cost per booked job for a plumber?
It depends on what the job is worth to you. A cost that works for a $3,000 water heater replacement would be ruinous for a $250 faucet repair. Set the target by job type, as a share of the gross profit that job typically brings.
Should we count existing customers who call through an ad?
Track them, but separate them. An existing customer who clicks your ad instead of calling the number on their fridge magnet isn't new business, and counting them flatters the channel.
How do we count SEO, which has no click cost?
Use the monthly cost of the work: management fees, content and any tools. Divide by the jobs booked from organic and profile calls. SEO usually looks expensive in the first months and cheap by the end of the first year.
What if our office doesn't record which calls were booked?
Start with a simple tag on every call: booked, not booked, existing customer, spam. A week of honest tagging tells you more than a year of click reports.