An SEO agency can use ChatGPT or Claude to draft monthly client reports by exporting Search Console and analytics data, calculating every change in a spreadsheet, giving the assistant only that verified facts table, and asking for plain-English commentary that cites each figure. A person then checks every number against the table before the report is sent.
The division of labour is the whole method. The spreadsheet owns the numbers; the assistant owns the sentences; a human owns the judgement about what the numbers mean for this client. An AI-drafted report goes wrong in two predictable ways: the assistant is allowed to calculate, or to explain causes it could not see. That is how a report ends up claiming a 38% rise in clicks that was really 8%.
The workflow suits an agency owner with roughly 5 to 40 retainer clients, and its number check takes about ten minutes a report once it is routine. If your reports also need to cover AI Overviews or other Search Console limits, what agencies can report to clients from Search Console and AI Overviews goes deeper on what to claim.
What goes in: the exports worth pulling
Resist the urge to upload everything. Each extra export is another way to introduce a mismatch. For a standard retainer, four exports cover most reports.
- Search Console, performance by query. Report month against the previous period of the same length, with clicks, impressions, CTR and average position. The Search Console help page says tables show a maximum of 1,000 rows and that rare queries are omitted to protect privacy, so the table totals will not match the chart totals exactly. Always use the chart totals for headline numbers and the table for examples.
- Search Console, performance by page. The same periods, for the pages the client cares about. This is where you spot a service page gaining or an information page falling.
- Analytics, organic landing pages. Sessions, engagement and key events (the actions you have marked as important, such as an enquiry form sent) from organic search by landing page. Analytics and Search Console measure different things and will not agree; say so once in the report template and never reconcile them with a made-up explanation.
- Leads or sales from the client. A simple count of enquiries or orders that the client confirms. This is the number the client cares about, and the easiest one to leave to the last day.
Export as CSV. For each export, record the date range and filters in a small header row, so the assistant (and you, in a month) can see exactly what the numbers mean. Remove any personal data such as names or email addresses that appear in a lead list; the report needs counts, not people.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowStep one: build a facts table the assistant must stick to
Open a spreadsheet with one tab per client and month. In it, calculate the figures that will appear in the report. Keep the layout the same every month so the assistant's prompt does not change.
| Metric | This month | Previous period | Change | Change % |
|---|---|---|---|---|
| Search clicks | 4,210 | 3,890 | +320 | +8.2% |
| Impressions | 118,400 | 121,900 | -3,500 | -2.9% |
| Average CTR | 3.56% | 3.19% | +0.37 pts | +11.4% |
| Average position | 14.2 | 14.9 | -0.7 (better) | n/a |
| Organic sessions | 3,640 | 3,410 | +230 | +6.7% |
| Organic enquiries (client-confirmed) | 46 | 41 | +5 | +12.2% |
These are illustrative figures for a fictional service business. Notice three details. CTR is the average reported by Search Console for the period, or total clicks divided by total impressions, never an average of per-query CTRs. Average position is shown as lower-is-better and the table says so. And percentage changes sit beside absolute changes, so the assistant cannot present a small base as a large win without the reader seeing it.
Add a second small table for the top five pages and top ten queries by clicks, each with change against the previous period, and a third for anything unusual: a page that lost more than 30% of its clicks, a query entering the top ten, a drop on a date that matches a site change. Give each row a short note from your own knowledge ("new service page launched on the 9th", "tracking changed on the 14th"). The assistant cannot know these, and they are the context a client values.
Step two: the drafting prompt
You are drafting the commentary section of a monthly SEO report for a client who is a [type of business] owner with no SEO background.
Use ONLY the facts table and notes below. Do not calculate anything yourself and do not use any figure that is not in the table.
For every number you quote, copy it exactly as it appears in the table.
Structure: 1) Headline (two sentences), 2) What changed and what it means (3 short paragraphs), 3) Pages and queries worth knowing about, 4) What we are doing next month (3 bullets from the plan below), 5) One question for the client.
Rules: plain English, no jargon without a clause of explanation, no promises, no claims about why something happened unless it is in the notes. If a change is small (under 5%), say it is small. If the data contradict each other, say so and list the contradiction instead of explaining it away.
FACTS TABLE: [paste]
NOTES FROM THE ACCOUNT MANAGER: [paste]
NEXT MONTH'S PLAN: [paste]
Run this on a business plan, or on an individual plan with training switched off, and check the vendor's current data terms. Both ChatGPT and Claude allow you to keep the standing instructions in a project, so you do not need to paste the rules every month; paste only the new tables.
A sample of what comes back (illustrative):
Headline: Organic search brought 4,210 clicks this month, up 8.2% on the previous period, and enquiries from organic search rose from 41 to 46.
Impressions dipped 2.9%, so the gain came from more people choosing your listings, not from more people seeing them.
What changed: Click-through rate rose from 3.19% to 3.56% after we rewrote titles on the three service pages in the notes. Average position improved by 0.7, which is a small move.
...
What you would fix. First, "after we rewrote titles" turns a note into a cause. The notes say the titles were rewritten on the 9th, and the data do not prove that the rewrite caused the CTR change, so the sentence should say "in the weeks after". Second, "so the gain came from more people choosing your listings" is a reasonable reading of the table, but it is an inference; label it as "this suggests". Third, "improved by 0.7, which is a small move" is right and good: the prompt's rule on small changes worked. These are the edits you make as the reviewer, and they take two minutes when the draft stays close to the table.
Step three: the number check
This is the step that keeps the agency out of trouble. It needs a routine, not a quick glance.
- Highlight every number in the draft. Copy the commentary into a document and highlight each figure, including percentages and dates.
- Tick each against the facts table. Every figure must appear in the table (or notes) with the same value. A number that is not there is deleted or the table is extended and rechecked.
- Recompute five at random. Pick five numbers, including at least one percentage change, and recalculate from the raw export, not from the facts table. This catches formula errors in the spreadsheet, which the assistant cannot see.
- Check the periods. Confirm that both date ranges are the same length and that the label in the report ("October versus September") matches the export. A 31-day month against a 30-day month shifts a click total by about 3%.
- Look for causal verbs. Search the draft for "because", "due to", "caused", "driven by" and "thanks to". Each needs support in the notes or goes.
- Read the headline as the client. If this is the only paragraph they read, would it mislead them?
- Independent audit. Open a new chat, paste the table and the finished commentary, and ask for a list of any figure in the text that does not match the table. Treat that as a second reviewer, not a replacement for steps one to four.
You are an auditor. Below are a facts table and a draft report. List every number, percentage or date in the draft and say whether it matches the table exactly (MATCH), differs (MISMATCH, with the table value) or is not in the table (NOT FOUND). Do not rewrite the text.
Expect the audit to return a few "NOT FOUND" lines, often rounded values ("about 4,200 clicks") or dates from the notes. Rounding is acceptable if it is consistent; write "about" and round the same way everywhere, or quote the exact figure. Total time for the check: about ten minutes once you have done it a few times.
Worked example: a twelve-client agency in one reporting week
An illustration with invented numbers. A small agency has twelve retainer clients. Reports used to take an average of 2.5 hours each, mostly spent copying numbers from exports and writing the same paragraphs in new words: roughly 30 hours across the month, nearly all in the first week.
The owner changes the process. A shared spreadsheet template calculates the facts table from pasted exports; this takes 15 minutes per client including a check that date ranges match. The account manager adds notes (10 minutes). The assistant drafts commentary in about 2 minutes. The manager reads and edits (15 minutes), runs the number check (10 minutes) and exports the report as PDF (5 minutes). Per client that is roughly 55 minutes, or about 11 hours for twelve clients, against 30 before. Treat those as illustrative: the first month will take longer, and complex clients will always need more.
The owner also records what the saved time is for. Spending it on better analysis and a short call with each client is a stronger use than taking on more accounts at the same thin margin. If clients ask whether the price should drop because the work is faster, should you charge clients less when AI speeds up your work works through that conversation.
One report is worth following in detail. A client who sells garden buildings shows clicks up 8.2% but enquiries flat. The draft headline celebrates traffic. The manager's notes say the extra clicks came from an information page about planning rules that attracts readers who do not buy. The commentary is rewritten to say that traffic grew but mostly from an information page, that enquiries were flat at 17, and that the next month's plan moves effort to the product pages. A report that states the uncomfortable fact earns more trust than one that waves a rising line.
When the month is bad: drafting the report nobody wants to send
Reports are easy when clicks rise. The test of a workflow is the month when they fall. Take an illustrative case: clicks drop 19%, from 4,210 to 3,410, and the account manager's notes record two relevant facts, a site migration on the 14th with several redirects found broken on the 20th, and a competitor's new category page. An assistant left alone writes a soothing paragraph about "natural fluctuation". Your prompt should instead force the facts forward.
This month's clicks fell. Write the headline and first paragraph so they state the fall plainly with the exact figure and the comparison period, then give only the causes listed in the notes, labelled "known" (in the notes) or "possible" (not confirmed). Do not use reassuring language such as "minor", "temporary" or "natural fluctuation" unless the notes say so. End with what we have already fixed and when, and what we will check next.
A sample result (illustrative): "Organic clicks fell 19% to 3,410 from 4,210 in the previous period. Known cause: during the site migration on the 14th, several redirects were broken until we fixed them on the 20th, which likely cost visits to affected pages. Possible cause, not confirmed: a competitor added a category page that now ranks above yours for two product searches. We have fixed the redirects and will report whether clicks on those pages recover by the next report."
What you would check: that "likely cost visits" is supported by a page-level comparison, not an assumption. Open the page export, filter to the affected URLs and confirm that their clicks fell while unaffected pages held steady. If they did not, the sentence changes. This is the reason notes matter more than prose: the assistant writes the honest version only if you give it the honest facts.
A clear bad-news report is easier to defend than a vague one. The client may well have noticed the drop already; a report that explains it, shows what was fixed and sets a time to recheck keeps the relationship intact. A report that hides it costs the account.
Preparing for the client call that follows the report
Many agencies run a short call after the report. The same facts table can prepare it. Ask the assistant for the likely questions from your facts table and notes, with a short answer for each drawn only from the table, then add what you know.
From the facts table and notes, list the five questions this client is most likely to ask on the call. For each, give a two-sentence answer using only the table and notes, and mark any question where we do not yet have the data to answer.
Typical output includes "Why did enquiries rise when clicks barely moved?" (answer: conversion on the service pages improved; table shows 46 enquiries against 41), "Are we ranking for the new product?" (answer: only if the query table shows it; otherwise "not yet in the top 20") and "Is AI search hurting us?" The last should be marked as having no data unless you have a defensible measure. Saying "we do not have that yet" is better than a plausible guess, and the list tells you which gaps to fill before the call.
Mistakes that produce wrong numbers in client reports
- Averaging averages. An assistant asked to "summarise average position" across pages may average the per-page values. Search Console calculates its overall average position from all the impressions in the period, so a simple mean of page or query rows will not match it. Take the overall figure from the report, not from the table rows.
- Comparing unequal periods. February against January looks like a 10% drop in clicks partly because February has fewer days. Compare the same number of days, or compare with the same month last year for seasonal sites.
- Mixing sources. Search clicks (Search Console) and sessions (analytics) are different measurements. A sentence like "clicks of 4,210 produced 3,640 sessions" implies a loss that is just a difference in definition. Report them separately.
- Brand and non-brand lumped together. A rise driven by searches for the client's own name is not an SEO win. Split brand queries in the facts table, and ask the assistant to describe them separately.
- Overreading a short window. A 12% jump in a month can be a seasonal spike or a one-day outlier. Include a three-month line in the table so the commentary can say whether this is a trend.
- Invented context. An assistant may add "following Google's recent update" because sentences like it are common in SEO writing. The prompt forbids it; the number check looks for it.
For wider guardrails on what assistants can and cannot be trusted with in a data context, the older ChatGPT with Excel guide covers how to give a model structured data and verify its answers, which is the same habit applied to spreadsheets.
Report structure that clients actually read
Assume the client reads the first screen and the numbers about leads, and skims the rest. Design for that.
- Page one: the headline, a six-row metrics table and one sentence on enquiries or sales. Nothing about methodology.
- Page two: three findings in plain English, each with a number and a "so what", then next month's three actions.
- Appendix: top pages and queries, notes on data sources and date ranges, and the definitions that you repeat every month.
- A single question for the client. "Did the quote requests from the new service page match what your team saw?" gets answers; "any feedback?" does not.
Keep the same structure each month so the client learns where to look, and keep the commentary short. A 300-word commentary that is right beats a 1,200-word one that is generic. Ask the assistant for a word limit, and cut anything the client could not act on.
Roll it out with one client, then the rest
Start with a friendly client and run the new process alongside the old one for a single month: produce the report both ways and compare time, errors and how the client responds. Fix the template before extending it. Move clients across in groups of three or four, and keep a short log of any report where the number check found a mistake, because the pattern in that log tells you which part of your spreadsheet or prompt to improve.
Tell clients in your contract or onboarding pack that AI-assisted tools are used to draft reports and that a named person reviews every one; AI clauses for agency contracts has wording to adapt. For the local side of agency work, AI SEO tools for local SEO: citations, reviews and map reports covers the data that feeds a local client's report. If you would like help designing the template, the prompt and the check for your own agency, that is what my AI implementation consultation covers; you can get in touch.
Questions agency owners ask about AI client reports
Should the assistant calculate the month-on-month changes?
No. Calculate them in a spreadsheet and give the assistant the finished figures. Language models can slip on arithmetic and on which row a number belongs to. Let the spreadsheet own every number and let the assistant own the sentences, then check each sentence against the table.
Which export should I start with?
Search Console's performance export by query and by page, for the report month and the same-length comparison period, plus a landing-page or channel export from your analytics tool. Add rankings or leads data only if the client has agreed those are the measures. Start narrow and add sources when a client asks.
Is it safe to upload client analytics to an AI tool?
It depends on your client contracts and the tool's data terms. Use a business plan or a setting that stops training on your content, remove personal data, and say in your contract that AI-assisted tools are used for drafting. Check the vendor's current terms rather than assuming.
Will clients mind that AI drafted the commentary?
Some may, so do not hide it. Be honest if asked, say in your contract that AI-assisted tools are used for drafting, and make sure a named person on your team has read and signed off every report. The bigger risk to the relationship is a wrong number or a vague paragraph, not the use of an assistant.
Further reads
- How to Mention AI Use in Client Contracts and Proposals — How to tell clients you use AI in proposals and work.
- Questions to Ask Before Buying AI That Touches Client Data — Vendor questions before client exports go into a tool.
- Automate Client Onboarding With AI: Forms, Contracts, and Emails — Onboarding steps that set up the data access reports need.
- Semrush AI Visibility vs Ahrefs Brand Radar: Which Suits an Agency? — AI-visibility data worth adding once clients ask about it.
- SEO Agency AI: Which Jobs to Hand to AI and Which to Keep Human — Which other agency jobs to hand to AI and which to keep.
- Website Maintenance Plan: Packages a Web Agency Can Add With AI — Three maintenance tiers with tasks and price bands, tool costs per site, and the minutes AI saves on reports and update checks.
- AI Keyword Clustering for SEO Agencies: Validate Clusters Before Sign-Off — Embed or prompt-cluster a keyword list, validate a sample against search results, and send the client a map they can approve, with costs per 10,000 keywords.
- AI Link Building Outreach: Personalised Without Spam — A compliant outreach routine for SEO agencies: research prospects, pick one angle each, send three emails at most, and check Google's spam policy and email law.
- How to Monitor Brand Mentions in ChatGPT for a Client, Week by Week — A fixed prompt set, repeat runs, a log sheet and a weekday schedule for tracking a client's ChatGPT mentions, with tool costs and wrong-answer fixes.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Search Console Help (Performance report: table row limit and omitted rare queries; what are impressions, position and clicks), Google Analytics Help (key events), OpenAI help centre (Projects in ChatGPT) and Claude help centre (What are projects?), all read on 4 November 2026. Report figures and the agency in the worked example are illustrative.