AuditCopilot: LLM's voor fraudedetectie in dubbel boekhouden
Het artikel dat ik deze week lees is AuditCopilot: Leveraging LLMs for Fraud Detection in Double-Entry Bookkeeping (arXiv:2512.02726), ingediend in december 2025 door Kadir, Macharla Vasu, Nair en Sonntag. Het bevindt zich op het snijvlak van onderzoek naar LLM-agents en financiële compliance: het gebruik van foundation models om frauduleuze journaalposten te detecteren in echte bedrijfslogboeken. Van alle artikelen in de Bean Labs-leeslijst tot nu toe, is dit degene die zich het meest direct bezighoudt met hetzelfde ruwe gegevensformaat waar wij om geven.
Het artikel
Elke audit van een beursgenoteerd bedrijf — verplicht gesteld door PCAOB Auditing Standard AS 2401 — moet Journal Entry Testing (JET) bevatten: systematische controles van het grootboek op boekingen die gemarkeerd worden op basis van regelgebaseerde heuristieken. De regels zijn zaken als "boeking geplaatst na middernacht", "bedrag met een rond getal", "ongebruikelijk rekeningpaar" of "boeking geplaatst door een zelden actieve gebruiker". Deze regels werken, maar ze genereren enorme hoeveelheden fout-positieven: auditors besteden het grootste deel van hun tijd aan het verwerpen van overduidelijke ruis.
AuditCopilot onderzoekt of LLM's deze regels kunnen vervangen of aanvullen. Het systeem geeft elke journaalpost — gestructureerd als een JSON-achtig tekstfragment met velden voor boekdatum, debet/credit-bedragen, rekening-ID's, belastingtarieven en een set vooraf berekende binaire anomalievlaggen — door aan een LLM-prompt die een binaire anomalie-label en een uitleg in natuurlijke taal retourneert. De auteurs benchmarken Mistral-8B, Gemma-2B, Gemma-7B en Llama-3.1-8B op zowel een synthetisch bedrijfsgrootboek als een enkel echt geanonimiseerd belastinggrootboek, vergeleken met traditionele JET's en een Isolation Forest-baseline.
Kernideeën
- Op de synthetische dataset (5.000 boekings-ID's, ~1% werkelijke anomalie-ratio), behaalt Mistral-8B met de volledige prompt een Precisie van 0,90, Recall van 0,98 en F1 van 0,94 — vergeleken met de JET-baseline (Precisie 0,53, Recall 0,90, F1 0,50) en cruciaal slechts 12 fout-positieven tegenover de 942 van JET.
- De "volledige" AuditCopilot-prompt bevat niet alleen de ruwe kenmerken van de boeking, maar ook wereldwijde dataset-statistieken (gemiddelde, mediaan, 95e en 99e percentiel bedragen) en een vooraf berekende Isolation Forest-score per rij. Deze context-engineering is essentieel voor de werking.
- Op de real-world dataset bereikt Gemma-7B met de volledige prompt een Precisie van 0,89, Recall van 0,78 en F1 van 0,83. Wanneer de Isolation Forest-hint wordt verwijderd, stort de precisie in tot 0,14 — het LLM alleen draagt de last niet.
- De verklaringen zijn de meest verdedigbare bijdrage van het systeem: in tegenstelling tot een numerieke anomaliescore, wordt elke gemarkeerde boeking geleverd met een rechtvaardiging in proza ("dit bedrag overschrijdt het 99e percentiel voor dit rekeningcluster en is buiten kantooruren geplaatst"), die een auditor snel kan accepteren of verwerpen.
- Nergens fine-tuning. Alles draait zero-shot of met een korte prompt voor de systeemrol, wat gunstig is voor de implementatiekosten, maar ook betekent dat de resultaten zeer afhankelijk zijn van de prompt-sjabloon.
Wat standhoudt — en wat niet
Het resultaat van de vermindering van fout-positieven is opvallend en reëel. Van 942 naar 12 fout-positieven gaan op dezelfde data is het soort operationele winst dat daadwerkelijk bepaalt of een tool in de praktijk wordt gebruikt. Ik geloof in deze richting.
Maar ik heb serieuze bedenkingen bij het opzet van de evaluatie.
Ten eerste zijn de ground-truth-labels op de synthetische dataset zelf samengesteld op basis van JET-regels. De anomalieën die werden geïnjecteerd, zijn precies de soorten patronen waarvoor JET's zijn ontworpen. Dus "het LLM presteert beter dan JET" op een JET-gelabelde testset kan deels weerspiegelen dat het LLM leert om dezelfde regels te imiteren op basis van de contextuele statistieken in de prompt, in plaats van er voorbij te generaliseren.
Ten tweede is de Isolation Forest-ablatie op echte data vernietigend op een manier die in het artikel te weinig wordt besproken. F1 daalt van 0,83 naar 0,24 zonder IF-scores. Dit vertelt me dat het LLM primair fungeert als een flexibele drempelwaarde bovenop het IF-signaal, en niet als een onafhankelijke anomaliedetector. Het systeem lijkt meer op een ML-ensemble met een laagje natuurlijke taal dan op een "foundation model dat audit-redeneringen uitvoert".
Ten derde is er slechts één dataset uit de praktijk gebruikt, afkomstig van een enkele industriële partner. De auteurs erkennen dit, maar het betekent dat we de generalisatie over bedrijfsgrootte, boekhoudsysteem of sector niet kunnen beoordelen.
Ten vierde vergelijkt het artikel met JET's en een enkele ML-baseline (Isolation Forest). Op autoencoders gebaseerde anomaliedetectie, XGBoost met geengineerde kenmerken en eenvoudige logistische regressie op IF-scores ontbreken allemaal. Het spectrum van wat hier als "klassieke ML" wordt beschouwd, is smal.
De kwestie van hallucinaties wordt niet behandeld. De auteurs noemen de verklaringen een belangrijke bijdrage, maar er is geen evaluatie van de vraag of de rechtvaardigingen in proza feitelijk juist zijn of consistent zijn met de binaire voorspelling.
Waarom dit belangrijk is voor financiële AI
Dit is het artikel dat het dichtst in de buurt komt van wat Bean Labs aan het bouwen is. Beancount-grootboeken zijn systemen voor dubbel boekhouden. Elke transactie is een set boekingsregels. Anomaliedetectie op die regels — ongebruikelijke rekeningen, bedragen buiten het bereik, onwaarschijnlijke datumpatronen — is een voor de hand liggende eerste functie voor een autonome financiële assistent.
Het resultaat van AuditCopilot suggereert dat de juiste aanpak voor een Beancount-audit waarschijnlijk niet is om "een LLM te prompten met een ruwe transactie en te vragen of deze verdacht is", maar eerder om "een lichtgewicht statistische context te berekenen (rekening-niveaubaselines, temporele distributie, Isolation Forest-scores) en het LLM die verrijkte context te geven." De waarde van het LLM ligt in synthese en uitleg, niet in het ruwe scoren van anomalieën.
De vermindering van fout-positieven is ook direct relevant. Een Beancount-audit-tool die per run 942 kandidaat-anomalieën naar voren haalt, zal worden genegeerd. Een tool die 12 kandidaten met een hoge betrouwbaarheid en uitleg presenteert, zal worden gebruikt. Dat is geen prestatiestatistiek — het is een productstatistiek.
De zorg over de veiligheid bij het terugschrijven (write-back safety), waar ik het meeste om geef, wordt in dit artikel niet behandeld. AuditCopilot leest en markeert alleen; het stelt geen correcties voor en wijzigt het grootboek niet. Dat is de juiste reikwijdte voor een eerste artikel, maar het moeilijke probleem voor Bean Labs blijft: als je eenmaal een gemarkeerde anomalie hebt, hoe beslis je dan veilig wat je eraan gaat doen?
Wat je nu kunt lezen
- Understanding Structured Financial Data with LLMs: A Case Study on Fraud Detection (arXiv:2512.13040, ACL 2026) — introduceert FinFRE-RAG, dat retrieval-augmented in-context voorbeelden toevoegt aan hetzelfde fraudedetectieprobleem en benchmarkt over vier publieke fraude-datasets; pakt direct de beperking van de enkele dataset van AuditCopilot aan.
- Anomaly Detection in Double-entry Bookkeeping Data by Federated Learning System with Non-model Sharing Approach (arXiv:2501.12723) — behandelt de privacybeperking die het samenvoegen van grootboekgegevens van verschillende bedrijven verhindert; de federatieve aanpak is waarschijnlijk noodzakelijk voor elke productie-Beancount-auditdienst die wil trainen op klantgegevens zonder deze te centraliseren.
- GuardAgent: Safeguard LLM Agents by a Guard Agent via Knowledge-Enabled Reasoning (arXiv:2406.09187) — het probleem van veiligheidshandhaving dat AuditCopilot bewust ontwijkt: hoe zorg je ervoor dat een write-back agent, zodra anomalieën zijn gemarkeerd, geen wijzigingen doorvoert die de boekhoudkundige invarianten schenden?
