
Apple en Goldman verloren duizenden geschillen in een toestand die niemand kende. Het kostte $89 miljoen.
In juni 2020 voegde Apple een formulier toe aan het geschillenproces van de Apple Card. Een kleinigheid. Vóór de wijziging tikte je op "Report an Issue", belandde je in een Messages-gesprek met Goldman Sachs, en werd je geschil verwerkt. Na de wijziging moest je een tweede formulier invullen zodra de eerste inzending binnen was.
Dit is wat die kleinigheid deed. Als je je probleem in Messages meldde maar het tweede formulier nooit invulde, besloot het systeem dat je geschil onvolledig was. Het werd nooit naar Goldman gestuurd. Niemand onderzocht het. Er ging nooit een ontvangstbevestiging uit. En onder Regulation Z, Section 1026.13 waren veel van die eerste berichten geldige Billing Error Notices — het soort dat een kredietverstrekker wettelijk verplicht is binnen 30 dagen te bevestigen en binnen twee factureringscycli op te lossen.
Duizenden ervan bleven daar gewoon liggen. Ingediend, maar nergens naartoe gestuurd. In oktober 2024 gaf het Consumer Financial Protection Bureau Apple en Goldman Sachs opdracht om $89 million te betalen, en verbood het Goldman om een nieuwe creditcard te lanceren zonder een geloofwaardig nalevingsplan. Ik heb een goed deel van mijn carrière doorgebracht binnen geschillenafhandeling bij een kaartuitgever, en toen ik dat bevel las, zag ik geen nalatigheid. Ik zag een toestandsmachine met een gat erin, en een gat dat elke bank die ik ken op dit moment ergens in zijn eigen workflow heeft.
Dat is waar ik je in dit essay van wil overtuigen: je geschillensysteem heeft dode toestanden die je nog niet gevonden hebt, en de reden dat je ze niet gevonden hebt, is dat je erop hebt getest in plaats van te bewijzen dat ze niet kunnen bestaan. De oplossing is een techniek die de meeste bankiers nooit aangeboden hebben gekregen — formele verificatie — en het is de reden dat we Veriprajna's financiële nalevingsverificatiepraktijk eromheen hebben gebouwd.
De bug van $89 miljoen was een toestand, geen vergissing

Laat me precies zijn over wat er misging, want de precisie is het hele punt.
De Apple-Goldman-workflow had een bereikbare toestand die je in één regel kon beschrijven: het geschil bevond zich in FormA_Submitted AND FormB_Pending. Vanuit die toestand was er geen overgang naar Investigation_Initiated. Geen. Een consument die na het eerste bericht stopte, leefde daar permanent — wettelijk een bevestiging verschuldigd, maar volgens de eigen logica van het systeem niets verschuldigd.
De geschillen waren niet verloren. Ze zaten precies waar het systeem ze had geplaatst. Het systeem was er alleen nooit van op de hoogte gesteld dat "hier" een plek was waar een geschil kon sterven.
Toen mijn team dit voor het eerst op een whiteboard doornam, zei een ingenieur het voor de hand liggende — dat het gewoon een bug was, het soort dat we bij het testen zouden hebben opgemerkt. Ik vroeg hem hoe. De Apple-Goldman-flow was één integratiepunt tussen twee systemen. De meeste grote uitgevers waarmee ik heb gewerkt, hebben 10 tot 15 systemen die één enkel geschil raken — het Visa VROL-portaal, Mastercards GCMS, het casemanagementplatform, het kernbankgrootboek, het systeem voor briefgeneratie, de feed van het kredietbureau, de motor voor voorlopige krediettoekenning, en een handvol interne routeringswachtrijen. Elke API-wijziging, elke partnerintegratie, elke nieuwe productfunctie opent nieuwe paden door dat doolhof.
Testen controleert de paden die je hebt bedacht op te schrijven. Het is per definitie een lijst van de fouten die je je al hebt voorgesteld. De dode toestand van Apple-Goldman was een fout die niemand zich voorstelde, wat precies de reden is dat geen enkele test hem dekte. Je kunt je niet uit een probleem testen dat je je niet kunt voorstellen. Dat is geen procesfout. Het is een wiskundig plafond.
Waarom konden we niet gewoon meer tests schrijven?
Ik verloor een middag aan dit argument, dus laat me je die middag besparen.
Het tegenargument van de ingenieur was redelijk: schrijf meer testgevallen. Dek meer paden af. Krijg de dekking omhoog. Dus tekende ik het uit. Een geschillenworkflow is geen lijn, het is een grafiek — vertakkingen voor het type geschil, voor het netwerk, voor de vraag of voorlopig krediet werd verleend, voor welk deadlineregime van toepassing is, voor de vraag of een partnersysteem de overdracht bevestigde. Elke vertakking vermenigvuldigt de vorige. Een workflow met een paar dozijn beslispunten heeft meer bereikbare toestanden dan je ooit tests voor zult schrijven, en de gevaarlijke zijn de combinaties die niemand gaat zitten opsommen omdat ze absurd lijken totdat ze gebeuren.
Hij ging nog een tijdje door. Toen tekende ik de combinatorische explosie — het aantal toestanden dat verdubbelde, en toen weer verdubbelde — en hij stopte. Je kunt een toestandsruimte niet overtesten. Je raakt door je muntjes heen voordat je door je toestanden heen bent.
Dit is het moment waarop ik serieus over formele methoden begon te lezen, en de techniek die hier van belang is, heeft een eenvoudige beschrijving. Een model checker neemt een model van je workflow en een invariant — een eigenschap die altijd moet gelden — en verkent vervolgens elke bereikbare toestand, uitputtend, op zoek naar één waarin de eigenschap breekt. Schrijf de invariant als "elk ingediend geschil bereikt bevestiging binnen 30 dagen", richt de checker op de Apple-Goldman-flow, en hij geeft de dode toestand in seconden terug, samen met het exacte stap-voor-stap-pad dat je daar brengt. Tools zoals TLA+ doen dit voor gedistribueerde systemen; dezelfde logica geldt naadloos voor een gereguleerde workflow met harde deadlines.
Testen bemonstert de paden die je je voorstelde. Een model checker bezoekt die je je niet voorstelde.
De deadlinebotsing die niemand bezit

Het deel dat geschillenmanagers 's nachts wakker houdt, is erger dan één enkele dode toestand.
Eén enkel geschil over een dual-network kaart kan drie of vier regelgevings- en netwerkklokken tegelijk in gang zetten. Reg Z wil een schriftelijke bevestiging binnen 30 dagen en oplossing binnen twee factureringscycli, met een maximum van 90. Reg E, die debet- en elektronische-overboekingsfouten regelt, loopt op een compleet ander schema — voorlopig krediet en oplossing binnen 10 werkdagen, met een verlenging van 45 kalenderdagen. Visa Claims Resolution voert Allocation-zaken tot 70 dagen uit en Collaboration-zaken tot 100. Mastercards geschillenkader loopt van 45 tot 120 afhankelijk van de cyclus, en de sector omschreef de uitrol ervan als nog moeilijker te verwerken dan die van Visa.
Wanneer die regimes botsen op één geschil, komt naleving neer op wie er die ochtend aan de geschillenbalie zich herinnert welke deadline geldt. Ik heb een senior analist Reg E-timing zien toepassen op een Reg Z-factureringsfout omdat de twee onder druk van het volume in elkaar overlopen — en precies die verwarring is een van de overtredingen waar CFPB-examinatoren naar zoeken. Citizens Bank kreeg mede een berisping voor het afwijzen van factureringsfoutmeldingen wegens een ontbrekende beëdigde verklaring. De deadlines zijn niet vaag. Ze zijn binair. Je hebt binnen 30 dagen bevestigd of je hebt het niet gedaan.
En dit is de stille reden dat formele verificatie beter past bij financiële naleving dan bij bijna elk ander domein dat ik kan bedenken: de regels zijn al wiskunde. Dertig dagen is geen kwestie van oordeel. "Voorlopig krediet binnen 10 werkdagen" is geen gevoel. Dit zijn temporele beperkingen over een toestandsmachine, en temporele logica is gebouwd om precies dit soort eigenschap te bewijzen — dat over elk mogelijk pad dat een geschil kan nemen, geen enkele klok ooit wordt overschreden.
Ik bouwde eerst het verkeerde ding
Ik wil je vertellen over de versie die we uitbrachten en die niet werkte, want het is de versie die het grootste deel van de markt nog steeds verkoopt.
Onze eerste ingeving was monitoring. Bouw een systeem dat elk geschil volgt, de deadlines in de gaten houdt, en rood oplicht wanneer er een op het punt staat overschreden te worden. Dashboards. Waarschuwingen. Een wachtrij voor voorlopig krediet die aftelt — 9 dagen, 23 uur, go. Het demonstreerde prachtig. Ik was er trots op.
Toen liet ik het zien aan een nalevingsverantwoordelijke bij een pilotbank, en ze gaf het een beleefd schouderophalen. Het kostte me een paar dagen om het schouderophalen te begrijpen. Een monitor vertelt je dat een geschil sterft terwijl het sterft. Het is een rookmelder. Het veronderstelt dat het geschil überhaupt in het systeem terechtkwam om gevolgd te worden — wat de ene aanname is die Apple-Goldman verbrijzelde, want die geschillen werden helemaal nooit gevolgd; ze zaten in een toestand die de tracker niet wist te bewaken. Monitoring is een bekentenis achteraf. Het is de bank die zijn eigen falen iets eerder ontdekt dan de examinator zou hebben gedaan. Dat is iets waard, maar het is niet wat zij nodig had om aan haar bestuur voor te leggen.
Monitoring koopt je het falen een paar dagen voordat de examinator het doet. Het koopt je nooit het falen dat niet kan gebeuren.
Dat schouderophalen kostte ons een herbouw, en het was het beste dat het product overkwam. De markt zit vol met het ding dat ik eerst bouwde. FINBOA volgt Reg E-deadlines en automatiseert voorlopig krediet; het is er goed in. Quavo automatiseert geschillenverwerking en boekt echte cijfers — één kredietunie haalde binnen een maand een automatiseringsgraad van 87%. FIS verwerkt terugboekingen via de netwerkportalen. Ieder van hen automatiseert of bewaakt de geschillen die het systeem binnenkomen. Geen enkele bewijst dat een geschil niet verloren kan gaan voordat het binnenkomt.
Wie is er nog meer daadwerkelijk iets aan het bewijzen?
Na de herbouw ging ik op zoek naar wie er nog meer dingen bewees, in plaats van ze te bekijken, en het antwoord is bijna niemand.
De enige serieuze naam is Imandra. Zij doen echte formele verificatie in financiële diensten — wiskundige correctheidsbewijzen — en hun klanten omvatten Goldman Sachs zelf. Maar hun wereld is de kapitaalmarkten: matchinglogica van beurzen, handelsprotocollen. Consumentennaleving, Reg Z, geschillenworkflows — daar zijn zij niet op gericht, en met ongeveer $5 miljoen aan totale financiering hebben ze zich daar niet op gericht.
Ondertussen stroomt het kapitaal naar de andere hoek van naleving. Bretton AI, voorheen Greenlite, haalde in februari 2026 een $75 million Series B op en bedient OCC-gereguleerde banken — voor KYC, antiwitwassen en onboarding. SymphonyAI's Sensa-platform verminderde valse positieven in de sanctiescreening van een Spaanse bank met 91,8%. Alloy orkestreert identiteit over meer dan 800 instellingen. Echt geld, echte engineering — allemaal gericht op financiële criminaliteit en onboarding, niets ervan op de vraag of je geschillenoplossing een regel kan schenden.
Dat is het gat, en het is geen smal gat. De spelers die het dichtst bij geschillenwerk staan (FINBOA, Quavo) automatiseren het zonder het te verifiëren. De enige verificateur (Imandra) werkt in een andere markt. Combineer die twee en je krijgt een hoek van het veld waar, voor zover ik kan zien, niemand in staat: formele verificatie gericht op consumentengeschillennaleving. Dat is de hoek die we binnenliepen.
De zin die onze pitch herbouwde
Het ding dat de waarde uiteindelijk voor mij liet landen, kwam niet van een ingenieur. Het kwam van een voormalige examinator met wie ik ging zitten.
Ik vroeg haar wat ze eigenlijk wilde in de kamer tijdens een factureringsfoutbeoordeling. Ze zei niet "goede dashboards". Ze zei, min of meer, dat ze wilde weten dat de bank kon aantonen dat haar proces de deadline niet kón missen — niet dat het dat meestal niet deed. De hele houding kantelt op dat ene woord. De bestuursverklaringsslide die luidt "we hebben het getest en het slaagde" is een bekentenis dat je alleen de paden hebt gecontroleerd die je bedacht. Een bewijs zegt iets categorisch sterkers: over elk pad dat de workflow toestaat, geldt de invariant.
En de toezichthouders lopen hier stilletjes zelf naartoe. OCC Bulletin 2025-26 verduidelijkte dat elke kwantitatieve methode die een risico- of nalevingsbeslissing wezenlijk aandrijft een "model" is — en het bulletin is expliciet dat de verfijning van AI of machine learning het niet vrijstelt van validatie. Lees dat zorgvuldig: een geautomatiseerde geschillenrouter is nu onderzoekbaar als een model, niet alleen als een operationeel hulpmiddel. En formele verificatie is de sterkste modelvalidatie die er bestaat. Het bemonstert het gedrag niet. Het bewijst de eigenschap.
Aan de overkant van de Atlantische Oceaan classificeert de EU AI Act krediet- en kredietwaardigheids-AI als hoog risico, met een harde nalevingsdeadline van August 2, 2026, en een extraterritoriaal bereik dat Amerikaanse aanbieders die de EU-markt bedienen erin betrekt. Classificatie als hoog risico betekent dat je bewijsbare systeemeigenschappen moet aantonen — nauwkeurigheid, robuustheid, toezicht. Dat is, nogmaals, precies wat een bewijs levert en een test niet kan.
Is dit niet overdreven voor een geschillenwachtrij?
Mensen stellen me constant een of andere versie hiervan, dus laat me de drie eerlijke bezwaren frontaal aanpakken.
Het eerste is kosten. Verificatie klinkt als een wetenschappelijk project, en het consultingalternatief — een Big 4-firma die je proces herontwerpt — kost $500K tot enkele miljoenen en overhandigt je een herontworpen proces dat niemand wiskundig heeft gecontroleerd. Zet dat af tegen het nadeel. Apple-Goldman was $89 miljoen. Het schikkingsbevel van Wells Fargo, over meerdere tekortkomingen inclusief geschillenafhandeling, liep op tot $3,7 miljard. Je koopt geen verificatie tegen de kosten van een SaaS-licentie; je koopt het tegen de staart.
Het tweede is "ons volume is prima". De wereldwijde terugboekingen zullen naar verwachting 337 miljoen per jaar bedragen tegen 2026 en met 24% stijgen tot 2028, met volledig nieuwe geschillentypes die opkomen — waaronder geschillen van autonome AI-agenten die dingen kopen die klanten nooit hebben goedgekeurd. De handmatige balie die het vandaag "aankan" is dezelfde balie waar 42% van de instellingen naleving nog steeds via handmatige processen laat lopen, volgens Wolters Kluwers rapport van Q1 2026. Stijgend volume plus handmatig geheugen is hoe een dode toestand vier jaar lang onopgemerkt blijft.
Het derde is "we zijn geslaagd voor ons laatste examen". Dat deden Apple en Goldman vermoedelijk ook, tot het moment dat het niet meer zo was. Slagen voor een examen betekent dat een examinator je paden bemonsterde en het kapotte niet raakte. Het is hetzelfde bemonsteringsprobleem als testen, met een andere insigne op.
Wat ik nu geloof
Ik ging de geschillenafhandeling in met de gedachte dat naleving een discipline van zorgvuldigheid was — zorgvuldige mensen, goede checklists, gehaalde deadlines. Ik kwam eruit overtuigd dat zorgvuldigheid het verkeerde gereedschap is voor een probleem van deze vorm. Je kunt niet zorgvuldig genoeg zijn om een toestandsruimte te dekken die verdubbelt elke keer dat iemand een functie uitbrengt. De zorgvuldige mensen bij Apple en Goldman verloren die geschillen niet door onzorgvuldigheid. Ze verloren ze door een toestand die niemand had getekend.
Dus de vraag die ik aan iedereen die een geschillenbalie leidt zou stellen, is niet "zijn je mensen zorgvuldig". Het is smaller en kouder dan dat: kun je de toestand tekenen waarin je volgende verloren geschil zal sterven? Als je hem niet kunt tekenen, kun je er niet op testen, en als je er niet op kunt testen, is het enige eerlijke dat overblijft, te bewijzen dat hij niet kan bestaan. Dat is het werk — bewijzen dat je geschillenworkflows Reg Z, Reg E en de netwerkdeadlines niet kunnen schenden, op elk pad, voordat een examinator de ene vindt die je hebt gemist. Als dat de zekerheid is die je daadwerkelijk nodig hebt, dan is dat wat we bouwen.
Apple had duizenden ingenieurs en tóch een dode toestand. Ingenieurs waren nooit de ontbrekende variabele. Een bewijs was dat.


