How to Review an AI-Generated Workbook Before It Becomes a Working Paper
A junior sends you a prepayments schedule and mentions, in passing, that the AI built most of it. It looks right. Headers in row 1, column widths somebody thought about, a total at the bottom that agrees with the column above it. You are the reviewer, your name goes on the file, and you have about ten minutes.
The good news is that the defects are specific and they repeat. A total row typed as 148,320 where =SUM() belongs. A summary SUMIFS pointed at rows 2 to 500 on a detail tab that actually runs to 812 — arithmetically correct, quietly 312 rows short, nothing red anywhere on screen. Twelve invented suppliers with plausible names still sitting in the middle of the real listing. And no record of what was asked for, so the only reperformance available is to regenerate it, and regenerating is not reperforming: the same prompt can come back next quarter with a different layout and different assumptions.
Below is a ten-minute procedure that finds all five, ordered so the cheapest tests run first, plus the Notes tab that turns a generated file into something you can defend. It applies to output from a web generator, from Copilot's Agent Mode, from ChatGPT's or Claude's add-in, and from ours — the source changes which defects are likely, not whether you review.
Where it came from changes what is likely to be wrong
Thirty seconds of triage first, because knowing which kind of tool produced the file tells you which defects to hunt hardest. Four quite different products are sold under the one phrase, and what separates them is not model quality but what you are holding at the end — a downloaded file, a live sheet inside somebody else's product, or a change written into the workbook already open on your screen.
Prompt-to-file web tools (Formula Bot, Ajelix, Grist's assistant and a long tail of newer sites, most with a free tier) build the file server-side from your sentence. It arrives disconnected from your ledger, your chart of accounts and last month's version of the same report, so invented data is near-certain and there is nothing to roll forward. AI-native spreadsheet products (Sourcetable, Rows, Quadratic, Equals) are spreadsheet-shaped web apps rather than Excel add-ons; the work lives in their product, and an .xlsx export usually strips out whatever made it worth using, so the file you are reviewing may not be the thing the preparer was looking at. In-Excel assistants that build in place — Microsoft's Agent Mode, OpenAI's ChatGPT add-in, Anthropic's Claude for Excel, third-party add-ins including ours — write into the workbook you already have; requirements here move fast, so check the vendor's own page rather than any article, this one included, and see what Copilot in Excel can't do for accountants for that side. Template generators hand back a structured, largely empty workbook; that is a template library with a text box on the front, and the same thing already checked by a human is often sitting among the free Excel templates for accountants.
| Category | What you get back | Where it runs | Sees your existing data? | Most likely defect |
|---|---|---|---|---|
| Prompt-to-file web tools | A downloadable .xlsx built from your sentence | The vendor's website | No — only what you paste or upload | Invented rows, and nothing to refresh from next month |
| AI-native spreadsheets | A live sheet inside their product | Their web app, not Excel | Through their own connectors | The exported file is not what the preparer saw |
| In-Excel assistants | Sheets, formulas and charts written into the open file | Inside Excel | Yes — the open workbook | Invented rows are rare; hardcoded totals are not |
| Template generators | A structured, mostly empty workbook | Web page or template gallery | No | Nothing much — but a checked template already exists |
One distinction the vendors blur, and it matters to a reviewer: generation and automation are different jobs. A generator makes the file once. What happens on the fifth working day of every month afterwards — the refresh, the reconciliation, the checks — is a different problem, and a tool can be excellent at the first and have nothing to say about the second. That is defect five below. The broader field is mapped in AI in Excel for accountants.
What you are actually holding
Open one and you will usually find named sheets, a formatted header row, a handful of formulas, and — the part that catches people — rows of data the model invented to demonstrate the structure working. Twelve suppliers you have never traded with. Invoice numbers in a tidy sequence. Dates falling neatly on the 1st and the 15th.
That is design rather than defect: the model is producing a file specification, and plausible contents demonstrate better than an empty grid. It has no way to know whether you wanted a demonstration or a deliverable, so it produces something that looks finished. The useful mental model is a capable new joiner who has never seen your business, given one sentence of brief, no access to the ledger, and ten minutes. Hold that in your head for the rest of the review and every one of the five defects stops being surprising. You would not sign that person's schedule without footing it either, and you would not be insulted on their behalf when you did.
The five defects, and the test that finds each one
These are specific and they repeat. Each one below is paired with the test that catches it, which is what turns review into ten minutes rather than an hour.
Defect 1: a hardcoded total in a lead schedule
The most common and the most expensive. A total row reads 148,320 instead of =SUM(D2:D61); a margin column holds typed percentages; a forecast that should compound off an assumption cell has the growth baked into every period. It reconciles perfectly on day one and silently stops being true the moment anyone edits a row.
Generators do it because values are safe — a typed number never throws #REF! and always looks right in a screenshot. But a model built on constants is not a model. It is a picture of one, and every input you change fails quietly to flow through.
Find them in one pass. Select the range that should be entirely formulas and count the cells that are not:
=SUMPRODUCT((ISFORMULA($D$2:$D$500)=FALSE)*($D$2:$D$500<>""))
Anything other than zero is a list to inspect. Formulas > Show Formulas (Ctrl+`) does the same job visually across a sheet. The test: run the counter over every column that should be wholly derived, and expect zero. The one place to be careful is a column that legitimately mixes keyed inputs with calculations — split it, or the counter tells you nothing.
Defect 2: nothing to reperform against
A spreadsheet you built carries its own history: you know which tab is the source, which figures were keyed and which derived, and why the accrual sits where it does. A generated workbook arrives with none of that — no record of the prompt, no note of the assumptions the model chose on your behalf, nothing to reperform against.
Regeneration is not reperformance, because the output is not deterministic. That sentence is the whole of this section and it is worth being precise about, because it is the point at which people reach for the wrong reassurance. Reperformance means a second person, working from the same inputs, arrives at the same answer, and any difference is a difference in the work rather than in the tool. Re-running a prompt does not do that. The same sentence put to the same model next quarter can come back with a different layout, different assumptions about what a month-end date means, a different decision about whether to gross up or net off — and none of those differences tell you anything about whether the first version was right. You have not checked the schedule; you have generated a second one and now have two.
Which means the reviewer's test here is not a formula. The test: ask the preparer to show you what they asked for. If the answer is a shrug, or "I asked it to build a prepayments schedule", the file has no evidence trail and you are reviewing the numbers alone with no way to tell which of them were judgements and which were defaults the model picked. Two follow-ups worth making routine: which assumptions did you accept without changing, and what did you change after it generated? The second question is the one that finds the interesting stuff.
The fix is cheap and almost nobody does it. Keep a Notes tab holding the prompt, the tool and date, the assumptions you accepted and what you changed after generation. That tab, not the model, is your evidence — there is a full template for it further down this page.
Defect 3: a summary that does not agree to the detail
Single-sheet output is usually sound. Ask for a workbook — a summary feeding off a detail tab, drivers feeding a forecast — and the failure rate climbs, because the generator must write a reference to a sheet, range or table name it also invented elsewhere in the same file.
The obvious version shows up as #REF! and gets fixed. The dangerous version does not error at all: a summary SUMIFS pointed at $D$2:$D$500 on a detail sheet that actually runs to row 812. Real, arithmetically correct, quietly missing 312 rows. Nothing on screen is red.
The test is two checks, and they catch nearly all of it. Search the workbook for #REF! with Find All, looking in Values, scope Workbook. Then foot the detail independently against what the summary claims:
=ROUND(SUM(Detail!$D:$D) - Summary!$B$10, 2)
Note the whole-column reference. That is deliberate: it is the one formula in this review where you specifically do not want to inherit the generator's idea of where the data ends, because its idea of where the data ends is the thing under test. Expect zero. Anything else is either the short range or a row the summary is deliberately excluding, and the preparer should be able to tell you which.
Defect 4: invented creditors surviving into a real listing
Placeholder data is not marked as placeholder. It is not in grey italics and it does not say "example". It is a supplier called Northgate Logistics with a plausible VAT number and eleven transactions in the right date range.
Two things go wrong. Rows get stranded in the middle of a real dataset after you paste your own in — a classic when the generated block is 20 rows and yours is 400. And invented rows are too clean: no credit notes, no part payments, no negatives, no foreign currency, nothing coded to the wrong account. A layout tested only against tidy data has not been tested against yours, which is why cleaning messy data in Excel is a discipline of its own. Delete every generated row before you load anything real, not after.
The test: match the listing against something that knows who the client actually trades with. A COUNTIF of each supplier name against the supplier master, or against the previous period's listing, puts a zero beside every name that has no history — and while a few of those will be genuine new suppliers, an invented one has never appeared anywhere and never will again. Failing that, count the rows: if the export you pasted in had 400 lines and the schedule has 412, the twelve extra are the ones the model wrote. It is a cheap check and it is the only defect on this list that is embarrassing in front of a client rather than merely wrong.
Defect 5: a schedule that cannot be rolled forward
The structural one. An aged debtors schedule is a layout problem for about five minutes and a data problem forever after. The generator can produce the buckets, the headings and the SUMIFS; it cannot produce the invoice list, and next month it cannot refresh it.
So the generated workbook lands in the middle of the job rather than at the end. You still export from QuickBooks, Xero or Zoho Books, still clean the export, still paste it into shape, still repeat all of it in thirty days. If that loop is where month-end actually goes, a better generator will not help you — a connection will. The free route and the paid ones are both set out in connecting QuickBooks and Xero data to Excel.
The test is one question to the preparer: where does next month's version of this come from? If the answer is a query you can refresh or a connection you can re-authorise, fine. If it is "I export it and paste it in", then what you are signing is a one-off, and you should know that before you build a monthly process on top of it. This is the defect that costs the most and shows up in none of the formulas, because the file in front of you is perfectly correct today.
Why the review is not optional
When Microsoft announced Agent Mode in Excel it published a benchmark rather than a slogan: 57.2% accuracy across the complete SpreadsheetBench task set. The human baseline recorded by that benchmark is 71.3%. Creditable for an in-product agent, and Microsoft deserves credit for publishing the number at all.
Read it as a working assumption rather than a verdict on any one tool — benchmarks move, that figure is roughly a year old now, and a general spreadsheet benchmark is not your month-end. But the shape of it holds across everything published so far: these tools succeed on most tasks and fail on a meaningful minority, with nothing on screen telling you which kind you just got. That is exactly the profile that makes review non-optional.
The ten-minute review, in order
A procedure rather than a checklist: each step has an expected result, so you know whether you have passed it rather than whether you have done it. The order is deliberate — the cheap tests that invalidate the whole file come first, so a schedule that is going to fail fails in the first ninety seconds. It applies to output from any of the four categories.
- Delete every generated row of data first. Keep headers, formats and formulas; clear the body entirely so nothing invented survives into the real file. Expected: an empty body with the structure intact, before a single real figure goes in.
- Show formulas (Ctrl+`) and read the calculation columns. Constants where formulas belong are the commonest defect; the
SUMPRODUCTabove counts them on a sheet too big to scan. Expected: zero from the counter on every column that should be wholly derived. - Foot every total yourself. Put your own
=SUM()in a spare cell beside each total the generator wrote and confirm the difference is zero — subtotals too, not just the bottom line. Expected: zero on every one, including the ones you are confident about. - Check the ranges reach the end of the data. Off-by-300 beats off-by-one for frequency in generated files. Expected: the last row of every criteria and sum range equals the last row of the detail.
- Agree the schedule to the ledger. The tests above only prove the workbook agrees with itself. Take the total to the trial balance line or the control account it is supporting and compare. Expected: a difference of zero, or a difference you can name. A generated schedule that internally foots perfectly and does not agree to the ledger is the most convincing wrong file you will be handed all year.
- Find all
#REF!,#N/A,#VALUE!and#DIV/0!— Find All, looking in Values, scoped to the workbook. Expected: no hits, and no cells where anIFERRORis quietly hiding one. - Trace one number end to end with Formulas > Trace Precedents. If you cannot follow it, neither can your reviewer. Expected: you can say in one sentence where the figure came from.
- Test the types.
=ISNUMBER(A2)on a date column and an amount column; text that looks like a date is why a period total comes up short. Expected: TRUE all the way down both columns. - Check the cut-off. Read the date criteria rather than the dates: a
SUMIFSwritten as"<"&EOMONTH(...)instead of"<=", or a filter ending on the 30th of a 31-day month, drops the last day of the period — which is the busiest day in most ledgers. Expected: the last day of the period is inside every date test, proved by a figure you know falls on it. - Check the currency. Expected: nothing summing mixed currencies into one column, and any conversion using a rate you can point at rather than one the model chose.
- Check that rounding happens once. A generator will sometimes wrap
ROUNDaround every line and then total the rounded lines, which drifts against the ledger by a few pence per hundred rows and is maddening to find later. Expected: the rounding sits at the point of presentation, not on every row, and the unrounded total agrees. - Open Data > Edit Links. Expected: no external links at all. A link back to the generator's temporary file, or to a workbook on somebody's desktop, is a figure you cannot reproduce and a prompt to update links every time the file opens.
- Reperform one figure a different way — prove a
SUMIFSline with a PivotTable. Expected: two methods agreeing, which beats one method looking tidy. - Write the Notes tab, then save the untouched generated file alongside the reviewed one. Expected: two files and a completed tab, so that in six months somebody can tell what the tool did and what you did.
If a workbook survives all of that, it is a good workbook.
The Notes tab, in full
Everyone agrees you should keep a note. Almost nobody does, because "keep a note" is not a thing you can paste into a workbook. So here is the tab. Two columns, one row per field, on a sheet called Notes placed first in the workbook so it is the thing that opens.
| Field | What goes in it |
|---|---|
| Schedule | What this workbook is, and which client and period it belongs to |
| Prompt as issued | The request, copied and pasted, not paraphrased afterwards. If it took four exchanges, record all four. |
| Tool and version | The product and, where it shows one, the model or version. "AI" is not an answer to this in six months' time. |
| Date generated | The date the file was produced, which is not always the date it was reviewed |
| Source data | Where the real figures came from: the export, the report name, the date and time it was run, and who ran it |
| Assumptions accepted | Every default the tool chose that you decided to live with — the period convention, the rounding, the treatment of part-months, the bucket boundaries |
| Assumptions rejected | What it proposed that you overrode, and why. This is the most useful row on the tab and the one most often left blank. |
| Changed after generation | What you altered by hand once the file existed, at a level a stranger could follow |
| Checks performed | Which of the steps above you ran and what each returned — particularly the agreement to the ledger |
| Prepared by / date | Name and date |
| Reviewed by / date | Name and date, filled in by the reviewer and not by the preparer on their behalf |
Two habits make it worth having. Fill it in as you go rather than at the end, because the assumptions you accepted are invisible to you an hour later — that is what makes them assumptions. And keep the untouched generated file beside the reviewed one, named so the pair is obvious. Between the two files and this tab, the question "what did the AI do and what did you do?" has an answer, which is the entire difference between a generated workbook you can defend and one you cannot.
A worked review of one generated aged-debtors schedule
The procedure reads as obvious until you run it, so here it is against one file. The request was an aged debtors schedule with 30, 60 and 90-plus day buckets, built from a sales ledger export of 812 open invoices pasted onto a Detail tab. What came back looked finished: a Summary tab with four bucket columns, a total, conditional formatting on the oldest bucket, and a chart.
Step 1 found nothing to delete — the assistant had built in place off the real export rather than inventing rows, which is the pattern the triage table predicts for an in-Excel tool. One defect ruled out in fifteen seconds.
Step 2 found the first real one. The SUMPRODUCT counter over Summary!$B$4:$E$9 returned 1. The offender was Summary!$E$9, the 90-plus total, sitting as a typed 41,907.20 where the other three buckets held SUMIFS. It was correct at the moment it was written, which is exactly why nobody would have caught it by reading the sheet: it matched the figure above it, and a screenshot of that cell would look perfect for the rest of its life. The reason it is the worst defect on the list is not that it is wrong now. It is that it will not move when the detail does, so the first time this schedule is rolled forward the 90-plus bucket is last month's number wearing this month's label.
Step 3 passed: every bucket subtotal footed to its column. Step 4 found the second defect, and this is the one worth the ten minutes. The three working SUMIFS formulas were all written against Detail!$D$2:$D$500. The detail tab runs to row 812. Three hundred and twelve invoices — every one of them real, every one of them in the file, every one of them excluded from the ageing. Nothing errors, nothing turns red, and the schedule still foots to itself because all four buckets agree with a total that is also short. This is the defect the reviewer exists for.
Step 5 would have caught it too, from the other direction, and it is worth doing in both: the schedule total came to 1,284,660.45 against a sales ledger control account of 1,613,220.90. A variance of 328,560.45 that is not a rounding difference and not a timing difference is a population problem, and once you know 312 rows are missing the number stops being mysterious.
The rest of the run was clean apart from step 9, where the bucket boundaries used <30 and >=30 against a days-outstanding column — consistent, no gap, no overlap, but worth confirming rather than assuming, because the version of this that has a gap puts every invoice exactly 30 days old into no bucket at all and still foots.
Two defects, both invisible, in a file that looked finished. Neither was found by reading the schedule; both were found by a formula that took twenty seconds to write. And both would have survived to the client, because the thing that makes a generated workbook dangerous is not that it looks wrong.
When to keep the layout and rewrite the calculations
The judgement at the end of the review is not pass or fail, it is repair or rebuild, and it is worth making explicitly rather than drifting into. The rule of thumb from the worked example above: if steps 2 and 3 fail, keep the layout and rewrite the calculations. A file with one hardcoded total probably has others you have not found, and cell-by-cell repair leaves you certifying the cells you did not look at. The structure — the tabs, the headings, the bucket columns, the formats — is the part the generator was genuinely good at and the part worth keeping. Rewriting eight formulas over a layout you trust takes about as long as auditing them, and you end up knowing what every one of them does.
Reach for a generator when you want a layout rather than an answer: a tracker to start from, a schedule structure you would otherwise copy out of an old file, a first draft of a model you intend to rebuild anyway. Also when you are learning — reading a generated SUMIFS written against realistic column names teaches faster than a syntax reference.
Use something else when the data already exists and the real work is getting at it, where Power Query or a ledger connector beats any amount of generation. When a human-checked free template already covers the schedule. When the deliverable carries a signature, and an unexplainable workbook is a liability whatever the numbers say. And when the task is monthly — generation is a one-off act, and a one-off act performed twelve times a year is manual work with extra steps.
Where HISAB 360 fits
HISAB 360 sits in the third category: a paid AI panel docked inside desktop Excel that builds into the workbook you already have rather than handing you a new file. It writes and applies formulas, Power Query queries, PivotTables, Power Pivot models with DAX measures, charts and VBA macros from plain English, and it holds OAuth connections to five accounting systems — QuickBooks Online, Xero, Zoho Books, Odoo and FreshBooks — with read and write access, which addresses failure mode five rather than working around it.
The limits, plainly. Windows desktop Excel only (Microsoft 365 or Excel 2016+ on 64-bit Windows) — not Mac, not Excel on the web, which is where several tools above do run. Paid: $7/month or $60/year if you bring your own AI provider key, $10 or $20/month with HISAB AI credits, or $199 perpetual; the 15-day trial is the full product with 50 credits and no card, and there is no free tier after it. Every write back to a ledger should be reviewed before you approve it.
And the honest one: it is still a generator. Everything on the checklist above applies to what it produces, exactly as it applies to Copilot, ChatGPT, Claude or a free web tool. Working inside Excel takes away the usual cause of invented data — it reads your real numbers rather than imagining a dataset to demonstrate with — but it can still put a wrong number in a cell, and it does not remove your review. You are the control, not the model.
Frequently asked questions
Can an AI-generated schedule be audit evidence?
The schedule is not evidence of anything on its own, and that is true whoever or whatever built it. Evidence is the underlying records the schedule summarises, plus the work someone did to show that it summarises them correctly. So the question is not really about the tool: it is whether the file agrees to the ledger, whether the population is complete, and whether the checks that established both are recorded somewhere a second person can follow. What a generated file changes is that none of that context arrives with it, so you have to create it — keep the source export, keep the untouched generated file, keep the Notes tab, and record the agreement to the control account. And check your own firm's policy on tool use and on what goes in a file; that is a question for your firm, not for a blog post.
Is regenerating the same as reperforming?
No, and this is the distinction worth being firm about. Reperformance means a second person, from the same inputs, reaches the same answer, so that any difference is a difference in the work. Model output is not deterministic: the same prompt next quarter can return a different layout, different assumptions and a different treatment, and none of those differences tell you whether the first version was right. Running the prompt again does not check the schedule — it produces a second schedule and leaves you with two. Reperformance here means footing the totals yourself, proving one figure a different way, and agreeing the schedule to the ledger.
What should the Notes tab record?
Eleven things, and the tab takes about three minutes if you fill it in as you go: what the schedule is and which client and period it covers; the prompt exactly as issued, including follow-up exchanges; the tool and version; the date generated; where the real data came from, including when the export was run and by whom; the assumptions you accepted; the assumptions you rejected and why; what you changed by hand afterwards; which checks you ran and what they returned; prepared by and date; reviewed by and date. The two rows people skip are the assumptions you rejected and the checks you ran, and they are the two that answer the only question anyone will ask later — what did the tool do, and what did you do?
How do I find hardcoded values in a workbook I did not build?
Two ways, and use both. Visually, Formulas > Show Formulas (Ctrl+`) switches the whole sheet to showing formulas rather than results, so a typed constant sitting among calculations is obvious at a glance. Numerically, count them: =SUMPRODUCT((ISFORMULA($D$2:$D$500)=FALSE)*($D$2:$D$500<>"")) over any range that should be wholly derived returns the number of cells that are not, and you want zero. Run the counter over each calculation column separately rather than the whole sheet, because a column that legitimately mixes keyed inputs with formulas will return a non-zero figure that means nothing. Totals, subtotals and anything in a percentage or margin column are where they hide.
Try HISAB 360 on your own workbook
HISAB 360 is an AI assistant inside Excel for accountants and finance teams — it writes macros, Power Query and formulas from plain English, and connects two-way to QuickBooks, Xero, Zoho Books, Odoo and FreshBooks. The 15-day trial is the full product, no card required.