Skip to content

A good monthly report answers one question: did marketing produce signed jobs, and at what cost? Clicks, impressions and cost per lead are inputs. The owner needs outcomes: booked appointments, closed jobs, cost per closed job and what is sitting in the pipeline. This guide gives you the checklist, a one-page template and the questions that show whether your agency's report is telling you the truth.

 

The short answer

  • Lead with outcomes. Closed jobs, closed revenue and cost per closed job go at the top of the report, before any traffic or click numbers.
  • Report the whole path. Leads, booked appointments, estimates, signed jobs and open pipeline value, by lead source, from your CRM.
  • Explain the losses. Lost-deal reasons show whether the problem is lead quality, response, price or follow-up.
  • Show return by source. Return on ad spend (revenue divided by ad spend) for each channel, using closed revenue from your CRM, not only the number the ad platform reports.
  • End with decisions. What changed, what will change next month and what the agency needs from you.
  • One page for the owner, details underneath. If you cannot read the summary in two minutes, the report is built for the agency, not for you.

Why most agency reports miss the point

Ad platforms report what they can see: impressions, clicks, form fills and calls. They cannot see whether the homeowner showed up, got a quote or signed unless your CRM tells them. So a report built only from platform dashboards can show rising leads and falling cost per lead in the same month that signed jobs fall.

GoRizen's standard is to report beyond cost per lead: monthly, on cost per closed deal, pipeline value in the CRM, lost-deal reasons, return on ad spend by source and cost per booked appointment. This guide turns that into a checklist you can hold any agency to, including us. If you are still choosing an agency, see How to Choose a Roofing, Pool or Window Marketing Agency; if you are weighing a hire against an agency, see Agency vs In-House for a $5M Home Service Company.

If your numbers do not connect to jobs yet, start with the Lead-to-Job Leak Diagnostic, which shows how to track a lead from first call to signed job.

The 10 items in a monthly report

#Report itemWhat it showsFormula in words
1Closed jobs and closed revenueThe resultCount and dollar value of signed jobs in the month, from the CRM
2Cost per closed jobWhat a job costs youMarketing spend divided by closed jobs
3Leads by sourceVolume and mixCount of calls, forms, chats and messages per source
4Cost per leadA leading indicator onlyAd spend for a source divided by its leads
5Cost per booked appointmentCost to get a homeowner on the calendarAd spend divided by appointments booked
6Funnel ratesWhere leads dropLeads to answered, to appointment, to estimate, to signed
7Pipeline valueRevenue likely to closeDollar value of open estimates, by stage
8Lost-deal reasonsWhy jobs were not wonCount of lost deals by a fixed reason list
9ROAS by sourceReturn on ad dollarsClosed revenue from a source divided by its ad spend
10Actions and next month's planWhat happens nextChanges made, tests running, requests to the owner

1 and 2: Closed jobs, closed revenue and cost per closed job

This is the headline. It should come from your CRM, where the job was marked won, not from an ad platform's conversion count. Ask for it for the month and for the trailing three months, because one month of a high-ticket business is noisy.

Cost per closed job is total marketing spend divided by closed jobs. Be clear about "total": a fair version includes ad spend and agency fees, and says so. A version that uses ad spend alone is fine as a channel metric, but label it.

For window replacement, GoRizen's Growth Hub says that in its experience a healthy cost per sale falls between 8% and 15% of total job revenue (Windows & Doors Growth Hub). That is one trade's reference point, not a universal standard. Your own target comes from your margin.

3 and 4: Leads by source and cost per lead

Leads still matter, as long as they are not the only number. Break them down by source: Google Ads, Local Services Ads, Meta, organic search, Google Business Profile, referrals. Split phone calls from forms, and mark which calls were real leads.

Cost per lead is useful for spotting changes, such as a campaign that suddenly costs twice as much. It cannot tell you whether a source is worth keeping. A cheap source with few signed jobs can cost more per job than an expensive one.

5: Cost per booked appointment

This sits between cost per lead and cost per closed job, and it is the metric the agency can control most directly. It also shows whether the leak is on the marketing side (not enough appointments) or the sales side (appointments that do not sign).

6: Funnel rates

Show the rate from each stage to the next: answered, qualified, appointment set, appointment held, estimate delivered, signed. A rising lead count with a falling appointment rate means follow-up or lead quality changed. See the seven-stage worksheet for how to count them.

7: Pipeline value

Pipeline value is the dollar value of open estimates, grouped by stage. It tells you what is likely to close in the coming weeks and whether this month's marketing has set up next month's jobs. It is especially important for high-ticket, longer-cycle trades, where this month's marketing closes months later. It should come from the CRM, and an old estimate that no one has touched should be flagged, not counted as live.

8: Lost-deal reasons

Every lost deal should carry a reason from a short fixed list, such as no response, outside service area, not a fit, price, chose another company, project delayed. Count them. The ranking tells you whether to fix targeting, response speed or the sales process. If your agency's report has no lost reasons, it is not showing you the part you most need to see.

9: Return on ad spend by source

Return on ad spend (ROAS) is revenue from a source divided by the ad spend for that source. Google Ads reports a version of this from conversion values (conversion value divided by cost). Its accuracy depends on how conversion values are set and whether closed revenue is imported from your CRM (see Google's offline conversion import help). Ask which revenue number is used: the platform's estimate or your actual closed revenue. Ask for both if they differ.

Two cautions. ROAS is revenue, not profit. And for high-ticket jobs, peak-month ROAS can look very high while a slow month looks poor, so look at a rolling period.

10: Actions and next month's plan

The report should end with what was changed (bids, budgets, ads, pages, follow-up rules), what is being tested, what worked, what did not, and what the agency needs from you, such as faster estimate turnaround or lost reasons entered in the CRM.

One-page owner report template

Copy this layout.

Month: ________ | Total marketing spend: $______ (ad spend $____ + agency fees $____)

ResultThis monthLast monthTrailing 3 months
Closed jobs
Closed revenue
Cost per closed job
Booked appointments
Cost per booked appointment
Open pipeline value
By sourceSpendLeadsAppointmentsClosed jobsClosed revenueCost per closed jobROAS
Google Search
Local Services Ads
Meta
Organic and Google Business Profile
Referral and other

Lost deals this month: count by reason (no response, outside area, not a fit, price, chose another company, delayed).

What we changed: 3 to 5 bullets.

What we are testing: 1 to 3 bullets.

What we need from you: 1 to 3 bullets.

 

Platform numbers vs CRM numbers

Expect the two to disagree. Reasons include different attribution windows, jobs that closed after the click window, calls that were never tied to a source, and platform conversions that count a form fill, not a signed job. The report should show both, say which one is the source of truth (the CRM) and explain any large gap.

For phone leads, ask how calls are tracked. Google's help pages describe call reporting that can count calls over a minimum length or analyze call recordings, and suggest importing call conversions if another system tracks which calls became sales (Google Ads Help: measure calls from ads). A report that counts calls but never says how many became appointments leaves out most of the picture.

For Local Services Ads, charged leads are not jobs. Google notes that charged leads may be reassessed and credited automatically if later found to be low quality (Local Services Help: automated lead credits), so the report should show leads charged, credited and then booked and closed.

Questions to ask your agency

  1. Which report number comes from the CRM and which from the ad platform?
  2. How many of last month's closed jobs can be traced to a source, and how many cannot?
  3. What was cost per closed job, and how was it calculated?
  4. What are the top three lost reasons, and what are we doing about them?
  5. How many calls were tracked, and how many were real leads?
  6. What is our average time to first response?
  7. What is the open pipeline value, and how much of it is older than 30 days?
  8. Which source would you cut or increase next month, and why?
  9. What did you change last month, and what happened?
  10. What do you need from my team to improve results?

Red flags in an agency report

  • Only impressions, clicks, traffic and cost per lead.
  • No closed jobs or closed revenue.
  • Results shown as a percent change with no base numbers.
  • No lost-deal reasons.
  • ROAS with no source for the revenue figure.
  • Everything is "up" and nothing is explained.
  • No next steps, or next steps that repeat last month's.
  • A report you cannot connect to your own books.

What this looks like in practice

For Sunset View Construction, GoRizen tracked the pipeline from lead to sales-qualified opportunity to closed deal and optimized on closed deals, not vanity metrics. In 4 months the case study reports 700+ inbound leads, 140+ sales-qualified opportunities and 40+ closed sales, with peak months at 12x to 26x return on ad spend. The case study notes these results reflect high-ticket projects with longer buying cycles and multi-touch attribution.

More results are on the Case Studies page. Benchmarks and resources by trade are in the Windows & Doors, Roofing and Pool Construction Growth Hubs.

How GoRizen reports

GoRizen reports monthly on cost per closed deal, pipeline value in the CRM, lost-deal reasons, return on ad spend by source and cost per booked appointment. Current plans are on the pricing page; plan prices do not include ad spend, which is billed separately. Related services: Paid Ads Management and CRM Migration + Integrations.

 

FAQ

What should a marketing agency report to a home service owner every month?

At minimum: closed jobs and closed revenue, cost per closed job, leads and appointments by source, pipeline value, lost-deal reasons, return on ad spend by source, and next month's plan. Outcomes come first, and click and impression data goes in an appendix.

What is cost per closed job?

Total marketing spend divided by the number of jobs signed in the period. Ask whether the figure includes agency fees or only ad spend, and look at a trailing three months, since one month of a high-ticket business can swing widely.

How is cost per closed job different from cost per lead?

Cost per lead divides spend by every contact, including ones that never book. Cost per closed job divides spend by signed jobs only, so it includes the effect of response, appointment setting and sales follow-up. A source with a low cost per lead can have a high cost per closed job.

Why do my agency's lead numbers not match my jobs?

Platforms count form fills, calls or clicks, and cannot see signed jobs unless closed revenue is imported from your CRM. Differences in attribution windows and untracked phone calls add to the gap. A good report shows both sets of numbers and says which one to trust.

What is a good ROAS for a home service company?

It depends on your margin, job size and sales cycle, so no single number fits every company. Compute break-even ROAS from your margin and compare by source over a rolling period. In GoRizen's Sunset View case study, peak months exceeded 12x to 26x, which reflects high-ticket jobs and longer buying cycles.

How often should I meet with my agency?

Monthly for the full report and decisions, with a short weekly or biweekly check-in during launches or tests. The monthly meeting should end with a written list of changes and who owns each one.

Should I have access to my own ad accounts and CRM?

We recommend it. Your ad accounts, call tracking and CRM should be in your name, with the agency given access. That way you keep your data and history if you change agencies, and you can check any report number yourself.

Let's Make Your Reporting Tell the Truth

If your current report shows leads but not signed jobs, the first step is to connect your ads, calls and CRM so each closed job traces back to a source. We will walk through your numbers and show what a report built on closed jobs would look like for your company.

 

Veteran-owned and woman co-owned. 31 NE 17th Street, Miami, FL 33132 | 305.548.8464