AI judges. Scripts prove.
One audit method for any asset someone else runs for you. First proven on Swiss property accounts, designed for yachts.
A Dacide audit is a multi-agent review of an asset's books in which deterministic scripts structure and verify every number, the AI analyses only anonymised placeholders, and every finding carries a row reference, a norm and a graded verdict. The key that turns placeholders back into names is encrypted and stays out of the AI's reach.
One real audit: 21'614 replacements across four files. Independent re-scan: 0 residual identifiers. 1
Five phases with four gates between them; a script checks everything that crosses a gate.
Every number is computed by a script before any agent reads it, and checked again by a script after the agents are done. Scroll through one ledger line on its way through the method.
-
Phase 1 · Gate A
Structure.
Every table and ledger becomes one data model with stable row IDs. JR2024:ER:Z087 means annual accounts 2024, profit and loss, row 87. Stored formulas are recomputed. A difference becomes a finding, never a silent correction.
-
Phase 2 · Gate B
Anonymise.
Names, addresses, IBANs and ID numbers become typed tokens such as FIRMA_001, PERSON_001, LIEGENSCHAFT_A. Amounts, dates and formulas stay byte-identical. The key file is encrypted and kept outside the workspace.
The AI only ever sees placeholders.
-
Phase 3
Analyse.
An orchestrator sends out specialist agents, each starting with a fresh context. A critic attacks every conclusion, an auditor checks completeness, fact checkers trace each number and norm, and an integrator merges duplicates and ranks what is left.
-
Phase 4 · Gate C
Report.
The report is written on placeholders. Each finding sits in a full evidence table with its row ID, its norm and a graded verdict. A figure that no script can resolve to a row does not ship.
-
Phase 5 · Gate D
Re-personalise.
Names come back locally, by script, outside the AI session. A validator proves that no number, quote or source changed on the way. Two people sign off before the report leaves.
JR2024:ER:Z087 14.03.2024 · Muster Haustechnik AG · CH93 0076 2011 6238 5295 7 · 12'480.00 · recomputed: matchJR2024:ER:Z087 14.03.2024 · FIRMA_001 · IBAN_001 · 12'480.00FIRMA_001 · 4 invoices just under the approval limit · procurement specialist · critic: holdsFinding 03 · JR2024:ER:Z087 · norm: management contract, approval clause · verdict: plausibleFinding 03 · Muster Haustechnik AG · 12'480.00 · validator: 0 changes · sign-off 2 of 2Fictional line. Amount and date never change between phases.
Four gates. Four lines of defence.
The method runs in five phases (structure, anonymise, analyse, report, re-personalise) with quality gates A to D between them. The yacht workflow adds gate E, a knowledge-hub airlock. 2
- A
Structure check
Every file is in the manifest, debits equal credits, every formula is recomputed, and the same input gives the same output twice.
- B
Leak scan
A second, independent scan finds zero identifiers. No key value appears anywhere. Numbers are byte-identical. A person reviews a sample of records.
- C
Citation duty
Every amount is resolved by script to its row ID. Every legal statement is checked against its norm or marked as uncertain.
- D
Diff validator
After the names come back, a script proves that nothing else moved.
- E
Hub airlock yacht only
Only verified, anonymous, aggregated figures enter the shared cost base. How the Cost Hub works.
Who cannot read what.
The data boundary is enforced by four technical lines of defence (deny rules, execution separation, silent scripts, leak scan before release). 2
- L1
Deny rules
The AI tooling is configured so it cannot open the folders that hold raw, identified or final files, or the key vault.
- L2
Execution separation
Scripts are built against synthetic test files. A person runs them on the real books, outside the AI session.
- L3
Silent scripts
Scripts log counts, IDs and hashes. They never print a name or a line of content.
- L4
Leak scan before release
Gate B. Nothing reaches the analysis until the second scan comes back empty.
A Company Brain needs the same access rules; see where its memory lives.
Six principles apply to every audit.
They hold for every asset class: a workflow may add rules but never drop one.
Every finding gets exactly one of four verdicts.
- Proven
Traced to a ledger row and a norm. A script can show the path.
- Plausible
Consistent with benchmarks. It needs a document before it counts as proven.
- Open
The data is missing. The gap is itself a finding, and it goes on the list of documents to request.
- Rejected
Failed the critic or the fact check. It does not reach the report as a finding.
Escalation rule: a rejected finding goes back to the agent that raised it, at most twice. After that it stays rejected or is downgraded.
If an insight cannot be recomputed, it is a rumour.
No finding proves misconduct. Every finding deserves an answer.
Clarify large amounts with the manager first, and negotiate where the answer is weak.
Upload your ledger. It never leaves your browser. The red flags do.
These nine checks open every Dacide audit, before any agent reads a line. Run them on an export from your own accounting system, or on the synthetic sample. Each flag carries the line number of your file, so you can find the entry in seconds.
This page reads your file locally. Nothing is uploaded, and closing the tab discards it.
The sample has 1'200 invented bookings for one year, with planted cases for every check. All vendor names start with "Sample".
Check the columns.
Detected from your header row. Date, vendor and amount are required. Change any column that was guessed wrong.
Show the rules
R1 Exact duplicate same date, same vendor, same amount
R2 Near duplicate same vendor, amounts within 1% of the larger one,
dates at most 7 days apart, not an exact duplicate
R3 Round sum |amount| >= 1'000 and divisible by 1'000
R4 Threshold shaving 0.95 x T <= |amount| < T
R5 Split invoice same vendor, same day, 2 or more entries each
below T, together >= T
R6 Vendor concentration top 3 vendors hold > 60% of total absolute spend
(one flag for the whole ledger)
R7 Weekend or holiday Saturday, Sunday or a Swiss public holiday;
only for dates without a time of day
R8 Generic description empty, or one of: diverse, various, misc, div., spesen
R9 Benford first digit positive amounts >= 10, at least 300 of them
MAD = mean over d = 1..9 of |observed(d) - log10(1 + 1/d)|
MAD > 0.015 nonconformity
0.012 to 0.015 marginal
below 0.012 conforms
Benford thresholds are the first-digit MAD bands from Nigrini. 3 Holidays checked: New Year's Day, Good Friday, Easter Monday, Ascension Day, Whit Monday, 1 August, Christmas Day and St Stephen's Day. Only 1 August is a federal holiday by law. 4 Cantonal holidays are ignored.
Amounts: 1'234.55, 1’234.55, 1.234,55 and 1234.55 are read the same way. If a value contains both a point and a comma, the last one is the decimal separator. Apostrophes and spaces are removed; a value in parentheses is negative. Dates: 2025-03-14, 14.03.2025 and 14/03/2025. Text: UTF-8, with windows-1252 as fallback.
Each flag is a question to ask; most have innocent explanations.
Flagged rows, with the question to ask.
| Question to ask |
|---|
The CSV is generated on this page.
Two workflows. One method underneath.
Swiss real estate
A property manager's annual statements, traced row by row and read by cantonal, tax and legal specialists.
Yacht management
Budgets, expense reports, yard invoices and contracts from a yacht manager, set against market bands for running costs.
The schema works for any asset.
Phases, gates and the data schema are asset-agnostic, so the method extends to other assets run by third parties (private jets, art collections, family-office structures), to multi-year comparisons, which work because a row keeps its ID from one run to the next, and to quarterly monitoring in place of a yearly post-mortem.
None of these is a product today. Each one reuses the phases and gates that the two workflows already run on.
- Private jets · art · family officesDirection
- Multi-year comparisonDirection
- Quarterly monitoringDirection
Where this breaks.
- An audit cannot see what was never booked.
- Benchmarks make a finding plausible; only documents make it proven.
- It is decision support and does not replace a statutory audit or tax and legal advice.
Questions.
Does the AI see our names?
No. Names, addresses, IBANs and identification numbers are replaced by typed tokens on a local machine before any agent reads the books. A second, independent scan must find zero identifiers before anything goes to analysis. Amounts and dates stay as they are, because they are what the audit examines.
Who holds the key file?
The key file is encrypted and kept outside the workspace the AI can reach. Only the local re-personalisation script reads it, and a person starts that script outside the AI session.
Is this a statutory audit?
No. It is decision support for owners and boards. It does not replace a statutory audit, nor tax or legal advice. It tells you which numbers are proven, which are plausible, which are still open, and which questions to put to your manager.
What do you need from us?
The documents your manager already produces: annual accounts, the booking journal as an export, expense or service-charge statements, the management contract and the relevant correspondence. Spreadsheets with their formulas, not only printed PDFs. Missing documents are fine. They become findings.
What does the manager see?
A demand catalogue: one question or document request per open finding, ready to send. The two workflow pages show what goes into it.
Sources.
- Dacide internal work product, anonymised. INT
- Dacide internal work product, anonymised. INT
- Mark J. Nigrini. Benford's Law: Applications for Forensic Accounting, Auditing, and Fraud Detection. Wiley, 2012. WE
- Swiss Confederation. Federal Constitution of the Swiss Confederation, Art. 110 para. 3. 1999, in force 2000. WE