On this page
- Why month one is a baseline, not a verdict
- Split the report into five ledgers: delivered, enquiries, trials, paid, uncertain
- Set the baseline before work starts: what to record and where it lives
- Check the tracking first: UTMs, GA4 key events and Search Console definitions
- Read activity and visibility metrics without treating them as sales
- Handle attribution uncertainty honestly: what GA4 attribution models do and do not tell you
- A hypothetical month-one review, line by line
- Questions to ask before month two (and when an agent or agency alternative fits)
- Conclusion
The first report lands in your inbox on the fifth of the month. It has a cover slide, a traffic chart pointing up and to the right, a list of 14 blog posts and 31 social posts, and a line that says "impressions: +212%." You read it on your phone between a customer call and a pull request, and you feel vaguely reassured. Then you open Stripe and the number has not moved.
That gap is the whole problem with the marketing agency monthly report. The party being measured writes it, and it is built to show motion. Motion is cheap. Revenue is not.
This guide is for founders at small B2B software companies who have no growth hire and are reading month one from an agency, a freelancer or a growth tool. The method works for any of them. You split the report into five separate ledgers (work delivered, qualified enquiries, trials, paid customers, attribution uncertainty), check that the tracking can be trusted, and read each ledger on its own terms. Impressions never get to stand in for sales. By the end you will know what is real, what is activity, and what to ask before you pay for month two.
Why month one is a baseline, not a verdict
Month one is the wrong month to judge results. Most of it is setup: access, tracking, keyword research, a content calendar, the first sequences and drafts. Almost nothing the agency ships in week two will have had time to rank, convert or close.
The sales cycle alone makes this true. If your average deal takes 45 days from first touch to signature, a customer who signs in month one came from work that started before the agency did. Crediting them to the agency is a mistake. Blaming the agency for an empty paid ledger is the mirror-image mistake.
So stop asking "did it work?" and ask "can we measure this thing?" Month one has three honest jobs. It should deliver the work that was promised. It should leave you with tracking you can trust. And it should record where you started, so month three has something to be compared against.
A report that skips straight to a victory lap has failed the third job. A good month-one report is slightly boring. It lists what shipped, what is instrumented, what the starting numbers were, and what will be tested next.
Month one is a baseline, not a verdict. If the agency's report reads like a verdict, they are either overclaiming or avoiding the baseline conversation. Both are worth a direct question.
Split the report into five ledgers: delivered, enquiries, trials, paid, uncertain
Agency reports blend everything into one narrative. Your first job is to unblend it. Take a blank page and write five headings.
1. Work delivered. What was actually produced: posts published, emails sent, pages shipped, campaigns launched, accounts researched. This is the agency's ledger. It proves effort and nothing else.
2. Qualified enquiries. Real people who fit your buyer profile and raised a hand: a demo request, a reply asking about pricing, a form fill from a company you would sell to. Visitors and followers don't count.
3. Trials. Accounts that started a trial or free plan and did something meaningful in the product. A signup from a student with a personal email is a trial in the dashboard and noise in your pipeline.
4. Paid customers. Money received or contracts signed. One line, in your payments system, not the agency's.
5. Attribution uncertainty. Everything you cannot confidently credit: direct traffic, dark-social referrals, deals where the buyer "found you on Google" but had also seen a LinkedIn post, anything touched by both the agency and your own founder-led efforts.
The rule is simple. A number may only be read in the ledger where it lives. Impressions belong in a visibility note, not in enquiries. A trial does not become a paid customer because it looks promising. Anything you cannot defend goes in ledger five, openly, instead of being quietly assigned to whoever is presenting.
If your agency's report cannot be sorted into these five without guessing, that is your first finding. Ask them to resubmit it in this shape. Good operators will do it without fuss, because it makes their real wins easier to see.
Set the baseline before work starts: what to record and where it lives
You cannot read a delta without a starting point, and the starting point must exist before the first deliverable ships. Record it in a place the agency cannot edit: a spreadsheet you own, or a dated export saved in your own drive.
Capture these on day zero:
Organic clicks, impressions and top queries from Google Search Console for the previous 90 days.
Sessions and key events from GA4 for the same window, by channel.
Number of qualified enquiries per month for the last three months, counted by you from your inbox and CRM, not from any form tool's default report.
Trials started and trials that reached your activation moment.
New paid customers and new MRR per month.
Which pages currently get the most organic traffic, so you can tell later whether new content adds traffic or just cannibalises old content.
Whether your brand shows up in answers from ChatGPT, Claude, Perplexity and Gemini for the ten questions your buyers actually ask. Run them yourself and save the answers.
Two habits make this stick. First, write down your own founder-led activity in the baseline: the LinkedIn posts you wrote, the intros you made, the conference you attended. Without that, the agency inherits credit for your own effort, or loses it, depending on who is arguing.
Second, keep the raw exports, not just a summary. A screenshot of a chart is not a baseline. A CSV with dates is.
This takes about two hours. It is the highest-value two hours of the engagement, because every later conversation becomes a comparison instead of an opinion.
Check the tracking first: UTMs, GA4 key events and Search Console definitions
Before you read a single result, confirm that the results can be trusted. Most disputed reports are tracking disputes in disguise.
UTMs. Ask for the naming convention in writing. Source, medium and campaign should be consistent, lowercase and documented. If one email sequence is tagged "email" and another "Email" and a third "outbound", GA4 will split them into three rows and the report will undercount each. Click a few tracked links yourself and confirm the parameters arrive.
GA4 key events. GA4 can report event counts for all collected events, but only events marked as key events are counted in key-event reporting and used for key-event attribution. Ask which events are marked, and whether they map to your ledgers. "Scrolled 90%" marked as a key event will make your conversion rate look wonderful and mean nothing. You want demo requests, trial starts and signups, each with its own definition.
Search Console definitions. Average position is an average across queries and can rise because you started ranking for obscure terms. Ask which queries the agency is tracking and why.
Bot and internal traffic. Check that your own team and known bots are filtered, or your baseline is polluted.
Booking and form events. Confirm that a demo booking fires a distinct event and that you can see who booked. If the only evidence of an enquiry is a count in a dashboard, you cannot audit it.
Here is a useful test. Pick three enquiries from the report and trace each back to a real inbox message or CRM record. If you can, the tracking works. If you cannot, nothing else in the report is safe to believe yet.
Read activity and visibility metrics without treating them as sales
Activity and visibility metrics are not worthless. They are leading indicators, and they belong in ledger one and a visibility note. The sin is promoting them.
Impressions tell you that Google showed your pages. They rise when you publish more, whether or not the pages are any good. Followers and post reach tell you about audience, not buyers. Open rates on cold email are distorted by privacy features that preload images, so treat them as directional at best. Domain rating, backlink counts and keyword rankings are third-party estimates. They are useful for trend and silent on revenue.
Here is how to read each one honestly. Ask what decision it informs. If impressions are up 200% but clicks are flat, your titles are failing to earn the visit. If you rank for 80 new keywords and all of them are informational queries from students, the traffic will not convert. If a LinkedIn post got 40,000 impressions and zero profile visits from your target accounts, it was a nice post.
The quality check is the buyer filter. For every visibility metric, ask how many of these people are in my ICP. A smaller number of the right people beats a large number of the wrong ones.
AI visibility is a newer line you will see in reports. It means how often your product is mentioned in answers from assistants like ChatGPT, Claude, Perplexity and Gemini for tracked prompts. It is a useful read on discoverability, and the same rule applies: it is a visibility signal, not a pipeline number. Save the actual answers, not just a score, so you can see what was said.
If you want a fuller framework for testing any agent or tool on these lines, the AI marketing agent evaluation checklist walks through it.
Handle attribution uncertainty honestly: what GA4 attribution models do and do not tell you
Ledger five exists because attribution is never clean, and a report that pretends otherwise is selling you certainty it does not have.
GA4 offers data-driven attribution to distribute credit across touchpoints using data for each key event, though attribution settings are selectable rather than fixed to that model by default. That sounds precise. In a small B2B software company it is much less so. Data-driven models need volume to learn from, and a business closing a handful of deals a month does not generate it. Treat the model's output as one reading, not the answer.
What GA4 does not tell you matters just as much. It cannot see the conversation your buyer had in a Slack group. It cannot see that your prospect read a post on their phone, then typed your name into a browser a week later, which lands in direct traffic. It cannot see a recommendation from a colleague, or a podcast you appeared on. It is blind to anything that never reached your site.
The honest response is a two-part habit. First, add a required free-text field to your signup or demo form: "How did you hear about us?" Self-reported attribution is imperfect, but it catches the dark-social and word-of-mouth touches that analytics misses, and the two sources together triangulate better than either alone. Second, in the report, force every conversion into one of three buckets: clearly attributable to the work, clearly not, or shared. Shared goes in ledger five with a note.
Expect ledger five to be large in month one. A big, honestly labelled uncertainty column is a sign of a mature report. A small one, paired with confident claims about causation, is the thing to worry about.
A hypothetical month-one review, line by line
Here is an invented example to show the method. A seven-person workflow-software company hires an agency. The month-one report claims: 12 blog posts published, 48 social posts, 90,000 impressions, 1,400 new sessions, 9 signups, "strong momentum."
Run it through the ledgers.
Work delivered. 12 posts and 48 social posts. Check them against the scope in the contract. Open three posts and read them. Are they accurate, on-brand and aimed at a query a buyer would use? Delivered, pending quality check.
Qualified enquiries. The report lists none, because it counts "signups." You count manually from your inbox: two demo requests from companies that fit, one from a student, one from a competitor doing research. Qualified enquiries: two.
Trials. Nine signups. You export them: four are internal or test accounts, three used personal email domains, two are real companies. One of those two connected an integration. Trials that matter: two. Activated: one.
Paid customers. Zero this month. One customer who signed was in your pipeline before the engagement started, per your baseline. Not credited.
Attribution uncertainty. The two real trials both answered "how did you hear" with "a friend mentioned you." GA4 shows them as organic search. Both go in ledger five.
The verdict is not "the agency failed." Work was delivered, tracking has two defects (test accounts counted, no qualification step), visibility is up but unproven, and the baseline now exists. That is a perfectly reasonable month one. The report's "strong momentum" line was the only dishonest part, and it was easy to see once the ledgers were separated.
Questions to ask before month two (and when an agent or agency alternative fits)
Take these to the month-one review call. Ask them in writing so the answers stay on the record.
Which key events in GA4 are marked, and which ledger does each belong to?
Can you send the raw exports behind every chart, not just screenshots?
What did you test this month, what did you learn, and what will you change?
Which of these results would you call attributable, and which uncertain, and why?
What will you stop doing, if anything, based on month one?
What does month two commit you to delivering, and how will we both know it worked?
Who owns the accounts, domains and content if we part ways?
Pay particular attention to question five. A good operator runs a loop: try something, measure it, kill what does not work, double down on what does. If the agency has never proposed stopping anything, they are not running a loop. They are running a calendar.
Maybe you are reading this and thinking the real issue is that you have no one to do the work in the first place. That is a legitimate conclusion. A monthly retainer buys a fixed amount of human attention, and a report is the tax you pay to see what it did. The alternative is an agent that runs the same loop continuously and reports to you in Slack. Revnu does this across SEO, AI search, outbound, LinkedIn and paid ads, with the founder approving each new sequence and anything that spends. If you are weighing the two, a growth agency alternative when you need the work done lays out the tradeoffs, and can AI agents replace a growth team covers what actually changes.
Conclusion
Run your next monthly report through the five ledgers before you read a single headline number, and make the agency do the same. Record the baseline now, trace three enquiries back to real inboxes, and refuse to let impressions into the paid column.
If you would rather have the growth work done and reported in the same place, try Revnu. Pro is $99 a month, self-serve, with no sales call. Connect your website and Search Console, and Revnu runs the SEO, AI search and outreach loop, sending you approvals and results in Slack. You will see exactly what shipped, what it led to, and what is still uncertain, in a format you can sort into the same five ledgers.
Written by
Co-founder and CEO, Revnu
