Automating reports with AI: what to automate and how
Automate weekly and monthly reports by computing every figure in code and letting AI write only the commentary. The steps, the checks and the costs.
By Sohail Hussain12 November 20266 min read
To automate a report with AI, split it into two jobs. Pull and calculate every number with ordinary code or queries on a schedule. Then give those finished figures to a model and have it write the commentary: what changed, why it might matter, what needs attention. The model never touches raw data and never does arithmetic. The person who used to assemble the report now reads and edits a draft in ten minutes instead of building it in three hours.
This guide covers which parts of a report AI should do, the one check that makes the commentary safe to send, the setup step by step and what it costs as of October 2026.
Which parts of a report should AI do?
Fewer than most people expect. A weekly management report has seven parts, and AI belongs in one or two of them.
| Part | How to automate it | AI? |
|---|---|---|
| Collect data from each system | API calls, database queries, scheduled exports | No |
| Calculate totals and ratios | SQL, a script or a spreadsheet formula | No |
| Compare with last period and target | Code | No |
| Flag anything past a threshold | Rules you set | No |
| Write the commentary | A model, from the computed figures | Yes |
| Answer follow-up questions | A chat limited to the same figures | Optional |
| Distribute | Email, a team channel, a shared folder | No |
Everything above the commentary row must be right every time, and code is right every time. This is the same split we use across our AI workflow automation work: rules for the plumbing, AI for the step that needed a person to read and write. Reports are task 10 in our list of 20 tasks worth automating first.
Why should the model never calculate the numbers?
Language models are unreliable at arithmetic over many rows. They predict plausible text, and a plausible total is not the same as a correct one. Given a spreadsheet of 2,000 orders and asked for revenue by region, a model will usually be close and sometimes be wrong, and nothing in the output tells you which.
So compute everything first, and hand the model a compact figures pack: each metric with this period, last period, the change, the target and any flag. Include display-ready values such as "₹12,40,000" and tell the model to quote figures exactly as given.
Then check the draft. Every number in the commentary should appear somewhere in the pack. This function returns the ones that do not:
// Return numbers in the commentary that do not appear in the figures pack.
function unknownNumbers(commentary, figures) {
const nums = (text) => text.replace(/,/g, "").match(/\d+(?:\.\d+)?/g) ?? [];
const allowed = new Set(nums(JSON.stringify(figures)));
return nums(commentary).filter((n) => !allowed.has(n));
}
A flagged number is not always wrong. A week number or a year will trip it. But it means a person looks before the report goes out, and invented figures never reach the managing director. How to stop an AI making things up covers the same idea for chatbots.
How do you automate a report, step by step?
- Write down the current report. Collect the last few manual versions. List every figure and comparison in them, who reads the report, and what they decide from it. Figures nobody uses are dropped now, not automated.
- Connect the data sources. Read-only access to each system through its API, a read-only database user, or a scheduled export where no API exists.
- Compute the figures pack in code and save it as one structured file per report, so you can always see what the model was given.
- Write the commentary prompt. Who reads the report, the structure (headline, what moved, what needs action, what to watch), the length, and the rule to quote figures exactly. Our prompt template builder gives you that structure to fill in.
- Check every number with the function above, or its equivalent.
- Review and send. The report owner gets the draft, edits it and sends it, or approves it for automatic distribution.
- Run both versions for a month. Produce the manual and automated reports side by side for four weeks before you switch.
Schedule the run with a cron expression. 0 8 * * 1 runs at 08:00 every Monday; the cron expression generator builds and explains others. Check which timezone the schedule uses. A server usually runs on UTC, so 08:00 on the server is 13:30 in India. In n8n the Schedule Trigger uses the workflow's timezone if set, and the instance's otherwise.
Where should the finished report go?
Where the readers already are. For most small teams that is email or a team chat channel, with the full figures attached as a spreadsheet. A link to a dashboard nobody opens is not a report.
Narrative reports and dashboards do different jobs. A dashboard is for people who check figures themselves, often. A written report is for people who want to know what changed and what to do about it, once a week. If your managers already live in a dashboard, the commentary can sit at the top of it. If you do not have one and need it, building an internal dashboard for operations covers that build.
What does it cost?
The model cost is close to nothing. Say a weekly report sends 7,500 input tokens (instructions plus the figures pack) and gets 1,200 tokens of commentary back. On Claude Opus 5.5, at $4 and $20 per million input and output tokens as of October 2026, that is about five cents a report. Even run daily on GPT-6 Astra, at $10 and $50, it is about $4 a month.
That changes the usual advice. For high-volume steps such as tagging, you pick the smallest model that works. For a report read by the people who run the company, use a capable model; the difference is pennies. Choosing the right model for each task covers the trade-off.
The build is the cost. A report that pulls from two or three systems with good APIs sits at the lower end of the ₹1,50,000 to ₹6,00,000 range in India, or $4,000 to $15,000 elsewhere, that a single workflow costs from a studio as of October 2026. Systems without APIs, or data that needs cleaning before it can be trusted, push it up. The automation hours-saved calculator tells you whether the hours saved justify it.
When is report automation not worth it?
When nobody reads the report. Ask the recipients what they did with the last three. If the answer is nothing, stop producing it. That saves more than automating it.
When your BI tool already sends it. Looker Studio, Power BI and most accounting and CRM systems can email a scheduled report. If the figures are all you need, use that and skip the commentary.
When the data is not trustworthy yet. If the person assembling the report spends most of the time correcting the data, automation will publish the errors faster. Fix the source first; when to replace spreadsheets with a custom tool covers the usual culprit.
When it is monthly and takes an hour. Twelve hours a year rarely repays a build.
If a weekly report does take someone half a day, start with step 1. Listing every figure in the current report, and who uses each one, usually removes a third of them before any code is written.
Was this guide useful?