Free: the 90-second Leak Check. No email.Take it

Inside the Black Box · Part 7 of 11

One number: cost per booked job

What a real marketing report contains: one number at the top, the five rows that produce it, and how to build it from data you already have. With a worked month.

Six posts of diagnosis. Time to build the thing.

Here is the entire report an owner needs, in the order it should be read:

Cost per booked job: $316. Spend $6,000 → 41 contacts → 28 real → 19 booked → $29,220 revenue. Speed-to-lead: 6 min median, 71% of calls answered live. You own everything. Here's what we're changing next month.

That's it. Everything else is an appendix.

“I don't want a dashboard. I want one number I can argue with.”

The rest of this post is how to get to that number — what each row means, where the data comes from, the two places it goes wrong, and why the Black Box can't produce it even when it wants to.

The five rows

RowWhat it countsWhere it comes from
SpendEvery dollar, every channel, including management feesAd platforms + your invoice
ContactsEvery call, form, chat, LSA lead, GBP messageCall-tracking + form notifications + platform inboxes
RealContacts who are an actual prospective customer in your areaA human marks each one. No shortcut.
BookedReal contacts who scheduledYour CRM / scheduling software
RevenueWhat the booked jobs were worthYour invoicing

Then two divisions:

And one more row that makes the number honest — by campaign. Because the average hides the thing you most need to see.

The worked month, split

Same $6,000, split by where it went:

CampaignSpendContactsBookedRevenueCost/jobReturn
"AC tune-up $89"$2,2002413$2,460$1691.1×
Brand search$60074$2,960$1504.9×
"AC replacement + financing"$2,40062$23,800$1,2009.9×
LSA$80040$00
Total$6,0004119$29,220$3164.9×

Now the report can say something:

None of these decisions are possible from "118 leads, CPL $51." All of them are obvious from this table.

Where the data comes from — and the two places it breaks

Everything above is built from systems you already have. The work is connecting them.

Break #1: "Real" needs a human. No software reliably tells a wrong number from a customer. Someone — your office, your intake desk, or your agency listening to call recordings — has to mark each contact. Thirty seconds each. For 41 contacts, twenty minutes a month. Every agency that says "we can't measure booked jobs" is really saying "we don't want to spend twenty minutes."

Break #2: Revenue lives in your invoicing, not the ad platform. The agency has to ask you for it. Monthly. And then use it. Most don't ask, because the answer might be smaller than the ROAS in the dashboard.

Everything else — spend, contacts, which campaign each contact came from — is standard call-tracking and form-tracking, set up once.

The same number, other businesses

The row labels change. The structure doesn't.

VerticalThe numberThe "booked" rowThe "revenue" row
Home servicesCost per booked jobScheduled appointmentInvoice total
Law — PI / criminalCost per signed caseSigned retainerCase value (estimated at signing, trued up at resolution)
Law — family / estateCost per retained clientPaid consult or retainerFlat fee or engagement value
EcommerceCost per profitable orderOrder minus returnsContribution margin (revenue − COGS − shipping − returns), not revenue

Ecommerce gets its own post next, because the platforms' "4× ROAS" hides a specific trick. But the structure is identical: the number at the top has to be something the bank account recognizes.

Why the Black Box can't make this report

Not won't. Can't.

A report built on cost per booked job creates a number the agency can be held to. That's exactly why it isn't built.

Build it yourself in an afternoon

If you want this without changing anything else:

  1. Get call-tracking with a number per campaign and call recording. Put the numbers in the ads and on the landing pages.
  2. Route every form to one inbox with a timestamp.
  3. Once a month, export the list — every call and form, with source.
  4. Mark each one: real / not real; booked / not booked. Add the invoice amount for the booked ones.
  5. One spreadsheet, one pivot: spend, contacts, real, booked, revenue, by campaign.

First month takes an afternoon. After that, an hour. Then send it to your agency and ask which row they'd like to improve.

What AdPlanck sends

The block at the top of this post is the top of our monthly report — one number, five rows, speed-to-lead, ownership confirmation, next month's change. The appendix has the campaign split and every contact with its marking, so you can check us.

The price for that is flat and on the pricing page, with the reason next to each line. If the number's bad, you'll see it before we do, and that's the point.

See the pricing page


Sources & notes
  • Google Ads / Meta Ads Help: conversion tracking and attribution defaults
  • Call-tracking vendors' documentation on campaign-level numbers (generic; no vendor endorsed)
  • Worked month is a synthetic composite consistent with post #1; not client data.