Automate it in three layers. Data: a fixed export or connector from your accounting software into a template. Numbers: formulas for every variance and ratio, never the AI. Narrative: AI drafts the commentary from the finished tables and you edit it. After a one-to-two-day setup, a small-business pack takes one to two hours a month instead of a day.
It only works on closed books. If bank feeds aren't reconciled and last month's supplier bills aren't in, an automated pack produces confident nonsense faster. Make "books closed and reconciled" step zero, with a named person and a date, and don't run the report until it's done.
What goes in a small-business management pack
A management pack is the set of reports that tells the owner, partners or board how the month went and what needs deciding. For a business of 5 to 50 people it rarely needs more than seven pages:
| Page | Source | How it's automated | Who checks |
|---|---|---|---|
| Profit and loss: month, year to date, budget, last year | Accounting export plus budget file | Template formulas from a mapping table | Bookkeeper |
| Balance sheet summary | Accounting export | Template formulas | Bookkeeper |
| Cash position and short-term outlook | Bank balance, forecast sheet | Linked to your cash forecast | Owner |
| Aged debtors and creditors | Aged reports export | Summary by age band, top five | Credit controller |
| Operational KPIs | CRM, booking system, timesheets | Exports into KPI tab | Operations lead |
| Commentary | The finished tables plus your notes | AI first draft | Owner |
| Decisions and actions | The owner | Not automated | Owner |
The last row is deliberate. The pack exists to support decisions, and those shouldn't be drafted by a model. If the profit and loss itself is still a mystery to some readers, using AI to understand your profit and loss is a useful companion.
Step 0: agree the close and the cut-off
Write a short close checklist: bank accounts reconciled, sales invoices raised for the month, supplier bills entered, payroll posted, accruals and prepayments done if you use them, and any deposits or deferred income recorded the way your accountant advises. Set a cut-off, such as working day 5, after which the pack is produced with whatever is closed and late items go into next month.
The close itself can also be sped up with AI (bank matching, bill capture, chasing missing receipts), covered in speeding up month-end close with AI. Automating the report without a reliable close is the most common way this project fails.
Step 1: build the template once
Build the pack in Excel or Google Sheets with a fixed structure, so each month you only replace the data:
- Data tabs: Data_PL, Data_BS, Data_Aged, each holding the raw export exactly as it comes out of the accounting software.
- Budget tab: monthly budget by report line.
- Map tab: every account code mapped to a report line.
- Report tabs: the pages above, built entirely from formulas.
- Checks tab: the control totals described below.
The mapping table is what makes the template reusable. An illustrative extract for an events company:
| Account code | Account name | Report line |
|---|---|---|
| 4000 | Event sales: weddings | Revenue: weddings |
| 4010 | Event sales: corporate | Revenue: corporate |
| 5000 | Venue hire | Direct costs |
| 5010 | Catering | Direct costs |
| 5020 | Freelance event staff | Direct costs |
| 6100 | Salaries | Overheads: people |
| 6400 | Marketing | Overheads: marketing |
Report lines then use SUMIFS over the export, looked up through the map (the Excel formulas guide covers both if they're new to you). Variances and flags are formulas too. With the export in Data_PL (account code in A, amount in C) and the map in Map (code in A, report line in C):
Actual for a report line (line name in B5), using a helper column
D in Data_PL that looks up each row's report line:
Data_PL!D2: =XLOOKUP(A2, Map!A:A, Map!C:C, "UNMAPPED")
Report!C5: =SUMIFS(Data_PL!C:C, Data_PL!D:D, $B5)
Variance to budget: =C5 - D5
Variance %: =IF(D5=0, "", (C5 - D5) / ABS(D5))
Material? (over 10% AND over $2,000):
=AND(ABS(C5 - D5) > 2000, ABS(C5 - D5) > 0.1 * ABS(D5))
Checks tab, must be zero every month:
Unmapped total: =SUMIFS(Data_PL!C:C, Data_PL!D:D, "UNMAPPED")
The materiality flag matters more than it seems. It decides which lines the commentary talks about, which stops the AI writing a paragraph about a $40 change in stationery. Pick thresholds that fit your size: a percentage and an absolute amount, both required.
An AI assistant is good at helping build this. Paste your chart of accounts and ask it to propose a mapping to 12 to 15 report lines, then review every row yourself. Ask it to write the SUMIFS and XLOOKUP formulas for your actual column layout. If you work in Excel, an in-spreadsheet assistant makes this quicker; the Claude for Excel add-in is one option for building and checking formulas in place.
The KPI page: numbers the accounts don't show
The accounts tell you what happened to money; the KPI page tells you why. Keep it to six to eight measures that come from operational systems, each with this month, last month, the same month last year and a target. The events company's page, illustratively:
| KPI | June | May | June last year | Source |
|---|---|---|---|---|
| New bookings confirmed | 17 | 12 | 14 | Booking system |
| Enquiry-to-booking conversion | 21% | 18% | 19% | CRM |
| Average event value | $10,960 | $9,400 | $9,850 | Booking system |
| Deposits held for future events | $94,000 | $81,500 | $76,200 | Balance sheet |
| Freelance staff cost as % of revenue | 11.4% | 9.8% | 10.1% | Calculated in template |
| Events delivered | 17 | 13 | 15 | Booking system |
Different businesses need different pages. An IT support firm with monthly contracts would lead with recurring revenue, clients gained and lost, and hours worked against hours sold. A print shop might track jobs completed, reprint rate and average order value. The rule is the same everywhere: every KPI is a formula or an export, and the AI only describes it.
Step 2: get the data in without retyping
| Approach | Monthly effort | Cost | Good for |
|---|---|---|---|
| Export reports to CSV and paste into the data tabs | 10 to 15 minutes | Free | Most small businesses; simplest to check |
| Save exports to a folder; Excel Power Query (Get Data, From Folder) refreshes the tabs | 5 minutes | Free with Excel | Anyone comfortable with one-off setup |
| A reporting tool connected to your accounting software | Minutes | Subscription | Multi-entity businesses, accountants, frequent reporting |
Keep the export settings identical every month: same report, same columns, same basis (accrual or cash), same period. Save them as a named report in the accounting software if it allows that. Most template breakages trace back to someone exporting with a different column layout.
Step 3: let AI draft the commentary from the finished tables
Once the numbers are calculated and checked, give the AI the report tables (not the raw exports) plus your notes about the month. The notes are where your knowledge goes in: "two corporate events moved from July to June", "new marketing agency started, first invoice includes set-up fee".
You draft commentary for a small business's monthly management pack.
Inputs: the P&L summary with budget and last year, the balance sheet
summary, aged debtors, KPIs, and the owner's notes.
Rules:
- Use only numbers in the tables. Don't calculate new figures except
simple differences between two numbers shown side by side.
- Discuss only lines marked Material = TRUE, plus cash and debtors.
- Explain causes ONLY using the owner's notes. If a material line has
no note, write "[OWNER: explain]" instead of guessing.
- Margins: describe changes in percentage points, e.g. "from 38%
to 42%, up 4 percentage points".
- Compare seasonal months with the same month last year as well as
budget; the notes say which months are seasonal.
- Structure: 3-sentence overview; revenue and margin; overheads;
cash and debtors; KPIs; then "Questions for the owner".
- Under 350 words. Plain British English, no hype.
An illustrative extract of the draft for June:
June revenue was $186,400, $14,400 above budget and $22,100 above June last year. Corporate events drove the difference ($71,800 against a budget of $58,000); the owner's notes say two events moved from July to June, so July is likely to fall short of budget by a similar amount. Gross margin was 41%, up 3 percentage points on budget. Freelance event staff costs were $21,300 against a budget of $16,500 [OWNER: explain]. Cash at month-end was $61,200. Debtors over 60 days rose to $8,900, mostly one corporate client.
What needed fixing in earlier drafts is instructive. The first version, before the percentage-points rule, said margin "improved by 7.9%" when it moved from 38% to 41%: technically a relative change, and misleading to anyone reading quickly. It also explained the freelance overspend as "higher staffing needs for larger events", a guess that happened to be wrong (a new day rate had been agreed). The [OWNER: explain] marker exists precisely so gaps are visible instead of papered over. If you want more depth on writing variance explanations, explaining budget-versus-actual variances with AI covers the technique line by line.
Step 4: review, assemble and send
Before anything goes to the owner, partners or bank, spend 20 minutes on checks. They matter more than the commentary:
- Unmapped total is zero. A new account code added mid-month silently drops out of every report line otherwise.
- Profit ties. Year-to-date profit on the P&L matches the movement shown on the balance sheet.
- Cash ties. The balance sheet cash figure matches the bank statements at month-end.
- Debtors tie. The aged debtors total matches the balance sheet debtors line.
- Every commentary number appears in a table. Tick them off; it takes five minutes.
- Every [OWNER] marker is resolved or deliberately left as a question.
- One-offs are labelled. A one-off set-up fee shouldn't be described as a rising cost trend.
For the first three months, run the new pack alongside the old one and reconcile every difference to zero before you retire the old process. Differences are almost always mapping choices (an account placed on a different report line) or a period mismatch, and each one you resolve makes the template more trustworthy.
Then export the report tabs to PDF and send them with a two-line email. If you already get a weekly numbers email, keep the monthly pack separate: the weekly one is about activity and cash; the monthly one is about profit, position and decisions. Getting a weekly business summary emailed to you covers the lighter version.
Tools that do more of the work for you
You don't have to build everything in a spreadsheet. A few options, checked in September 2026:
- Fathom connects to QuickBooks Online, Xero and MYOB (and can use Excel or Google Sheets data) and produces management reports, forecasts and consolidations. It includes an AI commentary writer. Its Starter plan lists at $59 a month for one company. It suits businesses that want a polished pack without maintaining a template.
- QuickBooks Finance AI is available to QuickBooks Advanced and Intuit Enterprise Suite users. Intuit describes it as producing monthly summaries of performance highlights that you can edit and share, plus KPI-level recommendations. If you're already on Advanced, try it before building anything.
- Xero's JAX assistant is rolling out to Xero subscribers and can answer questions about your figures in plain English. Treat it as a way to explore numbers rather than a pack generator, and check what your plan includes, since Xero has signalled that AI features may move to paid tiers.
- Excel with Copilot, for Microsoft businesses with a paid Copilot licence, can build and edit the template itself through Agent Mode, and the free Copilot Chat can work on an open file.
Whichever you use, the principles are the same: closed books first, numbers from systems, commentary from AI with your notes, checks before sending.
An events company's June pack
Here's how the illustrative events company, 11 staff and highly seasonal, moved to an automated pack.
Before: the bookkeeper spent about a day and a half each month exporting reports, rebuilding the spreadsheet, and writing notes; the owner added another two hours. The pack arrived around the 15th of the following month, too late to act on.
Setup: about 14 hours in total. Four hours for the mapping (98 account codes to 14 report lines, drafted by AI and reviewed line by line), six hours building report tabs and checks, and four hours testing on the previous three months' data until the template reproduced the accountant's figures exactly.
Each month now:
- Close completed by working day 5.
- Exports saved to the Pack folder: 15 minutes.
- Power Query refresh and checks: 20 minutes.
- Owner's notes (five or six lines): 15 minutes.
- AI commentary draft and edit: 30 minutes.
- Final read and send: 20 minutes.
That's about 1 hour 40 minutes, with the pack out by working day 6. The first automated month caught something the old process had missed for a while: the unmapped check showed $3,200 in a new "Event insurance" account created by the bookkeeper, which the old spreadsheet had silently left out of direct costs.
The June figures showed why commentary needs the owner's notes. Revenue beat budget by $14,400, but only because two events moved forward from July. Without that note, the pack would have read as a strong month; with it, the owner knew July would look weak and warned the bank manager in advance.
One accounting point came up that's worth flagging for anyone taking deposits: deposits received for future events sat on the balance sheet rather than in revenue, following the accountant's treatment. The pack showed deposits held ($94,000 in June) as a KPI, because it's a strong early signal of the autumn season. How your business should treat deposits is a question for your accountant, not the template.
Mistakes that slip into automated packs
- New accounts left unmapped. Fixed by the unmapped-total check, which must be zero.
- Sign conventions. Many exports show income as negative (credit) figures. Decide once how the template flips signs and test it with a known month.
- Month versus year to date. Exports that default to year to date will quietly double-count. Label every data tab with the period and check it on refresh.
- A stale budget. If you reforecast mid-year, keep both versions and label which one the variances use.
- Percentage confusion. "Up 4%" and "up 4 percentage points" mean different things for margins; the prompt rule above prevents it.
- One-offs read as trends. Put one-off items in the notes every month they affect.
Once the pack runs smoothly, the natural next step is looking forward as well as back. A rolling cash forecast, refreshed alongside the pack, turns "what happened" into "what's coming"; building a 13-week cash flow forecast with AI shows how.
Management pack questions
Should my accountant produce the monthly pack instead?
If your accountant already does it well and affordably, keep them on it and ask how they use automation. Doing it in-house makes sense when you want the pack within days of month-end, when you want operational figures alongside the accounts, or when the commentary needs knowledge only you have. Many firms split it: the accountant closes the books, the business runs the automated pack.
Can AI read the PDF reports my accounting software produces?
Usually yes, but exports are more reliable. PDF tables sometimes split across pages or merge columns when a model reads them, and you won't always notice. Most accounting packages can export the profit and loss, balance sheet and aged reports as CSV or Excel. Feed those into your template, and keep PDFs for reading, not for data.
How should seasonal swings appear in the commentary?
Compare each month with the same month last year as well as the budget, and tell the AI which months are seasonal through your notes. Otherwise it will describe a normal quiet January as a worrying fall. A short standing note, such as 'November to February is our low season; judge them against last year, not the previous month', fixes most of it.
Further reads
- How to Track Profit per Project in a Service Business With AI — Add profit per job or event to the pack.
- Hire a Data Analyst or Use AI for Your Reporting? — When a part-time analyst beats doing it yourself.
- Best AI Accounting Software for Small Businesses in 2026 — Accounting tools whose built-in AI helps with reporting.
- How to Build a KPI Dashboard With AI When You Have No Data Team — Put the pack's key numbers on a live dashboard.
- Can AI Do My Bookkeeping? What Still Needs an Accountant — What AI can and can't do before month-end.
- How to Check Your Margins Product by Product With AI — Dig into margins line by line when the pack flags them.
- How Marketing Agencies Use AI to Automate Client Reporting — A four-layer setup for automated client reports: data pipes, the right reporting tool, a commentary prompt that can't invent wins, and a five-minute check.
- How MSPs Use AI to Write Quarterly Business Reviews — A one-page QBR structure, where each metric comes from, a narrative prompt with sample output, and how to run QBRs for 30 clients without sameness.
- Turning Charity Data Into Impact Reports With AI — From attendance logs and survey scores to a report a funder trusts: calculate with AI, check every figure and claim only what you can show.
- Best AI Business Intelligence Tools for Small Businesses (2026) — Ten reporting and analytics tools compared on what their AI really does, list prices, the tier each AI feature needs and which small businesses each suits.
- How to Get Your Records Ready to Sell Your Business, With AI — Get your accounts, contracts, stock and staff records buyer-ready over 12 to 24 months, using AI to index, summarise and spot the gaps.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Fathom pricing and features pages; Intuit QuickBooks Finance AI page; Xero JAX pages; Microsoft support pages on Copilot in Excel. Checked September 2026. Accounting treatment points are general; confirm specifics with your accountant.