Here's a conversation every agency owner has had. You send the monthly report: 47 leads at $38 a lead, CTR up, CPM down. You're proud of it. The client — a roofer standing in a parking lot between estimates — reads it and replies with one line:
"Okay, but I don't feel like I'm getting anything from this."
Thirty days later he's "pausing to reassess." Not because the campaign failed — because nobody proved it worked in language he cares about. Churn in home-services marketing is rarely a performance problem. It's a proof problem.
Leads are not the metric. They never were.
A lead is a maybe. Your client doesn't deposit maybes. A contractor thinks in three numbers: jobs on the schedule, dollars quoted, and dollars collected. If your reporting stops at "leads generated," you're asking the client to do the math connecting your invoice to their bank account — and when clients do that math alone, the agency usually loses.
Worse, lead-count reporting actively hides your wins. Say you cut lead volume 20% but the leads book at twice the rate because you tightened targeting. A leads-only report calls that a bad month. A revenue report calls it what it is: your best month yet.
The metrics that keep clients are further down the funnel:
- Leads → contacted: did anyone actually reach them? (Speed-to-lead lives here.)
- Contacted → booked: appointments on a real calendar.
- Booked → quoted: estimates delivered, and the dollar value of each.
- Quoted → won: signed jobs and revenue collected.
Track quoted value and revenue won — per lead
This is the step most agencies skip because it requires data from the client's side of the fence. Get it anyway. When every lead carries a quoted price and, later, a revenue-won figure, your reporting stops being about marketing and starts being about money:
- "We generated 47 leads" becomes "we put $212,000 in quotes into your pipeline and you've closed $64,000 of it so far."
- Cost per lead becomes cost per booked job and return on ad spend in actual revenue.
- You can finally see which campaigns produce big-ticket work versus cheap leads that quote low and close never.
How do you get the data? Make it stupid-easy for the client's side to log outcomes: a pipeline they drag deals through, a quick "what did this quote for?" field, an automated nudge when a job sits in "quoted" too long. If updating the pipeline takes more than seconds, the office manager won't do it, and your report dies of starvation. Structure beats hope.
Give every client a funnel view, not a metrics dump
One screen per client, showing the whole story left to right: spend → leads → contacted → booked → quoted → won. Numbers and dollar values at each stage. When a client can see 47 leads narrowing to 31 conversations, 14 appointments, $212K quoted, and $64K won, three good things happen:
- The value is self-evident. No one argues with a funnel that ends in revenue.
- Problems get located honestly. If leads are booking but quotes aren't closing, that's a sales conversation, not an ad problem — and now you can prove it instead of eating the blame.
- You become the operating partner, not the vendor. You're not "the Facebook guy" anymore; you're the one who shows the owner how his whole revenue machine is running.
That third point is the retention moat. Vendors get replaced by cheaper vendors. Partners who run the scoreboard don't.
The one-line report test
Before you send any client report, find the single sentence a busy owner would read aloud to his wife at dinner. If that sentence is about CPM, rewrite the report. If it's "the marketing brought in $64,000 this month against $4,500 spent," send it. Every chart in the report should exist to back up that one line.
Write monthly reports in owner language
The report itself should take a contractor two minutes to understand on a phone. A structure that works:
- The headline: revenue won, quoted pipeline, and spend — this month, in dollars, up top.
- The funnel: the stage-by-stage view with last month alongside for comparison.
- What we did: three bullets, plain English. "Launched the financing offer. Killed the underperforming ad set. Reactivated 400 old leads."
- What's next: three more bullets. Owners forgive a slow month when there's a visible plan.
- What we need from you: the ask that keeps the data loop alive — "mark outcomes on last month's quotes."
Notice what's missing: CTR, frequency, CPM, impressions. Keep them for your media buyers. The owner hired you for jobs, so report in jobs. If a platform metric doesn't change a decision the owner needs to make, it doesn't belong on his report.
Retention follows proof
Agencies love to talk about churn like it's weather — unpredictable, unavoidable, seasonal. It mostly isn't. Clients leave when the invoice is certain and the value is vague. Flip that equation and the conversation changes completely.
When a client can open a dashboard any day of the month and see booked jobs and won revenue tied to your campaigns, "should we keep paying the agency?" stops being a feelings question. The renewal conversation becomes a math conversation, and you wrote the math.
It also compounds. Proof gets you retention; retention gets you case studies with real revenue numbers; those case studies close your next client at a higher price. The agencies that grow past the churn treadmill aren't the ones with the cleverest ads. They're the ones who could prove it, every month, in dollars.
Leads made you look busy. Revenue makes you irreplaceable.