For years, the monthly reports we sent clients looked like everybody else's. A cover page, a row of numbers in boxes, green and red arrows, a table for every campaign. We built them in Swydo, a good reporting tool used by thousands of agencies, and they went out on schedule every month.
The numbers were right. The story wasn't in them. It lived everywhere else: in the audit we ran when we took over the account, in the research we did on a client's competitors, in the video walkthroughs our account manager records while working in the account, in what the owner told us on the phone about a slow season or a new location. When a client asked what the month really meant, we pulled all of that together out loud.
This fall we replaced Swydo with a reporting system we built ourselves, in Claude Code. The difference isn't prettier charts. Each report now carries the story: where the account stands, why the numbers moved, and what's coming next. Here's what goes into one, and what any owner should expect from a monthly report, whoever sends it.
A Dashboard Shows What Happened. It Can't Tell You Why or What Comes Next.
Here's a page like the ones we used to send. The numbers are made up for this example.
- Conversions: 64
- All conversions: 410
- Phone calls: 88
- Cost per conversion: $58
Every number on it is accurate, and it still leaves the owner guessing. Which of those is leads? Was this a good month for this business, in this season, at this budget? What should happen next?
A dashboard can't answer, because a dashboard only sees what the ad platform hands it. Google named the column "Conversions," so the report printed "Conversions." Swydo has added AI summaries of its own, and they help, but an AI summary written from the same page still only knows what's on the page.
Your Ad Account Is One Source. Your Report Should Draw on the Audit, the Research and the Calls, Too.
We built our reporting in Claude Code, an AI assistant made by Anthropic. Most people use it to write software. We use it to run a good part of our agency, and it can work with far more than an ad account. That's what made a different kind of report possible.
Here's what a BrandRocket report draws on:
- Live data from every channel we run. Google Ads, Meta, LinkedIn, Google Analytics and call tracking, pulled fresh for the month.
- Our own audit of the account. When we take over an account, we go through it by hand: what's tracked, what's broken, what counts as a real lead. Those findings shape every report after.
- The work we've done in the account. Our optimization runs record what we tested, what we changed and why, so a shift in the numbers can be read against what actually happened.
- Market research. Who the competitors are, what people search for, when demand rises and falls in that industry and that city.
- Our account manager's notes. Our account manager records video walkthroughs while working in client accounts. We transcribe them, so what a person saw in the account becomes part of the record.
- What the client tells us. A slow season, a budget shift, a location closed for a remodel, a service they want to push. If it changes how the month should be read, it goes into the account's notes.
- Call monitoring. What callers actually asked for, from the recorded calls.
- The client's CRM, where it's connected. Which leads became customers, and for how much.
All of it feeds the notes each report is written from. So the summary at the top of the report reads like it came from someone who knows the business, because it did.
Your Report Starts With What You Count as a Lead, Not What Google Counts
Before a new report goes out, we set it up for that one business:
- Which actions count as a lead. A booked appointment counts. A form traced to an ad click counts. An email-link click usually doesn't, and neither do Google's map-direction clicks.
- How calls count. Our standard is a call of 30 seconds or longer, long enough to catch a voicemail, because voicemails are real leads.
- The client's own words. A school gets registrations, not leads. A store gets sales and revenue.
- The right report for the business. A company that wants calls and quote requests gets a lead report. An online store gets purchases, revenue and return on ad spend.
That's how the example above turns 64 conversions, 410 all conversions and 88 calls into one honest number: 52 leads, at $68 each, with a sentence saying exactly what's in it.
A CRM Connection Lets the Report Follow One Lead From the Click to the Signed Deal
A lead isn't a sale. For a business with a long sales process, like equipment, B2B services or anything with a quote and a follow-up, the real question is which ads produced customers, not which produced form fills.
When a client's CRM is connected, the reporting can follow each lead past the form: was it qualified, did it turn into a deal, did the deal close, and for how much. We run this today for a client whose sales team works every lead in HubSpot. They get a weekly report from the click all the way to the close.
Here's what that changes, with made-up numbers for one month:
- 140 leads from ads
- 46 qualified by the sales team
- 17 closed deals
- $212,000 in closed revenue on $9,800 in ad spend
Two campaigns can bring in the same number of leads, and one of them can produce nearly all the closed deals. Without the CRM connection, they look identical. With it, the budget follows the campaign that sells.
Not every business needs this, and it only works when the CRM is kept up to date. For the ones it fits, it's the most valuable number we can put in front of an owner.
Your Calls Are Where Customers Say What They Want. We Monitor Them and Report What We Hear.
For a lot of local businesses, the phone is where the money is. Our reports already count calls, time them and tie each one back to the campaign, keyword and ad that produced it, so a campaign that rings the phone gets credit for it on its own page.
Now we monitor the calls themselves. Where a client's call tracking records calls, we go through what callers actually said: who asked for a quote, who wanted a repair, who was an existing customer, and who was a wrong number or a sales pitch. We started with one client this fall and are adding the next one now.
That changes the story a report can tell. "88 calls" becomes "61 people asking for a quote, 14 existing customers, 13 that weren't leads." And patterns show up that no dashboard can see: the question every caller asks that the website never answers, or the service people keep calling about that the ads don't mention. What we hear goes into the account's notes, and into the report.
Every Number in the Written Summary Is Checked Against the Data Before You Read It
Each report opens with a few short paragraphs in plain English. Here's an example, with invented numbers:
"In October, ads produced 52 leads, up 41% from 37 in September. Cost per lead fell to $68 from $91 on spend of $3,540. Calls rose to 39 from 26, and forms traced to an ad click rose to 13 from 11. Calls were counted the same way in both months, as calls of 30 seconds or longer, so the totals compare directly."
A summary with that much context has to be right, so the rules are strict:
- Every number is checked against the data before the report goes out. If the summary says 52 leads and the data says 51, the report stops until it's fixed.
- It says what changed, never whether it's good or bad. A slow month is reported as a slow month, with the context that explains it.
- It never invents a cause. If a reason hasn't been confirmed, it isn't offered. A made-up explanation is worse than none.
Then the report looks forward. A short Looking Ahead section uses the account's own history from the same months last year, plus the season the business is heading into, to say what the next month or two usually bring. An owner gets the story of where things stand and where they're going, not just a look back.
The first report for every new client comes to me as a draft, and I read it against the numbers myself. After that, it runs on its own in the cloud and lands in the client's inbox in the middle of each month, once the numbers have settled.
Ad Platforms Grade Their Own Homework. The Report Shows the Number Underneath.
Every ad platform counts its own results, and every platform counts generously. Meta, by default, credits an ad with a sale if someone clicked it and bought within a week, or just saw it and bought within a day. It also offers a stricter count, incremental attribution: its own estimate of the sales the ads actually caused.
For an example store, one month might look like this (invented numbers):
- Meta's default count: 210 sales
- Sales after a click: 128
- Sales from people who saw an ad and never clicked: 82
- Meta's incremental count: 140
A dashboard shows the 210. Our ecommerce reports show all four side by side, so the owner knows 140 is the floor the ads earned on their own, and how much of the 210 rests on view-only credit.
A Monthly Report That Can't Tell You How Many Leads You Got Is a Stack of Charts
You don't need our reports to hold your own to a higher standard. Whoever sends you a monthly report, ask it these five things:
- How many leads did I get, and what counts as one? One number, with a plain sentence saying what's in it.
- How are calls counted, and do they show up by campaign? If your customers call, this matters more than anything else on the page.
- How many of those leads became customers? If your sales run through a CRM, your report can know.
- Is this the platform's count, or a stricter one? Especially for an online store.
- What changed, why, and what comes next? The why should come from someone who checked, and the what's next should come from your own account's history, not a guess.
If your report can't answer those, it isn't a bad report. It's a report that only knows your ad account. We've written more about which lines belong on the page in A Useful Meta Ads Report Is Seven Lines on One Page, and about what your report says about the people running your ads in How to Tell If the People Running Your Ads Are Any Good.
This is how we report to our clients now. If you'd like your ads run and reported this way, we're glad to talk. That goes for agencies, too.




