Van een steekproef van vijfentwintig naar de volledige populatie, met de dekking en de definitie in het dossier

Kennis
Kern in het kort

De internal auditor trekt een deelwaarneming omdat de populatie te groot is om te lezen, terwijl het bronsysteem van elke order, factuur of zaak al heeft vastgelegd wie wat deed, wanneer en in welke volgorde. DIVE reconstrueert daaruit hoe het proces werkelijk liep, legt dat naast het getekende ontwerp met de controls per stap, en toetst de volledige populatie op acht controles. Elke controletest is een record met een versienummer; elke uitvoering legt de populatie, de dekking en een bevroren kopie van de definitie vast, zodat de uitkomst van maart aan de definitie van maart blijft hangen. Een treffer is een indicator en geen bevinding: eerst bevestigen tegen het brondocument, dan pas een bevinding met het bewijsspoor eraan. Deze uitleg laat het model zien van event-log tot auditdossier, met wat de auditor eruit haalt en waar het in de praktijk schuurt.

Een steekproef van vijfentwintig posten zegt iets over die vijfentwintig posten. Het bronsysteem heeft intussen van elke order, factuur of zaak vastgelegd wie wat deed, wanneer en in welke volgorde. DIVE, de process-mining-app van Audirium, reconstrueert uit die vastlegging hoe het proces werkelijk liep, legt dat naast het ontwerp en toetst de volledige populatie op acht controles. Het resultaat is een auditbevinding met het bewijsspoor eraan vast, en pas in tweede instantie een procesplaat.

In het kort

Wat DIVE is, in drie regels.

8
controletoetsen
Functiescheiding, duplicaten, autorisatiedrempel, stamgegeven vóór betaling, tijdvenster, reeksbreuk, aansluiting en Benford
100%
van de populatie
Elke toets draait op de complete export, met daarnaast de dekking: het deel waarover de toets ook echt een oordeel kon vormen
1
bevroren definitie per testrun
Populatie, dekking en de exacte definitie liggen per uitvoering vast, met een versienummer

DIVE is process mining voor internal audit. U laadt een export uit een bronsysteem (ERP, zaaksysteem, servicedesk) en DIVE reconstrueert daaruit welke stappen er zijn gezet, in welke volgorde, hoe lang ze duurden en door wie. Tot zover doet elk process-mining-platform hetzelfde.

Het verschil zit in de laatste stap. DIVE legt de gereconstrueerde praktijk naast het proces zoals het is getekend, inclusief de controls die daar per stap aan hangen, en maakt van het verschil een toets die aan een derde is uit te leggen. De uitkomst luidt dan: deze stap draagt de control Kredietcheck en is in 591 van de 10.000 gevallen overgeslagen. Met de populatie, de dekking en de gebruikte regel erbij, zodat een reviewer het kan narekenen.

Wat er op het bureau van de auditor landt

Vijf plekken waar de deelwaarneming tekortschiet, en één waar de volledige populatie u juist op het verkeerde been zet.

dekking

De steekproef mist precies de uitzondering

Een control die in 591 van de 10.000 gevallen is omzeild, komt in een trekking van veertig dossiers meestal niet boven. Een bankrekening die kort vóór een betaling wijzigt al helemaal niet: dat patroon is met een deelwaarneming vrijwel niet te vinden, en op de volledige populatie een kwestie van seconden.

functiescheiding

Getoetst op rechten, niet op wat er gebeurde

Een rechtenanalyse laat zien wie mág. Zij ziet niet wie het via een noodaccount, rolstapeling of vervanging feitelijk deed. Juist die routes zijn de interessante.

herhaalbaarheid

Vorige maand is geen bewijs voor deze maand

Wordt de mandaatgrens tussentijds aangepast, dan schuift de uitkomst van maart stilzwijgend mee naar de nieuwe definitie. Zonder versiebeheer op de toets zelf is niet meer te zeggen waartegen er toen is getoetst.

bronsysteem

Het event-log moet eerst worden opgediept

Drie velden zijn verplicht: een case-id, een activiteit en een tijdstip mét tijd. Een grootboekexport met alleen een boekstukdatum is niet genoeg, want dan is de volgorde binnen een dag onbepaald. Wat elk Nederlands bronsysteem wel en niet levert, staat verderop.

datakwaliteit

Een administratie met gaten is zelf een bevinding

Ontbrekende case-id's, onleesbare tijdstempels, duplicaten, batchboekingen, zaken met één enkele stap. Een export waarin 8% van de regels geen case-id heeft, verdient een eigen zin in het rapport, niet een stilzwijgende correctie.

uitzonderingen

Niet elke afwijking is een fout

Een offerte die getekend teruggaat ter aanpassing is herstelwerk, geen omzeilde control. Raakt een signaal meer dan 80% van de zaken, dan is het de norm en geen afwijking. Maakt de tool dat onderscheid niet, dan levert een toets op de volledige populatie ook de volledige populatie aan ruis op.

Dat laatste is de reden dat een grotere dekking niet vanzelf meer zekerheid oplevert. Een lijst met vierduizend treffers is geen werkplan, en een treffer die een reviewer niet kan navertellen is in een dossier minder waard dan een steekproef die dat wel kan. De vraag is dus tweeledig: hoe u van vijfentwintig naar alles komt, en hoe u daarna van alles terug naar de twintig zaken komt die er werkelijk toe doen, zonder dat er onderweg iets uit het dossier verdwijnt.

Het principe: de toets als vastgelegd gegeven

Een verkennende analyse is een knop: u wijst een kolom aan, u krijgt een uitkomst, en na het sluiten van het scherm is er niets bewaard. Voor een verkenning is dat precies goed. Voor de vraag welke controls heb ik dit kwartaal op de volledige populatie getoetst, en met welke grenswaarde is het te weinig.

Een controletest in DIVE is daarom een record: een naam, een soort, de parameters, een verwijzing naar de control in het normenkader, een gewicht van 1 tot 5, en een versienummer. Elke uitvoering laat een testrun achter met de populatieomvang, hoeveel daarvan te beoordelen was, de dekking, de vingerafdruk van de bronkolommen en een bevroren kopie van de definitie zoals die op dat moment gold. Past u een grenswaarde aan, dan telt de versie op en blijft de uitkomst van maart aan de definitie van maart hangen. Verandert u alleen de naam, dan telt hij niet op, want dat verschuift de uitkomst niet.

Populatie en dekking zijn niet hetzelfde. Naast de populatie staat overal het deel van de zaken waarover de toets een oordeel kón vormen. Bij een drempeltoets valt een zaak zonder leesbaar bedrag daarbuiten, bij functiescheiding een zaak zonder vastgelegde uitvoerder. Dat verschil stil weglaten zou de dekking mooier maken dan ze is, en juist dat getal is waarmee "wij hebben alles getoetst" staat of valt.

Hetzelfde principe loopt door de rest van de app. Een treffer is een indicator en geen bevinding; DIVE dwingt de volgorde af: eerst bevestigen tegen het brondocument of afvoeren als foutpositief, pas daarna kan er een bevinding van worden gemaakt. Een verkenning (wat gebeurt er met de uitkomst als de norm ergens anders lag) krijgt een eigen kaart met een gestreepte rand en het merk verkenning, geen uitgevoerde toets, legt geen uitvoering vast en zet geen enkele treffer in de werkvoorraad. In een auditdossier is dat het verschil tussen een bevinding en een gedachte-experiment.

Het model eronder

Zes lagen. Elke laag rekent op de vorige, en niets wordt achteraf overgetypt.

Laag
Wat erin zit
Wat eruit komt
Event-logde export, ingelezen
CSV, TSV of Excel tot 10 GB, in blokken van 8 MB verstuurd en te hervatten na een afgebroken poging. Kolommen wijst u toe; DIVE doet een voorstel op naam en meet elk datumformaat op de echte waarden, zodat u zelf ziet of 03-04 maart of april is. De uitvoerder wordt bij import onomkeerbaar gepseudonimiseerd, wat u niet toewijst wordt niet opgeslagen, en het ruwe bestand verdwijnt zodra de log staat.
LevertEen vaste event-log per dataset, met een datakwaliteitsrapport en de SHA-256 van de bronexport in het dossier.
▼  elke vraag begint met een afbakening, ook als die leeg is
Afbakeningde filterstapel
Zes filtersoorten, stapelbaar in elke volgorde: tijdvenster, attribuut, begin en eind, prestatie, volgorde en variant. De volgorde is echt een volgorde: elk filter kijkt naar wat het vorige overliet en draagt zijn eigen dekking (hoeveel zaken erin gingen, hoeveel eruit kwamen). Een filter dat op deze export niet kan draaien, wordt getoond als niet toegepast, in plaats van stilzwijgend overgeslagen.
LevertEén populatie waarover elk cijfer daarna gaat, zichtbaar in een balk boven elk scherm, en als regel in het dossier zodra u hem vastlegt.
▼  ontdekt uit de gebeurtenissen, niet uit een tekening
Analysehoe het proces liep
Procesontdekking met knopen op frequentie en pijlen op wachttijd, varianten met paretocurve, doorlooptijd (mediaan, 90e percentiel, overgedaan werk, desgewenst in werkdagen), functiescheiding op wat er feitelijk gebeurde, overdrachten tussen gepseudonimiseerde uitvoerders, en de vier statistische toetsen die in elk auditprogramma staan: Benford, duplicaten, hiaten en stratificatie.
LevertElk getal is een ingang: klik erop en de zaken eronder schuiven open, tot aan het volledige verloop van één case.
▼  de praktijk naast het ontwerp
Toetsingafwijking van de norm
Naleving van een procesdiagram uit Flowmap: control omzeild, ongetekend pad, dood pad. De acht controletoetsen als vastgelegde records met testruns. En een regelgebaseerde risicoscore per zaak die de signalen stapelt die DIVE toch al meet, met bij elke zaak in woorden waarom hij scoort.
LevertTreffers, gerangschikt op een score van 0 tot 100 die u kunt navertellen, in één werkvoorraad.
▼  eerst bevestigen, dan pas een bevinding
Opvolgingbevinding en actie
Een bevestigde treffer wordt een bevinding met het bewijsspoor eraan: dataset, periode, aantal events, het gemeten aantal en de gebruikte regel. Elke bevinding kan acties krijgen met eigenaar, termijn en prioriteit; de status van de bevinding volgt uit die acties. De laag eronder is dezelfde gedeelde kern die GRIP gebruikt, geen eigen statusmodel.
LevertEen bevindingenlijst per organisatie, los van één export: een bevinding uit maart blijft staan als u in april met andere data werkt.
▼  de vraag die drie jaar later komt
Dossierwat er gebeurd is
Van elke bewerking een bevroren regel: wat erin ging en wat eruit kwam, met de versie van DIVE en van de rekenmotor. Export als Excel-werkboek (alles, blad per onderdeel), PDF (samenvatting voorop, lange lijsten afgekapt met vermelding hoeveel er niet is afgedrukt) of JSON. Daarnaast de auditcomité-samenvatting, die niets herrekent maar de bewaarde uitkomsten leest.
LevertHet antwoord op waar kwam die 5,9% vandaan, inclusief wat er niet is gemeten.

De rekenmotor is DuckDB met de event-log als Parquet-bestand; de rekenkern is zelf gebouwd, zonder externe process-mining-bibliotheek. Een procesgraaf over vijf miljoen events kost ongeveer een derde seconde. Data staat per organisatie gescheiden, zoals bij elke app in de suite.

Wat de auditor eruit haalt

Wat u in het rapport zet, en wat u erbij moet zeggen.

acht toetsen

De toets die het verschil laat zien

Stamgegeven vóór betaling vindt een stamgegeven dat binnen N dagen vóór een betaling wijzigt, in dezelfde zaak. Daarnaast: functiescheiding, duplicaten op een of meer attributen, een bedrag boven de mandaatgrens zonder fiatteringsstap, boekingen buiten kantooruren of na de periodeafsluiting, ontbrekende nummers in een reeks, de aansluiting op een controletotaal, en Benford, hier als uitzonderingen boven de 95%-grens en nadrukkelijk als attentiesignaal, niet als bewijs.

rangschikking

Een score die u kunt navertellen

Elke uitzondering krijgt 0 tot 100 punten uit vier componenten: financieel belang (tot 40), mate van afwijking binnen de eigen soort (tot 25), herhaling bij dezelfde betrokkene (tot 15) en het gewicht van de control (tot 20). Elke component staat in woorden bij de treffer, want in het wederhoor moet u kunnen uitleggen waarom deze uitzondering boven die andere staat.

naleving

Control omzeild, in aantal en in beeld

Tegen het diagram meldt DIVE drie soorten afwijking: een overgeslagen stap die een control draagt (met naam, type en eigenaar van die control), een overgang die in de data voorkomt maar niet is getekend, en een getekende overgang die in de data niet voorkomt. Het ruimtelijke beeld legt de tekening plat en hangt de werkelijke paden erboven: een boog die over een poort heen gaat, is letterlijk een omzeilde control.

periode tegen periode

Niet gemeten is niet nul

Twee exports naast elkaar, met eerst een vergelijkbaarheidstoets: overlappende perioden, een fors verschillende lengte, een gat ertussen, andere bronkolommen. Een functiescheidingsregel die in de tweede ronde niet is teruggezet blijft leeg, met de aanwijzing om het recept toe te passen. Onderaan het verloop over alle ronden, want twee punten zijn een verschil en pas een lijn laat zien of een verbetering standhoudt.

verkenningen

Wat als de norm anders lag

De gevoeligheidsanalyse rekent dezelfde toets door op een reeks grenzen rond de vastgestelde norm, zodat u ziet of een bevinding aan de norm hangt of daar los van staat. De droogloop laat een nieuwe definitie eerst zien wat hij oplevert, inclusief hoeveel van die treffers het team al eerder als geen bevinding beoordeelde. Steekproefprecisie zet attribute sampling en monetary unit sampling naast elkaar, met de scheefheid van de populatie als reden voor het advies. Alle vier dragen het merk verkenning en tellen niet mee als uitgevoerde toets.

deelwaarneming

Een steekproef die een reviewer kan herhalen

Ook op een volledige populatie wilt u een aantal gevallen in het bronsysteem nakijken. DIVE trekt aselect of monetair, uit alle zaken of uit de treffers, en legt de seed vast in het dossier. Met dezelfde seed, populatie en methode krijgt een reviewer exact dezelfde zaken terug.

De auditcomité-samenvatting levert het onderzoek in de vorm waarin het op een vergaderagenda kan: wat is onderzocht, wat is aangetroffen, waarop is getoetst en waarop niet, wat eraan gebeurt, en het verschil met de vorige ronde. Elke zin volgt uit een getal en een vaste drempel; er gaat geen data naar een taalmodel, ook niet om er mooiere zinnen van te maken. Het voorbehoud is een eigen sectie en geen voetnoot: analyses die niet gedraaid zijn, een dekking onder de honderd procent (met de zin dat die zaken ongetoetst zijn gebleven), een actieve afbakening, records die bij de import afvielen.

Wat de bronsystemen leveren

Elke CSV of Excel werkt, maar niet elk systeem legt genoeg vast voor process mining. De stand van zaken voor Nederlandse praktijksystemen, uit de documentatie:

SysteemBruikbaarToelichting
Gemeentelijke zaaksystemen (ZGW)jaDe VNG-standaard kent een audittrail met gebruiker, actie en tijdstip per zaak. Sommige installaties draaien nog op de oudere ZDS-standaard.
Dynamics 365 Business CentraljaAudit-systeemvelden op elke tabel plus de Change Log met gebruiker, datum en tijd.
TOPdeskjaProgress trail per incident of change.
AFAS ProfitwaarschijnlijkGetConnectors zijn flexibel genoeg; of workflowstappen tijd én medewerker bevatten, is per omgeving te bepalen.
Exact Online, TwinfieldbeperktAlleen aanmaak- en wijzigingsmomenten per record, geen statushistorie. Eén event per boeking.
SAPvia extractCDHDR/CDPOS is de rijkste auditbron die er is, maar levert een extract, geen koppeling.

Hoe het in de praktijk loopt

Van export tot bevinding, en van bevinding tot de volgende export.

  1. Export inlezen

    Sleep de export naar binnen. DIVE stelt de kolommen voor op naam en toont per mogelijk datumformaat het parse-percentage en het datumbereik op de echte waarden; u bevestigt. Dit is de plek waar process-mining-analyses het vaakst stilletjes misgaan, dus hier is het expliciet.

  2. Datakwaliteit beoordelen

    Vóór er iets wordt berekend ziet u wat er niet klopt: ontbrekende case-id's, onleesbare tijdstempels, duplicaten, batchboekingen, zaken met één stap. Dat rapport gaat mee het dossier in. Beslis hier of de export bruikbaar is en wat u erover in het rapport zet.

  3. Analyseren en afbakenen

    Procesontdekking, varianten, doorlooptijd, functiescheiding en overdrachten op de volledige populatie. Baken af met de filterstapel; wat u intikt is een concept tot u het vastlegt, zodat u kunt uitproberen zonder dat er een dossierregel ontstaat waar u nooit een conclusie op baseert.

  4. Toetsen tegen het ontwerp

    Koppel een diagram uit Flowmap. DIVE stelt op naamgelijkenis voor welke log-activiteit bij welke processtap hoort; die koppeling bevestigt u zelf, want een verkeerde koppeling levert een keurig ogende maar onjuiste bevinding op. Daarna: omzeilde controls, ongetekende paden, dode paden.

  5. Controletesten vastleggen en draaien

    Leg per control een toets vast met parameters, gewicht en verwijzing naar het normenkader, eventueel na een droogloop. Elke uitvoering is een testrun met populatie, dekking en bevroren definitie. Draait u opnieuw, dan verdwijnen alleen de nog niet beoordeelde treffers; wat u al afvinkte blijft.

  6. Valideren, bevinding, actie

    Bevestig een treffer tegen het brondocument, via een deeplink naar het record in uw bronsysteem (DIVE bewaart dan geen enkel document) of een gekoppeld stuk. Pas daarna wordt het een bevinding, met bewijsspoor, en krijgt ze acties met eigenaar en termijn.

  7. Vastleggen als recept

    Staat de analyse zoals u hem volgende keer weer wilt, leg de parameters dan vast bij het bronsysteem. De export van volgende maand wordt herkend aan de vingerafdruk van de kolomnamen. Toepassen gaat nooit blind: eerst een droogloop met per onderdeel past, past gedeeltelijk of kan niet, en wat niet kan wordt in het uitvoerverslag benoemd. Een periodefilter gaat bewust niet mee.

Praktisch

De vragen die meestal als tweede komen.

  • Gehost in de Europese Unie. Op eigen servers bij Hetzner in Neurenberg, Duitsland. Data staat per organisatie gescheiden opgeslagen.
  • Geen klantgegeven verlaat de server. Er gaat geen celwaarde, zaak, bedrag of naam uit deze app naar een externe dienst of naar een taalmodel. Geen enkel cijfer, oordeel of conclusie komt uit een model: de analyses, scores en dekkingspercentages rekenen op vaste regels en geven op dezelfde data morgen dezelfde uitkomst.
  • Privacy by design. Het uitvoerder-veld wordt bij import gepseudonimiseerd met een salt per dataset, de koppeling terug wordt niet bewaard, en wat u niet toewijst wordt niet opgeslagen. Is voor het wederhoor een identiteit nodig, dan gaat die vraag naar de beheerder van het bronsysteem; DIVE legt het verzoek vast. Een event-log met een uitvoerder-veld raakt de medezeggenschap; de app is zo gebouwd dat dat gesprek makkelijker wordt, niet moeilijker.
  • Herleidbaar tot GIAS-standaard 14.1. Informatie is pas toereikend als een deskundige derde het werk kan herhalen en tot dezelfde conclusie komt. Het auditdossier exporteert precies dat: kolomtoewijzing, datakwaliteitsrapport, de beoordeling van elke treffer, de seed van elke steekproef en de hash van de bronexport.
  • Grote exports. Tot 10 GB per bestand, hervatbaar, met een schijfruimtetoets vooraf. Een log van tientallen miljoenen events wordt één keer doorgerekend en daarna uit de bewaarde uitkomsten gelezen.
  • Nederlands en Engels. De schil is tweetalig en volgt uw voorkeur in de hele suite. Uw eigen inhoud (activiteitnamen, bevindingsteksten) blijft zoals u hem invoert; enkele door de server gevormde zinnen, zoals filterbeschrijvingen, staan op dit moment nog alleen in het Nederlands.

Waar het nu staat. DIVE staat sinds augustus 2026 in beta: in gebruik met echte data, door een beperkte groep organisaties met een rol op de app, en nog niet algemeen beschikbaar. De kern (inlezen, analyse, naleving, de acht controletoetsen, dossier en recepten) staat; de verkenningen zijn van eind augustus 2026 en dus jonger. Dat zeg ik liever vooraf dan dat u het onderweg ontdekt. Wat er bewust níet in zit: task mining op werkplekniveau, voorspelling van de restduur van lopende zaken, en een AI-assistent die vragen beantwoordt of conceptbevindingen schrijft. Voor dat laatste geldt een aparte afweging die nog niet is gemaakt, en zolang die uitblijft, komt er geen enkel cijfer uit een model.

Terug naar Kennis