Article
AI in corporate finance: what to automate and what not to hand to a model
After a dozen deployments in the finance of small and mid-sized companies I have a simple rule: the language model gets what consists of reading; code gets what consists of computing; a person keeps what consists of accountability. Below — what that looks like in practice, with three examples and a list of things not to do.
Author: Tomasz FordymackiPublished:
Three baskets: automated, never delegated, human-checked
| Automated (code or model) | Model proposes, a person checks a sample | Never handed to the model |
|---|---|---|
| Loading an XML registry filing and reconciling it (assets = liabilities) | Classifying posting descriptions into management lines | Arithmetic — every multiplication in code, with a test |
| Ledger control rules: VAT, deadlines, official register, rates, balances | Extracting fields from contracts and invoices (parties, amounts, dates) | EBITDA normalisation adjustments and valuation method weights |
| Report, dashboard and presentation generated from one model | A first draft of the results commentary (“what changed and why”) | Forecast assumptions and the conclusion for the board |
| Allocating working time to clients from a ticketing export | Translating a report into a second language (numbers checked by rule) | Personal data and salaries — stay in a zone the model cannot reach |
Three examples from deployments
- 1A registry-filing parser — eight companies with one methodXML e-filings have one structure but three variants (small, other, micro entity) and different notes. A script loads the balance sheet, P&L and cash flows, reconciles them and computes fourteen ratios in five modules with a rating. No language model here — pure code, because the structure is known. Effect: a comparative analysis of a dozen companies in an hour instead of a week; same ratios, same method, zero retyping.
- 2A ledger controller for an accounting office — a hundred rules instead of an eyeThe accounting-system export, the chart of accounts and the accounting policy as inputs; around a hundred rules (VAT and deadlines, counterparties against the official register, e-invoicing, central-bank rates, accounts that should never carry a balance) and several hundred tests. The language model appears in one place: for an unclear posting description it proposes a classification the accountant approves. Effect: errors visible before month-end, the accountant works on exceptions, a dashboard for the office owner shows which company failed what today.
- 3A management report from the model — one number in three documentsA script reads the Excel model (management P&L, allocation, liquidity), builds an HTML dashboard, a PDF report and a presentation — in Polish and French for an owner abroad. Closing checks (segments sum to the P&L, the balance sheet balances) stop publication when something does not match. The language model writes a first draft of the “what changed” commentary; I correct and sign it. Effect: report closing from a week to an hour, no more three versions of the same margin.
Why the model must not compute
A language model predicts the next piece of text. For “2 × 3” it will predict “6”, having seen it a million times; for “7.96 + 14.75 discounted at 11.3 %” it will predict something that looks like a result — and be wrong by a few percent in a way you cannot see. In a valuation a few percent is hundreds of thousands. That is why in my tools the model never returns a number that goes into a report: it returns a classification, a proposal or text, and code with a test does the computing. That is not caution — it is the difference between a tool and a risk.
A checklist before deployment
- Which single report eats the most hours? Start there — not with an “AI strategy”.
- Does data enter through one gate with validation and a log? If not, the gate comes first.
- Where are personal data and salaries — and can the model reach them? It must not.
- Which controls can be written as a rule with a test? All of those go to code, not to the model.
- Who signs the result? If the answer is “nobody, it is automated”, the deployment is not ready.
- Is there a register of pitfalls and refresh instructions? The tool must outlive its author.
Frequently asked questions
Which language model?
For reading documents — Claude; where data cannot leave the company — a locally run model (Ollama). The choice is secondary to the architecture: a gate, zones, rules before the model, code for computing. A poor model in a good architecture does less damage than the best model in a bad one.
What does it cost and when does it pay back?
A first deployment (one report, one export) is two to three weeks of work; the cost of language models at this scale is negligible — tens of złoty a month. I count payback in team hours: a report from a week to an hour is 30–40 hours a month, i.e. payback within the first quarter. I do not publish a price list — scope and price follow from a conversation.
Is it GDPR-compliant?
It is, if the architecture is: personal data in a zone the model cannot reach, identifiers for analysis, an external model receiving only anonymised content, a processing agreement where required. That is a condition for me taking on a deployment at all — not an option to switch on later.
Let’s talk about your situation
Write a few sentences about the company and the problem. I reply within two working days and the first conversation is free.
Write to me