Tag: data-analyse

  • DataChat

    DataChat in Bank Statement Analyser en AuditFile Converter and Analyser

    Stel een vraag aan uw financiële data in gewone taal. DataChat vertaalt deze gecontroleerd naar een analyse.

    Met de nieuwe DataChat-functie in Bank Statement Analyser en AuditFile Converter wordt het eenvoudiger om grote hoeveelheden financiële gegevens te analyseren.

    In plaats van zelf een SQL-query samen te stellen of door grote aantallen transacties en auditfilegegevens te zoeken, kunt u een vraag in gewone taal stellen.

    Bijvoorbeeld:

    • Welke leveranciers hebben dit jaar de hoogste bedragen ontvangen?
    • Welke boekingen zijn in het weekend gedaan?
    • Welke grootboekrekeningen zijn nog niet gemapt?
    • Vergelijk de saldi per mapping met vorig jaar.
    • Welke relaties komen met meerdere bankrekeningen voor?
    • Toon de grootste mutaties ten opzichte van het vorige boekjaar.
    • Welke salariscomponenten hebben de hoogste totale waarde?
    • Zijn er werknemers met meerdere inkomstenverhoudingen?

    DataChat vertaalt zo’n vraag naar een gecontroleerde SQLite-query en toont het resultaat vervolgens binnen de bekende analyseomgeving.

    Van vraag naar controleerbare analyse

    DataChat is nadrukkelijk niet ontworpen om zelfstandig wijzigingen in financiële gegevens uit te voeren.

    De AI krijgt informatie over de beschikbare databasestructuur, zoals de relevante tabellen, kolommen en onderlinge relaties. Op basis daarvan wordt één analysequery voorgesteld.

    Daarbij gelden strikte regels.

    DataChat mag uitsluitend SELECT-query’s genereren. Bewerkingen zoals INSERT, UPDATE, DELETE, DROP, ALTER en CREATE zijn niet toegestaan.

    De gegenereerde SQL wordt bovendien door de applicatie gecontroleerd voordat deze wordt uitgevoerd.

    Dat betekent dat de gebruiker de kracht van natuurlijke taal kan combineren met een technisch afgebakende en reproduceerbare analyse.

    Geen black box: de SQL blijft zichtbaar

    Een belangrijk uitgangspunt bij de ontwikkeling van DataChat is dat een analyse controleerbaar moet blijven.

    Daarom bestaat een antwoord niet alleen uit een tabel met uitkomsten. DataChat levert onder andere:

    • een titel van de analyse;
    • de gegenereerde SQL-query;
    • een korte uitleg van de analyse;
    • eventuele aannames;
    • waarschuwingen wanneer die relevant zijn.

    De gebruikte SQL kan worden bekeken en gekopieerd voor verdere beoordeling.

    Voor accountants, auditors en andere financiële professionals is dat belangrijk. Een antwoord van AI moet immers niet alleen handig zijn, maar ook te herleiden zijn naar de onderliggende gegevens en selectielogica.

    DataChat voor Bank Statement Analyser

    Binnen Bank Statement Analyser kan DataChat vragen beantwoorden over onder meer:

    • banktransacties;
    • tegenpartijen;
    • IBAN’s en BIC’s;
    • ontvangsten en betalingen;
    • boekings- en valutadata;
    • betalingsomschrijvingen;
    • saldi;
    • afwijkende transacties;

    Een gebruiker hoeft bijvoorbeeld niet meer zelf een complexe query te schrijven om alle transacties van een bepaalde tegenpartij te vinden of transacties met specifieke kenmerken te combineren.

    Een gewone vraag kan voldoende zijn.

    DataChat voor AuditFile Converter

    Ook AuditFile Converter krijgt DataChat-functionaliteit.

    Daarbij kan DataChat analyses uitvoeren op onder andere:

    • grootboekrekeningen;
    • dagboeken;
    • transactieregels;
    • klanten en leveranciers;
    • adressen en bankrekeningen;
    • kolommenbalansen;
    • mappings;
    • huidige en voorgaande boekjaarsaldi.

    Wanneer aanvullende analysegegevens beschikbaar zijn, kunnen ook deze bij de analyse worden betrokken.

    CaseWare- en rapportagemapping

    Wanneer een auditfile is voorzien van mappings, kan DataChat deze gebruiken voor analyses per rapportagerubriek of mappinggroep.

    Hiermee worden bijvoorbeeld vragen mogelijk als:

    “Welke mappinggroepen laten de grootste afwijking zien ten opzichte van vorig jaar?”

    of:

    “Welke grootboekrekeningen met een saldo zijn nog niet gemapt?”

    Wanneer aanvullende mappinginformatie uit een afzonderlijke database nodig is, bepaalt de applicatie zelf of deze database veilig moet worden gekoppeld. De AI krijgt daarbij geen toegang tot databasepaden, wachtwoorden of encryptiesleutels.

    Risicoanalyse met gewone taal

    Wanneer in AuditFile Converter and Analyser de risicoclassificatie van transactieregels is uitgevoerd, kan DataChat ook deze informatie gebruiken.

    Denk aan vragen als:

    • Toon de transacties met de hoogste risicoscore.
    • Welke boekingen zijn op feestdagen uitgevoerd?
    • Geef alle transacties met opvallend ronde bedragen.
    • Welke transacties bevatten opvallende zoekwoorden?
    • Welke grootboekrekeningen hebben relatief veel risicosignalen?
    • Toon transacties die zowel in het weekend zijn geboekt als een hoge afwijkingsscore hebben.

    Ook hier is een risicosignaal nadrukkelijk geen conclusie dat een transactie fout of frauduleus is. Het is een hulpmiddel om transacties voor nadere beoordeling te selecteren.

    Dat onderscheid is binnen audit- en analysewerk essentieel.

    Ook voor de Salaris Auditfile

    DataChat kan daarnaast worden gebruikt voor gegevens uit een Salaris Auditfile.

    Hiermee kunnen analyses worden uitgevoerd op onder meer:

    • werknemers;
    • inkomstenverhoudingen;
    • loontijdvakken;
    • looncomponenten;
    • urenregistraties;
    • grondslagen;
    • premies;
    • auto’s van de zaak;
    • cao- en sectorinformatie.

    Bij salarisgegevens speelt privacy vanzelfsprekend een nog grotere rol. Daarom is juist hier gekozen voor een ontwerp waarbij niet méér persoonsgegevens worden gebruikt of weergegeven dan voor de betreffende analyse noodzakelijk is.

    AVG en privacy by design

    Bij de ontwikkeling van DataChat is privacy by design een belangrijk uitgangspunt.

    Bankafschriften, financiële administraties en Salaris Auditfiles kunnen immers persoonsgegevens en andere vertrouwelijke gegevens bevatten.

    Daarom wordt niet simpelweg een volledige database naar een AI-model gestuurd.

    DataChat werkt vanuit een gecontroleerde opzet waarbij de AI in beginsel informatie krijgt over de structuur en betekenis van de gegevens en over de vraag die moet worden vertaald naar een analyse.

    De daadwerkelijke SQL-query wordt vervolgens binnen de applicatie op de lokale database uitgevoerd.

    Alleen-lezen

    DataChat is ontworpen als analysefunctie.

    De gegenereerde query mag gegevens lezen, maar niet wijzigen.

    De applicatie staat daarom alleen gecontroleerde SELECT– en WITH ... SELECT-query’s toe.

    De AI kan geen transacties aanpassen, stamgegevens wijzigen of tabellen verwijderen.

    Databasegegevens blijven onder controle van de applicatie

    Externe databases, bijvoorbeeld een database met centrale mappings, worden niet door de AI zelf geopend.

    Wanneer zo’n database voor een query nodig is, kan DataChat dit in het gestructureerde antwoord aangeven. De applicatie bepaalt vervolgens zelf of de bekende database wordt gekoppeld.

    Bestandspaden, databasewachtwoorden en encryptiesleutels worden daarbij niet onderdeel van de AI-opdracht.

    Menselijke beoordeling blijft belangrijk

    AI kan een analyse versnellen, maar neemt de professionele beoordeling niet over.

    Een statistisch afwijkende transactie kan volledig legitiem zijn. Een weekendboeking kan afkomstig zijn van een automatische verwerking. Een hoog bedrag kan uitzonderlijk maar correct zijn.

    DataChat helpt daarom vooral bij:

    vinden, selecteren, combineren, samenvatten en onderzoeken.

    De uiteindelijke interpretatie blijft bij de gebruiker.

    Queryhistorie

    Om analyses gemakkelijker opnieuw te gebruiken krijgt DataChat ook een historie.

    Per uitgevoerde analyse kunnen onder andere de vraag, titel, SQL-query, datum en toelichting worden bewaard.

    Queries kunnen worden vastgezet wanneer zij ook in volgende sessies beschikbaar moeten blijven.

    Een opgeslagen query kan vervolgens opnieuw worden uitgevoerd, ook op een andere ingelezen auditfile.

    Dat maakt het bijvoorbeeld mogelijk om een interessante controle die bij administratie A is ontwikkeld later zonder opnieuw programmeren ook toe te passen op administratie B.

    De SQL blijft daarbij zichtbaar, zodat steeds duidelijk is welke selectie wordt uitgevoerd.

    AI als analysehulpmiddel, niet als vervanging van controle

    DataChat past in de manier waarop wij AI binnen onze software willen inzetten: niet als ondoorzichtige beslisser, maar als hulpmiddel bovenop bestaande, controleerbare functionaliteit.

    De gebruiker stelt de vraag.

    AI helpt deze vraag om te zetten naar een technische analyse.

    De applicatie bewaakt wat er uitgevoerd mag worden.

    De database levert het resultaat.

    En de gebruiker beoordeelt de uitkomst.

    Daarmee combineren Bank Statement Analyser en AuditFile Converter de snelheid en toegankelijkheid van generatieve AI met de controleerbaarheid die bij financiële analyse en audit noodzakelijk blijft.

    DataChat wordt onderdeel van Bank Statement Analyser en AuditFile Converter.

    Hiervoor is wel een nieuwe licentie nodig. Neem contact op als u hiervan gebruik wilt maken.

  • Externe kolommenbalans inlezen in AFC

    Vanaf versie 2.15 van de Auditfile Converter and Analyser (AFC) kun je nu ook eenvoudig een externe kolommenbalans importeren, inclusief bestaande mapping.

    Dit is met name handig wanneer je werkt met tools zoals Caseware Working Papers, waarbij de mapping naar jaarrekeningposten vaak al aanwezig is.

    In deze blog gaan we uitwerken hoe je dergelijke kolommenbalans kunt exporteren uit Caseware Working Papers en vervolgens kunt inlezen in de AFC.

    Hoe werkt het?

    Stap 1: Exporteer je kolommenbalans

    Vanuit bijvoorbeeld Caseware exporteer je:

    • Rekeningnummer
    • Omschrijving
    • Mapping (bijv. jaarrekeningpost)
    • Saldo huidig jaar
    • Saldo vorig jaar

    Ga naar saldibalans. Vervolgens rechtermuisklik (Alles selecteren) en vervolgens Kopiëren. Plak alles in een Excel bestand:

    Eventueel kun je kolommen die niet van belang zijn verwijderen, zodat je zo iets krijgt:

    Stap 2: Importeer in Auditfile Converter & Analyser

    Ga naar:

    👉 Analyse → Externe kolommenbalans → import/edit

    Het scherm voor de import en bewerking van kolommenbalansen ziet er als volgt uit:

    1. Hier kun je kiezen bij meerdere entiteiten / jaren welke entiteit / welk jaar wordt ingelezen. Ook kun je kiezen voor het mapping soort. Standaard is mapping soort van Caseware toegevoegd.
    2. Hiermee kun je de kolommenbalans selecteren om in te lezen
    3. Hiermee kun je na inlezen de voorloopnullen toevoegen voor de rekeningnummers
    4. Geeft na inlezen aan of debet/credit in evenwicht zijn
    5. Hiermee kun je zelf op hoofdlijnen mappen door rekeningen naar de juiste mapping te slepen.

    We kiezen nu voor import KOBA. Je krijgt na selecteren van excel bestand met mapping en cijfers gelijk een pop-up:

    Stap 3: Kolommen koppelen

    We moeten gaan aangeven welke rijen niet moeten worden ingelezen en wat de kolommen betekenen.

    Bijvoorbeeld de eerste rij bevat de kolomnamen welke we zelf hebben toegevoegd. Deze willen we niet inlezen. Deze kun je uitvinken:

    Vervolgens moet het programma weten wat iedere relevante kolom betekend. Middels rechtermuisklik binnen de data wordt de kolom groen en krijg je een keuze menu waarmee je kunt aangeven wat de betreffende kolom betekend:

    • accID → rekeningnummer
    • accDesc → omschrijving
    • CUSTOMmap1 → mapping
    • AmtCurrent → huidig jaar
    • AmtPrevious → vorig jaar

    Bij deze kolommenbalans zouden dan de kolommen als volg aangegeven moeten zijn:

    Stap 4: Controle & aanvulling

    Na import:

    • Controle op totalen (huidig jaar / vorig jaar)
    • Mogelijkheid om:
      • voorloopnullen toe te voegen
      • bedragen te schalen (bijv. x 1.000

    In dit geval zien we dat de voorloopnullen zijn weggevallen terwijl die zo wel in de auditfile zelf staan. Om te zorgen dat deze rekeningen correct worden gematched gaan we de voorloopnullen toevoegen.

    Voorloopnullen toevoegen doen we door de betreffende knop te kiezen. je krijgt dan een pop-up waarin je het aantal tekens waaruit een grootboekrekening is opgebouwd kunt ingeven. in dit geval 4.

    Na op OK drukken hebben alle grootboekrekeningen weer voorloopnullen:

    Analyses

    Nadat de externe kolommenbalans is ingelezen kunnen diverse aanvullende analyses worden uitgevoerd:

    O.a. Externe kolommenbalans vergelijken met de mutaties op basis auditfile (aansluiting kolommenbalans op auditfile), Cijfers voorgaand jaar kolommenbalans met beginbalans (aansluiting beginbalans) en daarnaast overzichten per jaarrekeningpost op basis van de mapping. In deze blog laten we twee van deze analyses zien.

    Mapping

    Allereerst laten we de mapping overzicht zien: Na het kiezen van mapping views krijg je eerst een pop-up met op welk niveau je de mappen view wilt hebben. Hoe hoger het niveau hoe meer detail. Voor meestal is niveau 2 al voldoende diepgaand.

    Vervolgens krijg een overview per mapping van aantal transacties en het saldo. Met dubbelklikken op een Mapping code ga je naar de onderliggende mutaties:

    Aansluiting beginbalans

    Een andere analyse welke wordt uitgewerkt betreft de aansluiting beginbalans. Na kiezen ‘Kolommenbalans VJ met beginbalans’ krijg je eerst een pop-up om beginbalans periode te selecteren. Meestal periode 0 of 00. In die gevallen zal de periode al goed staan. Soms moet periode handmatig gekozen worden.

    In overzicht kun je snel zien waar er waar er afwijkingen zitten tussen beginstanden en de eindbalans van het voorgaande jaar. Ook kun je afwijkende omschrijvingen zien.

    Resume

    De toevoeging van inlezen externe kolommenbalans inclusief mappings biedt nieuwe analyse mogelijkheden een ook meer eenvoud om dataset te maken van bepaalde jaarrekeningpost. Zie ook separate blog inzake automatische exports waar deze aansluitingen en ook exports per mapping van de transacties aanbod komen.

  • CPI-index analyse + slimmer werken vanuit de proefsaldibalans

    Met versie 2.15 van de Auditfile Converter and Analyser introduceren we feature om eenvoudiger een CPI-index analyse uit te voeren. Daarnaast laten we ook gelijk een nieuwe feature zien om relatie (custSupID) te koppelen aan een transactieregel als deze daar niet al aan gekoppeld is.

    De Corruption Perceptions Index (CPI), gepubliceerd door Transparency International, geeft een indicatie van het corruptieniveau binnen landen. Hoe lager de score, hoe hoger het waargenomen corruptierisico.

    In deze blog werken we uit hoe je van de omzet transacties een overzicht per transactie en per land kan maken van de bijbehorende CPI index. We gaan in deze blog uit van dat er geen mapping is gekoppeld aan de grootboekrekeningen (zie daarvoor apart blog, gebruik van mappings) en de grootboekrekeningen gerelateerd aan de omzet zelf geselecteerd moeten worden.

    Omzettransacties vanuit de proefsaldibalans

    Je kunt meerdere grootboekrekeningen tegelijk selecteren in de proefsaldi en direct de onderliggende transacties openen.

    Hoe werkt het:

    1. Open de proef- en saldibalans
    2. Selecteer meerdere regels (bijv. alle omzetrekeningen)
    3. Rechtermuisklik op accID
    4. Kies: “Toon grootboekdetails”

    Vervolgens worden alle grootboekmutaties van de geselecteerde rekeningen getoond:

    Wat opvalt is dat de relatiecode niet gekoppeld is aan de regels welke we hier zien van onze omzetselectie. Dit komt doordat de meeste boekhoudpakketten / ERP omgevingen de relatie alleen koppelen aan de debiteuren respectievelijk crediteurenrekening in een boeking.

    Toevoegen relatie aan alle boekingen

    Om te zorgen dat we wel de relatie aan de transactie kunnen koppelen kun je middels rechtermuisklik (op willekeurige) kolom kiezen voor:

    Voeg kolom toe:

    • custSupID
    • eventueel custSupName en/of custSupTp

    ➡️ De software haalt deze nu automatisch correct op vanuit de onderliggende data.

    💡 Dit is essentieel: zonder correcte relatie-ID kan er geen land en dus geen CPI-score gekoppeld worden.

    Eventueel kun je de ‘lege’ custSupId verwijderen met ‘Kolom’ verwijderen. nu zijn wel overal de relaties zichtbaar aan iedere verkooptransactie (o.b.v. factuur):

    Vervolgens voegen we de Country toe:

    CPI-index toevoegen

    Nadat de country is toegevoegd komen er aanvullende functies bij:

    Je kunt kiezen uit relevante CPI-Index afhankelijk van het jaar waar je mee bezig bent. Je kunt eventueel ook landnaam toevoegen.

    Na toevoegen krijg je per transactie de CPI-score te zien:

    Als alternatief kun je ook eerst een draaitabel maken op ‘Country’ en daarna CPI-index toevoegen.

    Een draaitabel maak je in dit geval door middels rechtermuisklik op de kolom ‘Country’ voor draaitabel te kiezen:

    Na toevoegen CPI-index kolom krijg je dan een samenvattend overzicht*:

    *Vaticaanstad (VA) welke in deze voorbeeld auditfile zit heeft geen CPI-score.

    Samenvattend

    Met versie 2.15 zet je een verdere stap richting data-driven auditing:

    ✔ Verrijking transactieregels
    ✔ Integratie van CPI-index
    ✔ Direct analyseerbaar via draaitabellen

  • Risicoclassificatie binnen auditfiles

    Vanaf versie 2.15 hebben we een krachtige nieuwe analysemogelijkheid toegevoegd aan de Auditfile Converter and Analyser: risicoclassificatie van transacties. Deze functionaliteit helpt om sneller inzicht te krijgen in opvallende boekingen en potentiële risico’s binnen een administratie.

    Deze functionaliteit is te bereiken via menu analyse en vervolgens risicoclassificatie:

    De kracht van deze functionaliteit zit in de flexibiliteit. Gebruikers kunnen zelf bepalen:

    • Welke controles (flags) worden uitgevoerd
      Denk aan:
      • Z-score (statistische afwijkingen op basis andere transacties op de grootboekrekening waar deze op geboekt is)
      • Ronde bedragen (dus bijvoorbeeld veelvouden van 1.000)
      • Weekend-boekingen (datum boeking is in het weekend)
      • Boekingen op feestdagen (datum boeking is op een feestdag)
      • Handmatige journaalposten (vanaf een memoriaal dagboek)
      • Afwijkende tekens (sign anomalies*)
      • Specifieke zoekwoorden in omschrijvingen
    • Welke score aan elke flag wordt toegekend

    * sign anomalies: in oorspronkelijke auditfile stond het bedrag met een min-teken (-). Bijvoorbeeld een verkoopfactuur welke als -1.000 is ingegeven in plaats van als creditfactuur geboekt.

    Hiermee stel je eenvoudig je eigen risicomodel samen, afgestemd op jouw controleaanpak of sector.

    Bij het menu ‘Risicoclassificatie’ berekenen krijg je een pop-up waar je kunt instellen welke tests uitgevoerd moeten worden en welke scores daaraan gekoppeld moet worden. Bij de Z-score zijn er drie gradaties afhankelijk van mate statistische afwijking ten opzichte van de andere transacties binnen de populatie (transacties op bepaalde grootboekrekening). Omdat de Z-score alleen statistisch relevant is vanaf 10 boekingen op een rekening is er ook een flag voor weinig gebruikte rekeningen.

    Na klikken op ‘Risico analyse uitvoeren’ worden de flags en scores per transactieregel berekend:

    Uitvoer bekijken

    Na het uitvoeren van de risicoclassificatie kun je direct inzicht krijgen in:

    • Samenvatting per risicoscore (hoeveel transacties vallen in welke categorie)
    • Analyse per flag (welke signalen komen het meest voor en met welk financieel impact)

    Dit maakt het mogelijk om snel te focussen op de meest relevante risico’s.

    Bijvoorbeeld samenvatting per flag:

    Je kunt dubbelklikken op betreffende flag om de achterliggende details te krijgen.

    Daarnaast kun je in de transactieweergave via de rechtermuisknop extra kolommen toevoegen:

    Bij ‘RiskScore toevoegen’ krijg je naast een Riskscore ook een uitleg op basis van welke flags tot de score is gekomen. Met ‘RiskScore zoektermen toevoegen’ krijg je de zoektermen te zien welke hebben geleid tot een score op de flag zoektermen:

    Zo zie je in één oogopslag waarom een transactie als risicovol wordt aangemerkt.

    Conclusie

    Deze functionaliteit helpt je om:

    • Grote datasets sneller te analyseren
    • Ongebruikelijke patronen te identificeren
    • Gerichter steekproeven te selecteren
    • Je controleaanpak beter te onderbouwen

    In plaats van alleen zoeken naar uitzonderingen, werk je nu met een gestructureerde risicobenadering.