Data

Finance can’t deal in “probably”

Give an AI chatbot the same sales table twice and you can get two different totals, two different best-performing regions and two different services mixes. The arithmetic is rarely the problem. Nobody told it your rules, so it made its own.

Total sales A$125,000 to A$254,700Best region North, South or WestServices share 5% to 28%

Written for CFO COO

The short versionAbout a minute
  • Try it. Paste one sales table into two chats and ask for the board pack numbers.
  • What changed between them? At least six accounting decisions the chatbot made without asking. Each one moves the total.
  • Why does it happen? Your data records what happened. It doesn’t record what it means, and a better model can’t guess what isn’t written down.
  • What fixes it? A governed warehouse and semantic layer: the rules decided once, and every report and assistant using the same ones.
  • Where Zap fits. Zap builds that foundation from your ERP, and Zap AI works from it.

For twenty years, business software has done one thing so reliably that nobody thinks about it. Run a saved report today, run it again tomorrow on the same data, and you get the same numbers.

An AI chatbot that builds the report itself doesn’t work that way. You can see it for yourself in five minutes, and it’s worth doing before anyone puts a chatbot’s numbers in front of the board.

Try it: one table, two chats

You don’t need your own data for this, and you shouldn’t paste company numbers into a public tool.

Open ChatGPT, Claude, Copilot or Gemini. Start a new chat, paste the prompt below, and note the answer. Then start a second new chat and paste it again. For a stronger test, try a second assistant as well. The table is invented, but every row in it is the kind of thing your ledger contains.

Copy this into two new chats
You are preparing the Q3 sales section of our Australian board pack. Using the transactions below, report: - Total sales by region and for the business, in our reporting currency - The best-performing region - Average deal size by region - Services as a percentage of total sales Round sensibly and keep it to one page. Don't ask me any questions, I need a draft now. Ref | Date | Region | Customer | Product line | Type | Currency | Amount INV-0811 | 14/01/2026 | North | Harbour Logistics | Hardware | Invoice | AUD | 48,000 INV-0815 | 03/02/2026 | North | Harbour Logistics | Services | Invoice | AUD | 15,500 INV-0822 | 19/02/2026 | South | Kestrel Mining | Hardware | Invoice | USD | 36,000 INV-0822 | 26/02/2026 | South | Kestrel Mining | Hardware | Invoice | USD | 36,000 INV-0826 | 06/03/2026 | | Online store | Hardware | Invoice | AUD | 8,700 INV-0830 | 11/03/2026 | West | Pinnacle Health | Support | Invoice | NZD | 21,000 CN-0107 | 27/03/2026 | North | Harbour Logistics | Services | Credit note | AUD | -4,200 PF-0031 | 30/03/2026 | West | Pinnacle Health | Hardware | Pro forma | AUD | 52,000 INV-1104 | 08/07/2026 | North | Coastal Freight | Hardware | Invoice | USD | 42,000 INV-1117 | 22/07/2026 | South | Kestrel Mining | Services | Invoice | GBP | 9,800 INV-1129 | 14/08/2026 | West | Pinnacle Health | Hardware | Invoice | AUD | 61,500 INV-1135 | 05/09/2026 | North | Coastal Freight | Support | Invoice | USD | 7,400 CN-0142 | 18/09/2026 | South | Kestrel Mining | Services | Credit note | GBP | -2,100 INV-1141 | 29/09/2026 | West | Pinnacle Health | Services | Invoice | AUD | 18,000 INV-1146 | 30/09/2026 | | Online store | Hardware | Invoice | AUD | 9,900 INV-1150 | 02/10/2026 | South | Kestrel Mining | Hardware | Invoice | USD | 31,200

“Don’t ask me any questions” is there on purpose. A careful assistant might ask what you mean, which is the right instinct. Most people asking for a board pack draft don’t want a conversation, and they take what comes back.

Now put the answers side by side and compare three numbers.

The total

Did both chats land on the same figure?

The best region

Did both name the same one?

The services share

Is it nearer 8%, 21% or 26%?

Then read the notes, if there are any. Better assistants list their assumptions. Look closely: the assumptions themselves are likely to differ from one chat to the next, and assumptions are the first thing cut when a draft becomes a board paper.

What changed between the two chats?

Before a chatbot can add anything up, it has to make accounting decisions. The prompt doesn’t say how, so it decides for itself, and it doesn’t have to decide the same way twice.

Every switch below is one of those decisions. Each option is a reading a reasonable person could defend. Flip them and watch the board pack change.

Load a reading
Which quarter is “Q3”?
What is “our reporting currency”?
INV-0822 appears twice. One sale or two?
Is a pro forma a sale?
Do credit notes come off sales?
Is Support part of Services?
What is a “deal”?
Total sales, Q3
A$0
Best regionNorth
Services share0%

    Orange line marks the governed figure. The star marks the best-performing region. The smaller figure is average deal size.

    Chats A, B and C are illustrative combinations of reasonable choices, not recorded chatbot transcripts. Exchange rates are illustrative: USD 1.55, NZD 0.90 and GBP 2.05 Australian dollars. Online sales with no region are shown as their own line.

    The same data, three defensible board packs

    ReadingTotal salesBest regionServices
    Chat A: calendar quarter, Support kept separateA$181,755West18.6%
    Chat B: duplicate counted twice, Support kept separateA$198,500South5.7%
    Chat C: no conversion, pro forma in, credits outA$181,200West20.1%
    Governed definitionsA$142,700North21.2%

    None of these chats made an arithmetic mistake. Each one added up correctly from the rules it chose. That’s what makes the problem hard to spot: every version looks finished, confident and internally consistent. Two of them even agree on the best region, for different reasons.

    What a wrong number costs

    A hypothetical, but not an unusual one. The board pack names West as the best-performing region, as Chat C did. The business acts on it: two sales hires go to West, and next year’s marketing budget follows them. Two quarters later, finance rebuilds the quarter under the agreed rules. West’s lead was a pro forma quote counted as a sale and New Zealand dollars added as if they were Australian. North was ahead all along.

    By then the hires are in place and the budget is spent. Fixing the number takes an afternoon. Unwinding the decision made on it takes far longer.

    The question for a CFO isn’t whether the AI can add up. It’s who decided what counts.

    Why does this happen?

    There are two causes, and the second one matters more.

    The chatbot writes every answer fresh

    An AI assistant builds its reply from predictions about what text should come next. Those predictions can come out differently from one run to the next, so wording, layout and emphasis vary. The technical word is probabilistic. On its own, this is a nuisance more than a risk: you can read past different wording.

    Your data doesn’t carry its own meaning

    The table records what happened. It doesn’t say that your financial year starts in July, that a pro forma is a quote, that INV-0822 was re-issued, or that support contracts report as services. Those rules live in your accounting policies, your chart of accounts and the heads of your finance team.

    An AI given raw data has to fill those gaps every time it’s asked. Because it writes each answer fresh, it can fill them differently each time. Your real ledger has hundreds of these gaps, against the six in this table.

    Won’t a better model fix it?

    A better model makes fewer slips and is more likely to list its assumptions. It still can’t know your fiscal calendar or your revenue rules, because they aren’t in the data. More intelligence applied to an undefined question gives you a more articulate guess.

    Can’t we just put the rules in the prompt?

    You can fix one rule that way. Write “Q3 means January to March” and that gap closes. A complete set of reporting rules runs as long as your accounting policies, every person would write it slightly differently, and nothing stops the next person leaving it out. A template fixes the layout of a report. It doesn’t decide which transactions count.

    Where does “exactly” come from?

    From deciding the rules once, writing them down where every report and every assistant reads them, and letting the AI ask for a defined number instead of composing one.

    That foundation has two parts, and they do different jobs.

    A governed data warehouse holds what happened. Transactions from your ERP and the systems around it, cleaned up once: a re-issued invoice is one document, a quote is marked as a quote, and history is kept, so last quarter’s report can be reproduced as it stood at the time.

    A semantic layer holds what it means. Which months make up Q3. What net sales includes. Which exchange rate applies, and for which period. Which product lines count as services, and which region each customer belongs to. Each rule is decided once by the people accountable for it.

    With both in place, the AI’s job changes. It no longer decides what counts. It works out which defined measure you are asking for, the platform calculates it under your rules, and the AI explains the result.

    The question is identical in both lanes. What differs is where the accounting decisions are made, and by whom.

    The governed answer

    Q3 FY26, January to March 2026. Net sales in AUD.

    RegionNet salesInvoicesAverage deal
    NorthA$59,3002A$29,650
    SouthA$55,8001A$55,800
    WestA$18,9001A$18,900
    OnlineA$8,7001A$8,700
    TotalA$142,7005A$28,540

    North is the best-performing region. Services, including Support, are 21.2% of sales.

    • Financial year July to June
    • AUD at the quarter’s average rate
    • Each document counted once
    • Pro formas are quotes, not sales
    • Sales reported net of credit notes
    • Support reports within Services

    Two further things follow, and both matter in a finance function.

    When a number changes, there’s a reason you can point to. A late posting, a correction, a new month’s exchange rate. The figure moves because the data moved, never because the question was read differently this time.

    When something isn’t defined, a well-built system says so. If nobody has decided whether a new product line is services, the right answer is “that isn’t defined yet”, rather than a confident guess. An assistant that answers everything is worse than the report it replaces, because the report at least fails visibly. Hold any AI to that standard.

    Where is “probably” fine?

    Wherever a person is going to read, check and rewrite the result anyway.

    “Probably” is fineYou need “exactly”
    Exploring a question nobody has asked beforeThe board pack and the management accounts
    Drafting commentary a person will editAny number that goes to a customer, a bank or an auditor
    Summarizing a document someone will check against the sourceFigures used to approve a payment or sign off a decision

    A governed foundation doesn’t take AI out of the right-hand column. It makes the right-hand column safe for AI: the assistant brings the speed and the explanation, and the platform brings the numbers.

    Where Zap fits

    The Zap AI Data Platform is that foundation, built from your ERP.

    Zap Data Hub brings the data from your ERP and the systems around it into one governed data warehouse, with pre-built models for Sage, Syspro, Microsoft Dynamics, SAP Business One and Xero. On top of the warehouse sits the semantic model: your measures, your calendar and your hierarchies, defined once. We’ve been building that for more than fifteen years.

    Everything reads from the same model. Zap Analytics reports, Excel through Zap Live, Power BI and Zap AI all use the same definitions under the same access rules. So when someone asks Zap AI for Q3 sales, it works from the measure your finance team defined, rather than a rule it improvised for the occasion.

    Read top to bottom: every way of asking a question resolves to the same definitions, and every definition resolves to the same records.

    The AI layer will be open as well. When MCP access is released, Zap will expose the same governed tools to other assistants through the Model Context Protocol (MCP), so an assistant your business already uses can ask for the defined measure in the same way Zap AI does.

    What the assistant writes around the figures will still vary from run to run. That’s the draft, and it’s yours to read. The figures underneath won’t vary, because nobody is improvising them.

    Ask the same question twice and get the same answer. Bring the report your team rebuilds every month, and we’ll show it running on your definitions.

    Book a demo

    FAQ

    Common questions

    Why does AI give a different answer to the same question?

    An AI assistant generates each reply fresh, from predictions about what text should come next, so the wording, layout and emphasis can change between runs. Given raw data, it also has to choose the accounting rules each time, so the totals can change too.

    Is AI deterministic?

    An AI assistant isn’t guaranteed to give the same written answer twice, so it isn’t deterministic in the way a saved report is. Deterministic means the same input always gives the same output. An assistant’s answer is generated each time, and it can vary even with its randomness turned down.

    Can AI be used for financial reporting?

    Yes. An assistant can fetch approved reports and help draft the commentary. The figures should come from saved reports with agreed definitions, and a person should check the commentary.

    How do you get consistent answers from an AI assistant?

    Have it fetch an approved report with agreed definitions and settings, instead of composing a new one. Expect the wording around the figures to vary, and read it.

    See it on your own ERP data.

    A governed warehouse and semantic layer for your ERP, live in days rather than months.