Elk bedrijf heeft een spreadsheet die een deel van de zaak draait, en een persoon die de spreadsheet draait. Het werk is niet moeilijk. Het is controleren of een leveranciersbestand de juiste kolommen heeft, uitzoeken waarom twee exports € 40 uit elkaar liggen, elke maand hetzelfde rapport voor dezelfde klant herformatteren.
Niets ervan is lastig. Alles vraagt precisie, en bij elkaar is het ongeveer een week van iemands maand. Daarom is dit het minst spannende automatiseringsdoel en meestal het meest lonende.
Er is een tweede voordeel dat makkelijk over het hoofd wordt gezien: het proces is al vastgelegd. Niet in een handleiding, maar in de vorm van het bestand zelf, en in het hoofd van degene die het veertig keer heeft gedaan.
Dit is deel 3 van een reeks. Deel 1 legt uit wat MCP is; deel 2 gaat over koppelen aan uw systemen.
De demo die iedereen als eerste ziet
Zoek op MCP en spreadsheets en u vindt steeds dezelfde demonstratie. Koppel een filesystem-server, wijs de assistent een map aan, vraag hem een werkboek op te schonen. Hij leest het bestand, past dingen aan, slaat het op. Magie.
Het werkt ongeveer een week.
Dan schrijft hij naar het verkeerde tabblad, omdat twee bladen bijna dezelfde naam hebben. Of hij opent een kolom Nederlandse postcodes en zet 1013 AB behulpzaam om in iets anders. Of hij leest een kolom bedragen waarin 1.234,56 twaalfhonderd betekent, en maakt er één komma twee drie van. Of hij "corrigeert" veertig regels die al klopten, en niemand merkt het tot de kwartaalafsluiting.
Het probleem is niet dat de assistent slordig is. Het is dat een spreadsheet hem niets geeft om zorgvuldig mee te zijn. Er is geen schema dat zegt dat deze kolom een datum is. Er is geen restrictie die zegt dat deze waarde niet negatief kan zijn. Er is geen transactie om terug te draaien. U gaf een taak zonder definitie van klaar en zonder manier om het eigen werk te controleren.
Wat u in plaats daarvan bouwt
Verpak elke terugkerende klus als een benoemde bewerking met gecontroleerde invoer en een samenvatting als resultaat. Drie of vier daarvan dekken het meeste van wat de spreadsheetpersoon werkelijk doet.
De verschuiving is deze: de assistent bepaalt welke bewerking draait, en uw code bepaalt wat correct betekent. Die scheiding is het hele idee, en al het onderstaande volgt eruit.
valideer_import(bestand)
Controleert een bestand voordat iemand het vertrouwt. Zijn de verplichte kolommen aanwezig, onder de namen die u verwacht? Zijn de datums leesbaar, en vallen ze in de juiste periode? Zijn bedragen numeriek als u rekening houdt met de Nederlandse decimale komma? Zijn btw-nummers goed gevormd? Zitten er dubbele factuurreferenties in?
Hij geeft aantallen terug plus een lijst afgekeurde regels met redenen, en verandert niets. Deze ene tool haalt al het meeste heen-en-weer met leveranciers weg, want in plaats van "er klopt iets niet aan uw bestand" stuurt u "regel 12, 40 en 88 hebben geen btw-nummer, regel 51 is een duplicaat van regel 9".
stem_af(periode)
Vergelijkt twee bronnen die zouden moeten kloppen — bank tegen grootboek, magazijn tegen ERP — en geeft alleen de verschillen terug, ingedeeld in categorieën.
In die indeling zit uw bedrijfskennis, en dat is waarom dit bouwen loont in plaats van turen. Een afrondingsverschil van één cent is iets anders dan een ontbrekende factuur. Een betaling die twee dagen te laat binnenkwam, is iets anders dan een die nooit kwam. Alleen u weet welke daarvan een mens moet zien en welke genoemd en vergeten mogen worden.
maak_rapport(klant, periode)
Neemt dezelfde invoer als altijd, past dezelfde opmaak toe als altijd, en schrijft naar een nieuw bestand in plaats van over de bron heen. Deterministisch, testbaar en met opzet saai.
Waarom dit standhoudt en het andere niet
De regels staan in code. Een btw-nummercontrole is een patroonvergelijking en een controlegetal, geen hoop dat de assistent zich het Nederlandse formaat deze keer herinnert. Hij gedraagt zich op een rustige dinsdag hetzelfde als op de laatste dag van het kwartaal, en u kunt er een test voor schrijven die dat bewijst.
De assistent doet waar hij echt goed in is: intentie begrijpen. "Kun je het Van Dijk-bestand van oktober nakijken" wordt valideer_import op een specifiek bestand, en het resultaat komt terug als een zin waar iemand mee verder kan. Die vertaling van menselijke formulering naar een precieze bewerking is echte waarde, en het is het enige deel van de klus waarvoor überhaupt een model nodig was.
En de schade blijft begrensd. Een tool die alleen valideert, kan nooit iets kapotmaken. Een tool die schrijft, schrijft naar één bekende plek in één bekende vorm, en u ziet eerst een samenvatting.
Een uitgewerkte maandafsluiting
Neem een maandelijkse leveranciersafstemming die nu twee dagen van één persoon kost.

Nu: drie exports downloaden, naast elkaar openen, beide op referentie sorteren, scannen op verschillen, de verdachte gevallen uitzoeken, corrigeren voor de twee leveranciers die altijd anders factureren, en een samenvatting voor de accountant maken.
Straks: de persoon vraagt de assistent de afstemming van oktober te draaien. stem_af('2026-10') haalt de drie bronnen zelf op, matcht op referentie, en geeft zoiets terug als: 1.847 regels gematcht, 12 verschillen — 4 afrondingen onder € 0,05, 6 timingverschillen waarbij de betaling in november viel, 2 echte gaten van samen € 3.120, met referenties erbij.
Die twee echte gaten zijn het eigenlijke werk, en die krijgen nu de volle aandacht van een mens in plaats van dat ze na twee dagen turen opduiken. De vier afrondingen worden genoteerd en genegeerd. De zes timingverschillen zijn met één zin verklaard.
Let op wat er niet gebeurde. De assistent bepaalde niet wat als afrondingsverschil telt — uw code deed dat, met een grens die u instelde. Hij paste niets aan. Hij draaide één bewerking en rapporteerde.
De vijf dingen die werkelijk stukgaan
Bouwt u valideer_import en verder niets, dan zijn dit de controles die zichzelf terugverdienen. Ze zijn oninteressant, en hier komen de fouten echt vandaan.
De decimale komma
Nederlandse bestanden schrijven 1.234,56 waar Engelse software 1,234.56 verwacht. Lees het met de verkeerde aanname en een regel van duizend euro wordt één euro drieëntwintig, geruisloos, zonder foutmelding. Controleer dat expliciet in plaats van een bibliotheek te laten gokken op basis van de eerste paar regels.
Voorloopnullen
Postcodes, artikelnummers, bankcodes. Alles wat numeriek lijkt maar het niet is, verliest zijn voorloopnul zodra software besluit dat de kolom een getal is. Behandel identificatoren altijd als tekst en controleer de lengte.
Datums die twee dingen tegelijk zijn
03/04 is 3 april of 4 maart, afhankelijk van wie het exporteerde. Is de bron dubbelzinnig, eis het formaat dan in het contract van de tool en weiger bestanden die er niet aan voldoen, in plaats van te accepteren en te hopen.
Samengevoegde cellen en losse kopregels
Een bestand dat er op het scherm netjes uitziet, heeft vaak een titelregel, een lege regel en een samengevoegde cel boven de echte kop. Software leest wat er staat, niet wat een mens ziet. Controleer dat regel één de verwachte kolommen bevat en faal duidelijk als dat niet zo is.
Regels die niemand bedoeld heeft mee te sturen
Totaalregels, subtotalen, een notitie onderaan met "definitieve versie". Die lezen als data en blazen uw cijfers stilletjes op. Filter op een kolom die in een echte regel altijd gevuld is.
Niets hiervan is slim. Alles hiervan is het verschil tussen een tool die mensen vertrouwen en een die ze toch met de hand nakijken, wat hetzelfde is als hem niet hebben.
Houd de data uit het gesprek
Er is een kostenargument en een privacyargument, en ze wijzen dezelfde kant op.
Een heel bestand van 4.000 regels het gesprek in sturen is traag, duur en stuurt persoonsgegevens zonder enige reden door een model. "4.000 regels gecontroleerd, 12 afgekeurd, redenen bijgevoegd" kost vrijwel niets en is veel makkelijker te verantwoorden tegenover wie naar de AVG vraagt.
De regel is dus: de tool doet het werk, het gesprek draagt de conclusie. Moet iemand echt regels zien, geef dan de twaalf die faalden, niet de vierduizend die slaagden.
Weegt u ook de compliancekant van AI op bedrijfsdata, dan loopt de EU AI Act-risicochecker de classificatie in een paar minuten door en kost niets.
De eerste klus kiezen
Kies degene die maandelijks, vervelend en eenduidig is.
Maandelijks, zodat het voordeel snel komt en zich herhaalt — een jaarlijkse taak doet er een jaar over om zichzelf te bewijzen. Vervelend, want dan helpt degene die het doet u de details goed te krijgen in plaats van de oude werkwijze te verdedigen. Eenduidig, zodat "correct" iets is dat u kunt controleren en niet iets waar twee mensen het oneens over zijn.
Laat voorlopig alles liggen waar het juiste antwoord afhangt van oordeel dat de spreadsheet niet vastlegt. De correctie die iemand maakt omdat hij die klant kent, of omdat er een feestdag in die maand viel, is echt en telt. Hij is ook onzichtbaar voor elke tool, en die als eerste willen automatiseren is precies hoe dit soort projecten het vertrouwen van mensen verliest.
Die oordeelskwesties zijn een later probleem, en oplosbaar — meestal door de regel voor het eerst op te schrijven, wat waardevol is of u nu automatiseert of niet.
Hoe u het invoert
Laat de automatisering één cyclus naast het handmatige proces meelopen en vergelijk. Niet als formaliteit: u zoekt juist de gevallen waarin ze verschillen, want elk daarvan is óf een fout in uw regels óf ongedocumenteerde kennis die het vastleggen waard is.
In de tweede cyclus laat u de automatisering voorop lopen en controleert de persoon. Bij de derde is dat controleren bij de meeste bedrijven een blik.
Houd de handmatige route daarna gedocumenteerd. Automatisering wordt stilletjes dragend, en in de maand dat hij niet beschikbaar is, moet iemand het op de oude manier doen.
Hierna: beveiliging en rechten, waar schrijftoegang verdiend moet worden in plaats van aangenomen. Of bekijk hoe dit denken uitpakt voor een hele functie in AI voor accountantskantoren.