How we check our numbers
We do not ask you to trust the figures. We show you what we checked.
CFO Pal reads your accounts from Xero, QuickBooks or Sage, then tells you things about them. That is only worth anything if the figures are right. So every month we hold is checked against the platform's own report, every morning, and when a check fails the product stops quoting figures rather than quoting ones we cannot stand behind.
This page is the record. The numbers on it are read from that record when you load it.
The gate
When the numbers do not reconcile, the AI goes quiet
Before CFO Pal writes a single sentence about your business, whether that is a weekly email, an alert, a board pack or an answer in the chat, it checks whether your figures reconcile. 12 checks run per business. 7 of them block.
Your balance sheet does not balance
Your cash position cannot be reconciled
Gross profit disagrees with the platform's own total
Net profit disagrees with the platform's own total
An account was dropped instead of placed on a statement
Debits and credits across the ledger do not agree (Sage)
A correction you have already made is not reflected yet
If any of those 7 is failing, the AI is not called at all. You get a notice telling you what did not reconcile.
5 warn instead of blocking. Money owed to you, money you owe, how recently we synced, a gap in the months we hold, and how completely we captured your chart of accounts. Each is quoted with a caveat attached saying exactly what we could not confirm.
A check that has never run does not block, and it does not pass either. It reads as unknown, because unverified is not the same as wrong.
An AI that is confidently wrong about your cash position is worse than no AI. The gate is the only reason we are willing to let ours write to you unprompted.
The checks
What we check, and how often
Each one compares our figures against something outside them.
| What | Against what | How often |
|---|---|---|
| Every line of your profit and loss | The platform's own report, line by line | Every morning |
| Our section totals | The platform's own printed subtotals | Every sync |
| Assets, liabilities and equity | Each other, to the penny | Every sync |
| The movement in your cash | Every balance sheet movement that explains it | Every sync |
| Money owed to you, and by you | The control accounts in your ledger | Every sync |
| Every account the ledger returned | That we placed it and dropped none | Every sync |
| Debits and credits across the ledger | Each other, to the penny (Sage) | Every sync |
Your accounts are re-read twice a day. The line by line profit and loss check runs at 04:30 every morning, over your last three complete months.
Three states, not two
A question we did not ask is not a pass
Xero publishes its own totals, so we compare ours against theirs and tell you they match. QuickBooks and Sage do not publish them. For those, that check comes back "not reported", and we record it as not reported, never as fine.
Sage goes further. It publishes no gross or net profit figure anywhere in its API, so for a Sage business those two checks can never pass, for any month, ever. We say so on your own reconciliation screen rather than leaving a green tick where no check happened.
We would rather show you a gap than a tick we did not earn.
The arithmetic
The AI never does the maths
Every figure CFO Pal states about your business is computed by us, in code, before the AI is called. The AI is handed those figures and quotes them. It does not add, subtract, divide or estimate.
That is not a policy we hope holds. It is tested. Every pound, every percentage, every count of months and days in every output is traced back to a figure the pipeline stated, across all eight places CFO Pal writes to you. An output containing a number we did not state fails the test, and then we fix the pipeline so the figure is stated.
Things that test has caught, and we fixed
- The model subtracting two cash balances we had stated, to reach a change we had not.
- The model dividing a year of invoiced sales by twelve and calling it monthly revenue.
- The model proposing £10,000 of near term collections, a figure that existed nowhere.
Each one is now a figure the pipeline states outright, because the number a sentence reaches for is the number we forgot to give it.
The limits
What we do not check, and will not claim
A page about checking figures is worth nothing if it only lists the checks that pass.
- We do not read your individual transactions.The smallest thing we hold is one month of one category. We can tell you overheads rose by £4,200. We cannot show you the eleven bills behind it.
- We do not produce a cash flow statement.Splitting cash into operating, investing and financing needs a judgement no accounting platform records. We report a reconciliation of the movement in cash instead, and we label it as that.
- We do not estimate your VAT return.We show the running ledger balance of the accounts you have told us are VAT accounts. A real return needs HMRC's MTD service, which we do not connect to.
- We do not tell you what your borrowings are until you tell us which accounts they are.Nothing in Xero, QuickBooks or Sage distinguishes a bank loan from money owed to a parent company. So we ask, and until you answer, the board pack leaves borrowings out.
- Your figures are not current to the second.Your accounts are re-read twice a day, so a payment you recorded an hour ago may not be here yet.
- This is software, not advice.CFO Pal does not provide regulated financial advice, and nothing it writes is a recommendation within the meaning of FSMA.
The record, read when you loaded this page
Where it stands
33 of those 33 months carry a stored verification result. The last check ran on 26 Oct 2026. It has come back clean on the last 19 runs.
Our own demo company is excluded from these figures. Its data is generated by us, so checking it would only prove that we can agree with ourselves.
See your own 12 checks
Connect Xero, QuickBooks or Sage and your reconciliation screen is populated on the first sync, showing which checks passed, which could not run, and why.
Start your 14-day free trial