Elektronische formulierverwerking Automatische verwerking van formulieren en data capture systemen
DDi Elektronische formulierverwerking Error! Use the Home tab to apply Ondertitel;DDi Sub Titel to the text that you want to appear here. 31 december 2014
IBAN NL14 RABO 0345 8630 03 | K.v.K. Haarlem 34081856
Alle in dit document beschreven gegevens zijn vertrouwelijk van aard en alleen bestemd voor direct betrokken medewerkers van geadresseerde en DDi. Geen van de genoemde partijen heeft het recht om zonder schriftelijke toestemming van DDi bv informatie uit dit document te verschaffen aan derden. Alle rechten zijn uitdrukkelijk voorbehouden.
2
Inhoudsopgave 1.
Inleiding ......................................................................................................................................... 4
2. 2.1. 2.1.1. 2.1.2. 2.1.3. 2.2.
Automatische formulierverwerking ............................................................................................... 5 Type formulieren ................................................................................................................................. 5 Gestructureerde formulieren .............................................................................................................. 5 Semi gestructureerde formulieren ...................................................................................................... 6 Ongestructureerde formulieren/documenten .................................................................................... 7 De invloed van de lay-out op het rendement ...................................................................................... 8
3. 3.1. 3.2. 3.3. 3.4.
De werking van automatische formulierverwerking ...................................................................... 9 Scannen van formulieren ................................................................................................................... 10 Herkennen formulieren ..................................................................................................................... 11 Corrigeren foutief herkende waarden ............................................................................................... 13 Exporteren verwerkte gegevens ........................................................................................................ 21
4.
Conclusies .................................................................................................................................... 22
5.
Hoe toepasbaar is automatische formulierverwerking? ............................................................... 23
Over DDi en DDi-ers ..................................................................................................................................... 25
3
1.
Inleiding De handmatige invoer van gegevens vanaf formulieren en documenten is arbeidsintensief, foutgevoelig en wordt algemeen beschouwd als “vervelend” werk. Bedrijfsmatig gezien is handmatige invoer een kostbare activiteit, waarop snel bespaard kan worden! Het is daarom niet vreemd dat steeds meer organisaties er voor kiezen hun formulieren geautomatiseerd te verwerken. Sterker nog, waarom worden er nog steeds gegevens met de hand ingetypt? Als specialist in automatische formulierverwerking hebben wij deze white paper zo informatief mogelijk samengesteld. Het biedt u uiteindelijk een uitgebreide omschrijving van nagenoeg alle mogelijkheden. Deze white paper is bij uitstek geschikt voor diegenen die een flinke besparing en kwaliteitsslag willen bereiken op hun dagelijkse invoerwerkzaamheden. Alle (on)mogelijkheden vindt u terug in dit document, opgehangen aan vele praktijkvoorbeelden. Om een goed beeld te creëren van de mogelijkheden, zal in dit document eerst een omschrijving volgen van de typen documenten. Van standaard enquêteformulieren tot complexe schade documenten. We maken daarbij een onderscheid in gestructureerde, semi gestructureerde en ongestructureerde formulieren. Daarnaast zal worden ingegaan op de invloed van de lay-out van een formulier. Hoe kan het ontwerp van een formulier invloed hebben op een succesvolle verwerking? In het daarop volgende hoofdstuk zullen we dieper ingaan op de verschillende scan- en herken technieken. Hoe werkt de techniek? Wat te doen als deze niet optimaal kan worden ingezet? Enkelvoudige en meervoudige documenten scannen en elektronisch verwerken. Hoe goed is bijvoorbeeld nu de herkenning van handgeschreven karakters, etc. Tot slot sluiten we deze white paper af met de toepasbaarheid van automatische formulierverwerking. Welke verschillende oplossingen leveren welke prestatie? Hoe moet u als organisatie een keuze maken, voor welk systeem? Wat is het rendement waar u op kunt rekenen? Wat zijn de praktijkervaringen met de verschillende oplossingen en hoe snel en makkelijk hebt u een eigen systeem in huis en kunt u voortaan uw formulieren automatisch verwerken? Het laatste hoofdstuk is gereserveerd voor het bedrijfsprofiel van DDi. Hierin wordt beschreven wie DDi is, waar zij voor staat en met welke vakgebieden zij zich nog meer bezighoudt.
4
2.
Automatische formulierverwerking De term “automatische formulierverwerking” spreekt eigenlijk voor zich. Het is een geautomatiseerde oplossing om de gegevens die vanaf een formulier in een computer worden ingevoerd te automatiseren. Voorbeelden te over met als meest bekende formulier: de enquête. Iedereen heeft wel eens een enquête of vragenlijst ingevuld. Met de hand turven we de antwoorden al lang niet meer. Dat doet de computer voor ons. We hoeven de vragenlijsten alleen maar even in te voeren. Maar toch niet handmatig? Dan bent u zeker 4 tot 5 keer zoveel meer tijd kwijt! Door de formulieren te scannen en deze vervolgens met behulp van herkensoftware te laten lezen, worden alle vragen automatisch ingevoerd. Tijdwinst tot 80%, aantal typefouten met gemiddeld 50% gereduceerd. Klinkende cijfers, die moeten overtuigen. Maar waarom wordt er dan nog steeds veelvuldig handmatig ingevoerd? Heel vaak zijn de mogelijkheden van automatische formulierverwerking onbekend. Tegelijkertijd wordt gedacht dat bepaalde formulieren zich niet automatisch laten verwerken. Het tegendeel is waar, ieder formulier dat handmatig wordt ingevoerd kan automatisch worden ingevoerd. Belangrijkste vraag is eigenlijk alleen maar of het gewenste rendement bereikt wordt. Wij hebben weleens oplossingen gezien waarbij de automatische invoer meer tijd koste dan handmatige invoer (hierover later meer in hoofdstuk 4, toepasbaarheid van automatische formulierverwerking.) Wat een grote invloed heeft op het resultaat is het type formulier en de lay-out van het document dat verwerkt moet worden.
2.1.
Type formulieren In algemene zin zijn er drie soorten formulieren te onderscheiden; • gestructureerde formulieren, • semi gestructureerde formulieren en • ongestructureerde formulieren De complexiteit van ongestructureerde formulieren is vele malen groter dan die van gestructureerde formulieren. In veel gevallen zal het rendement op de automatische verwerking van ongestructureerde formulieren behoorlijk lager blijken dan bij gestructureerde formulieren. Voordat we verdergaan, leggen we hieronder eerst eens uit wat de typische kenmerken van de drie soorten formulieren zijn.
2.1.1. Gestructureerde formulieren Het belangrijkste kenmerk van een gestructureerd formulier is dat ieder kopie van het formulier er precies hetzelfde uitziet. Op iedere pagina van ieder formulier staan dezelfde gegevens op dezelfde positie. In z’n algemeenheid laten deze formulieren zich uitstekend automatisch verwerken en is al snel een zeer hoog rendement te bereiken. Manuele ondersteuning is nagenoeg niet nodig en de huidige herkentechnieken zijn eigenlijk feilloos.
5
Voorbeelden van gestructureerde formulieren: • • • • • • • •
Enquêtes Vragenlijst Waardebonnen Toetsen/examens Stembiljetten Oproepkaarten Bestelformulieren Aanvraagformulieren
• • • • • • • •
Keuze lijsten Labaanvragen Menukeuze kaarten Verzuimformulieren Evaluaties Inschrijvingen Aanmeldingen Etc
2.1.2. Semi gestructureerde formulieren Deze lijken deels op gestructureerde formulieren. Echter het formulier is in verschillende uitvoeringen uitgebracht. Op ieder formulier staan wel dezelfde gegevens (of grotendeels dezelfde), maar niet op dezelfde positie. Dit kan bijvoorbeeld doordat er verschillende versies van een formulier in omloop zijn. Een ander voorbeeld kan zijn dat het formulier naar verschillende doelgroepen is gestuurd en daarop is afgestemd. Een derde voorbeeld is een bestelbon in tijdschriften. De bon is afgestemd op de eisen van het tijdschrift en het profiel van de lezers. Kortom, welke gegevens op het formulier staan is duidelijk, alleen de positie op het formulier is verschillend. Om deze formulieren geautomatiseerd te kunnen verwerken, zullen aan het verwerkingssysteem slimmigheidjes toegevoegd moeten worden. Het systeem moet als het ware bij inrichting worden “uitgelegd”, hoe en vervolgens waar de relevante gegevens op een formulier staan. Dit in tegenstelling tot de gestructureerde formulieren. Daar hoeft bij de inrichting van het systeem alleen worden aangegeven waar de gegevens staan. Voorbeelden van semi gestructureerde formulieren: • Coupons • Actiebonnen • Polis aanvragen • Prolongaties • Belastingformulieren • Declaratie formulieren • Urenverantwoording • Werkbonnen • Verzekeringsformulieren • Etc.
6
2.1.3. Ongestructureerde formulieren/documenten Deze groep formulieren (eigenlijk beginnen we hier meer over documenten te spreken) zijn het meest complex om geautomatiseerd te verwerken. Het betreft hier documenten waarbij de inhoud voldoet aan bepaalde overeenkomsten. De verscheidenheid aan documenten is voor wat betreft de lay-out en de inhoud relatief groot. Onbekend is welke gegevens er precies opstaan, waar ze staan en hoe ze op het document staan. Als de verscheidenheid te groot en te onvoorspelbaar wordt, dan zal het rendement negatief gaan uitpakken. Op dat moment is zeker de menselijke intelligentie nodig om te begrijpen waar welke gegevens staan en hoe ze geïnterpreteerd moeten worden. Voorbeelden van ongestructureerde documenten: • Facturen • Schade formulieren • Inkooporders • Curriculum Vitae • Contracten • Medische recepten • Doorverwijzingen • Offertes • Notariële akten • Hypothecaire akten • Etc. Uit de praktijk blijkt dat het rendement op geautomatiseerde invoer ten opzichte van handmatige invoer bij ongestructureerde formulieren tussen de 30% en 40% ligt. Bij semi gestructureerde formulieren wordt al snel een rendement behaald van 50% en bij gestructureerde formulieren zijn de rendementsverbeteringen vaak op of boven de 80%
7
2.2.
De invloed van de lay-out op het rendement Vooral bij gestructureerde en semi gestructureerde formulieren kan in veel gevallen invloed worden uitgeoefend op de lay-out van het formulier. De vragenlijsten die u uitdeelt heeft u zelf samengesteld (of laten samenstellen). Op de lay-out van coupons in tijdschriften kan vaak ook wat invloed worden uitgeoefend. Belangrijk bij de lay-out van een formulier zijn de volgende zaken: •
•
• •
Zorg ervoor dat het formulier logisch en ruim is opgezet. o Indien bijvoorbeeld aankruishokjes bij meerkeuzevragen te dicht bij elkaar staan, dan is het risico aanwezig dat een respondent onbedoeld twee hokjes aankruist. o Een e-mailadres bijvoorbeeld is vaak lang. Biedt hiervoor voldoende ruimte. “Dwing” respondenten om het formulier netjes in te vullen. o Geef duidelijk aan op uw formulier hoe bepaalde gegevens ingevuld moeten worden. Bijvoorbeeld datum dd-mm-yyyy. o Zorg ervoor dat het voor een respondent logisch is om in blokletters te schrijven. o Geef op het formulier aan dat deze elektronisch wordt verwerkt en verzoek om een nette invulling. Biedt in ruil hiervoor een snelle afhandeling. Gebruik zoveel mogelijk concrete vragen. Handgeschreven teksten zijn het moeilijkst te lezen. Gebruik zo min mogelijk donkere achtergrondkleuren. Door een donkere achtergrond kan informatie slecht leesbaar of zelfs onleesbaar worden.
Kort samengevat; zorg ervoor dat het voor de “invuller” weinig moeite kost om het formulier netjes en eenduidig in te vullen. Gebruik daarbij altijd zowel de voor- als achterzijde van het formulier.
8
3.
De werking van automatische formulierverwerking Voordat de formulieren geautomatiseerd verwerkt kunnen worden, zal allereerst de programmatuur ingericht moeten worden. Later in dit hoofdstuk komen we hierop terug. Allereerst geven we hieronder een standaard beschrijving over de operationele werking. Eerst in ruwe stappen en vervolgens per stap steeds meer concreet. In de regel bestaat de verwerking uit vier deelprocessen. Per deelproces zullen we aangeven welke handelingen nog manueel zijn. 1.
Scannen van de formulieren (manueel) Een stapel van ca. 100 pagina’s is gemiddeld in 2,5 minuut gescand. Tijdens het scannen bereidt de gebruiker de volgende stapel (batch) voor. Belangrijk is dat de formulieren in een nette stapel op de scanner worden gelegd. Scanners zijn er in allerlei soorten en maten. Een gemiddelde scanner heeft een documentenbak voor 50-100 pagina’s en een gemiddelde snelheid van 40 pagina’s per minuut (40 ppm).
2.
Herkennen (lezen) van de formulieren (100% automatisch) Nadat alle formulieren zijn gescand worden ze direct door de programmatuur “gelezen”. Hiertoe worden verschillende herkentechnieken toegepast, zoals OMR voor meerkeuze vragen, OCR voor geprinte teksten, ICR voor handgeschreven karakters, barcode herkenning, QR en 2D barcode herkenning, alsmede de herkenning van vormen. Het lezen (herkennen) is een volautomatisch proces.
3.
Corrigeren (manueel) Tijdens de herkenning heeft de software bijgehouden welke gegevens eventueel niet goed herkend zijn. Alleen deze gegevens worden aan de gebruiker ter correctie aangeboden.
4.
Exporteren (100% automatisch) Nu alle gegevens zijn herkend en de fouten zijn gecorrigeerd, kan de data geëxporteerd worden naar de desbetreffende databronnen. Mogelijkheden te over. Rechtstreeks naar analyse systemen (Excel, SPSS), als XML, als platte CSV bestanden, via ODBC naar databases, etc.
Al deze activiteiten kunnen uitgevoerd worden op één desktop PC, maar ook verdeeld worden over een veelvoud aan stations en/of (web)servers. Hoe een uiteindelijke configuratie eruit komt te zien is afhankelijk van twee factoren, namelijk: • aantal te verwerken formulieren per uur, dag, week, maand, jaar etc. • aantal verschillende locaties waar de formulieren verwerkt worden (outsourcen). In de volgende paragrafen wordt verder ingezoomd op de verschillende deelprocessen.
9
3.1.
Scannen van formulieren Scanners bestaan er in vele uitvoeringen. Vaak wordt de vraag gesteld of ook de Multifunctionele copier (MFC) gebruikt kan worden om te scannen. Technisch geen enkel probleem, alleen functioneel zijn deze apparaten niet goed uitgerust en met hoge snelheid en betrouwbare kwaliteit grotere hoeveelheden documenten te scannen. Meestal wordt gekozen voor een zogenaamde documentscanner, die zijn onverdeeld in drie categorieën: • Low volume scanners Tot 30 ppm, een sheetfeeder van ca. 50 vel, max. A4 formaat Prijsniveau tot € 1.500,00 • Mid volume scanners Van 40 ppm tot 90 ppm, sheetfeeder van 100 vel tot 250 vel, tot max. A3 formaat Prijsniveau tot € 6.500,00 • High volume scanners Van 90 ppm tot 170 ppm, sheetfeeder van 250 vel tot 800 vel, tot max. A3 formaat Prijsniveau tot € 40.000,00 Het aantal fabrikanten van documentscanners is beperkt. De meest bekende merken zijn Canon, Kodak, Panasonic en Fujitsu. De keuze in scanner is relatief eenvoudig en gebaseerd op onderstaande criteria: • Robuustheid van de scanner De low volume scanners zijn vaak fragiel, maar bieden toch een prima alternatief voor 250 tot 300 scans per dag. Tot 5.000 scans per dag kunt u met een mid volume scanner goed uit de voeten. Daarboven moet u echter overwegen te kiezen voor een high volume scanner. • Piekvolume op een bepaald moment • Formaat van de formulieren A3 formaat formulieren dwingt u tot een A3 scanner • Beschikbaar budget Indien het budget het toelaat, kunnen extra selectiecriteria worden gehanteerd die voornamelijk op het kwalitatieve vlak liggen. Welke scanner produceert kwalitatief de mooiste scans (minste pixel ruis), heeft kwalitatief de beste invoertechniek (automatische scheefstand correctie, double feed detectie, etc.) en de beste doorvoertechniek (korte transportbaan met veel rollers over breedte, zorgen voor minder vastlopers van het papier). In deze white paper spreken wij geen voorkeur uit. Tegelijkertijd merken we graag op dat alle fabrikanten gemiddeld goede tot uitstekende machines leveren. Tot slot maken we er melding van dat alle scanners in een enkele scangang beide zijden van de documenten scant. Instelbaar kunt u in de software kiezen voor enkelzijdig of dubbelzijdig scannen.
10
Nu de keuze voor de juiste scanner gemaakt kan worden, kan deze worden aangeschaft en in gebruik worden genomen. Het scanproces zelf is op zich een eenvoudige handeling, die indien niet goed uitgevoerd grote gevolgen kan hebben (garbage in, garbage out). Enige aandacht bij de gebruiker is dan ook een vereiste: • Zorg ervoor dat de formulieren in nette stapels (boven en onder, links en rechts goed recht leggen) klaar worden gemaakt. • Controleren of er geen formulieren tussen zitten die verkeerd liggen (op de kop), gevouwen zijn, aan elkaar geplakt/geniet, Post-it stickers hebben, o.i.d.. • Vervolgens deze stapels (batch) netjes recht in de scanner leggen (om scheef scannen te voorkomen). • Plus de scanner goed schoon houden. Papier geeft veel stof af. Gebruikte Tipp-Ex kan resten achterlaten. Soms glipt er toch een nietje of paperclip door. Dit is allemaal rommel die het scanproces negatief kan beïnvloeden. Rekening houdend met bovenstaande garandeert een uitstekend scanresultaat.
3.2.
Herkennen formulieren Zoals eerder aangegeven is dit een volautomatisch proces. Direct nadat een batch formulieren is gescand, zal de programmatuur tot verwerking overgaan. Bij het scannen is van ieder formulier een bitmap image (een digitaal beeld gemaakt. De algoritmes van de software berekenen als het ware de waarde van alle pixels. Dit gaat razendsnel. Per A4 pagina leest de programmatuur alle hokjes (zowel de niet als wel ingevulde), alle geprinte teksten, alle handgeschreven karakters en barcodes (1D, 2D en Quick Response (QR) codes). Gemiddeld in twee seconde wordt een pagina volledig gelezen (herkend of nog beter gezegd: berekend). Welke herkentechnieken en hoe goed zijn deze kwalitatief: • Herkennen van meerkeuzevragen (OMR) De herkenning van hokjes wordt uitgevoerd door het OMR algoritme (Optical Mark Reading). Bij de inrichting van het systeem is de software uitgelegd waar de hokjes op het formulier staan en hoe ze eruit zien. Aan de hand van deze karakteristieken wordt voor ieder hokje berekend of deze wel of niet is ingevuld. Aan de hand van ingestelde drempelwaarde is een hokje wel of niet aangekruist. Een feilloos mechanisme! Een feilloos mechanisme, met de nadruk op mechanisch. Iemand maakt een tekening op het formulier en tekent door het hokje. Een respondent heeft aangekruist dat hij zowel een man als vrouw is. Wij als mens begrijpen dat dit niet klopt. Dit zijn voorbeelden van hokjes die mechanisch gezien juist zijn gelezen, maar intellectueel gezien niet correct zijn. Typisch hokjes die ter correctie moeten worden aangeboden (zie paragraaf 3.1.3.) •
11
Herkenning van geprinte teksten (OCR) Geprinte teksten kunnen alweer drie decennia goed herkend worden. De herkenning is daarbij steeds een stuk verbeterd. Inmiddels claimen de OCR fabrikanten een accuratesse van 99,8% goed herkende karakters. Nagenoeg feilloos, maar niet foutloos. Feitelijk moet niet meer de vraag gesteld worden hoe goed de OCR kan lezen, maar hoe goed deze is in het herkennen van fouten. Deze fouten moeten immers ter correctie worden aangeboden. Of gewoon negeren. Een mens maakt immers bij overtypen ongeveer 0,6% typefouten.
Door bij de inrichting van het systeem rekening te houden met herkenfouten, zijn deze met groot succes te isoleren en ter correctie aan te bieden. Toch nog iets met de hand intypen zult u nu zeggen. Klopt, maar gemiddeld 99,8% is al voor u gedaan! •
Herkenning van handgeschreven karakters (ICR) Weer even terug naar het doel van automatische formulierverwerking, namelijk besparing op arbeid en verbetering van kwaliteit (minder invoerfouten). Handschrift herkenning, of beter gezegd de herkenning van handgeschreven karakters (blokletters), is alleen onder voorwaarden goed toepasbaar. De accuratesse van handgeschreven karakters is namelijk veel lager dan bij OCR (ca. 80% tegen 99,8%). Ondanks een gemiddeld foutpercentage van deze 20% kan deze techniek toch bijdrage aan een redelijke rendementsverbetering. In de eerste plaats door bij het ontwerp van het formulier respondenten te dwingen om in blokletters te schrijven (gebruik hiervoor voorbedrukte kaders). Daarnaast helpt het om de numerieke en de alpha karakters van elkaar te scheiden (herken een postcode als twee velden (één voor de vier cijfers en twee voor letters). Maak gebruik van validatie tabellen (door de herkenning van postcode en huisnummer, kan automatisch een compleet adres gevuld worden). Gebruik automatische correctie tabellen (herkende waarde “lijkt het meest op”). Men kan nog een stap verder gaan door gebruik te maken van een voting algoritme. De handgeschreven karakters worden met meerdere neurale netwerken gelezen waarbij de herkende waarden tussen de netwerken met elkaar worden vergeleken. Vervolgens wordt het juiste karakter volgens berekenmodellen gelezen. Er bestaan verder nog een aantal intelligente technieken waarbij de kwaliteit van herkenning behoorlijk verbetert. Om uiteindelijk weer op de gewenste doelstelling uit te komen; kwaliteitsverbetering en tijdwinst!
•
Herkenning van barcodes, 1D, PDF147 en 2D barcodes Dit is de meest zekere vorm van herkenning, vandaar de populariteit van barcodes. Barcodes worden vrijwel altijd correct gelezen. Gemiddeld één op de miljoen barcodes wordt verkeerd gelezen. Nadeel van barcodes is de relatie tussen het aantal karakters en de benodigde ruimte. Met de komst van de PDF147 barcode en de 2D barcode is dit sterk verbeterd. In een 2D barcode kunnen tot 4.000 karakters worden opgenomen in een ruimte niet groter dan een postzegel. Een PDF147 barcode kan tot 929 karakters coderen.
2D barcode
12
PDF147 barcode
1D barcode
De toepassingen van 2D barcodes komen we steeds vaker tegen als zogenaamde QR-code (Quick Response). Vooral voor online marketing campagnes (lees de QR met je smartphone en ontvang direct via internet alle benodigde informatie, inclusief GPS coördinaten naar de winkel). Ook bij formulierverwerking is de 2D barcode aan een opmars bezig. Bij aangifteformulieren, toetsen, opdrachtbevestigingen, waardebonnen, etc. Het belangrijkste bij verwerking is dat de barcodes altijd foutloos worden gelezen. •
3.3.
Herkenning van patronen (vormen) Door logo’s van leveranciers vast te leggen, kunnen bijvoorbeeld facturen automatisch herkend (geïdentificeerd) worden aan de vorm van het logo.
Corrigeren foutief herkende waarden Dit wordt wellicht de langste paragraaf uit dit document. Omdat juist hierover het meest te doen is en het verreweg de grootste invloed heeft op de winst in tijd en kwaliteit. Fouten corrigeren kosten namelijk tijd. Ten minste, dit wordt vaak gedacht. In dit deel van het document vindt u antwoorden op de vragen, “Wat zijn (herken)fouten?”, “Hoe ernstig zijn ze?” en “Wat doen we met deze fouten?”. Om te beginnen, herkentechnieken zijn niet feilloos! We zullen in deze paragraaf uitleggen waardoor de herkenning zal falen. Ten tweede kunnen zich in het document of formulier dat wordt verwerkt fouten voordoen. Bij het invullen van bijvoorbeeld een vragenlijst heeft een respondent een vraag niet of onjuist ingevuld. De software herkent ook deze fouten (en terecht). Maar wat nu te doen met deze fouten? In de basis heeft u drie keuzes: 1. Negeren Het maakt niet uit dat er af en toe iets fout wordt herkend. Handmatige invoer brengt immers ook fouten met zich mee. Zolang het aantal fouten maar onder de x% blijft. Voordeel, er hoeft niets meer handmatig gecontroleerd te worden. 2. Automatisch laten corrigeren Indien bij herkenning fouten worden gemaakt kunt u deze via o.a. scripting, matchtabellen en/of voting algoritmen automatisch laten corrigeren. 3. Verifiëren en handmatig corrigeren De foutief herkende waarden worden aan een operator aangeboden. Deze bepaalt handmatig wat de juiste waarde is. Voordat we verder gaan met corrigeren, allereerst nog een stuk uitleg over het ontstaan van herkenfouten. Daar is wat extra uitleg over het herkennen van gegevens voor nodig. Herken engines hebben allen hetzelfde uitgangspunt, namelijk het uitvoeren van berekeningen over een gegroepeerde set pixels. Ieder element (karakter, cijfer, hokje, patroon of barcode) bestaat uit een groepje pixels die tezamen een geheel vormen (zie voorbeeld hieronder).
13
Herkenning is dus eigenlijk berekenen. Stel, bij de verwerking van een document hoeven alleen maar de geprinte karakters gelezen te worden (OCR). Na scanning wordt door software geanalyseerd welke pixels gegroepeerd zijn en daarmee een karakter uitbeelden. Vervolgens berekent de programmatuur voor elke groep pixels het juiste karakter. Per karakter zijn er drie mogelijke uitkomsten, namelijk: • Berekening geslaagd, karakter juist herkend. • Berekening niet geslaagd, karakter kan niet herkend worden. • Berekening twijfelachtig, karakter kan mogelijk verkeerd herkend zijn. Zoals eerder opgemerkt, is de gemiddelde accuratesse bij OCR herkenning 99,8%. Hierbij wordt vanzelfsprekend uitgegaan van een gemiddelde kwaliteit. Voorbeelden zoals hieronder zullen de accuratesse verminderen (achtereenvolgens: beschadigde karakters, karakters die tegen een achtergrond geprint zijn, karakters waar doorheen is gekliederd of karakters die te dicht bij elkaar staan).
Ook priegelige lettertypes (bijvoorbeeld ALGERIA, Broadway of harlow) zullen een negatieve invloed hebben op de herkenkwaliteit. Maar bij een gemiddelde kwaliteit zal de accuratesse dus zeer hoog zijn. Per 1.000 karakters, gemiddeld twee fouten. Wat OCR nu juist zo krachtig maakt, is dat ook de fouten worden herkend (immers, de berekening is niet geslaagd of de uitkomst is twijfelachtig). Bovendien weet de programmatuur ook precies welke karakters het betreft. OCR berekent iedere groep pixels apart en legt naast de uitkomst ook de coördinaten van de
14
groep pixels vast. Met behulp van deze informatie worden ten behoeve van het corrigeren alleen de karakters aangeboden die niet berekend kunnen worden of waarvan de uitkomst twijfelachtig is. Nu weer terug naar de factuur. Omdat we niets willen inrichten (de software is alleen verteld dat we graag facturen willen inboeken), worden van iedere factuur alle karakters herkend. Voor het vastleggen van de factuur in ons ERP systeem, hebben we alleen de crediteur nodig plus het factuurnummer, de factuurdatum, totaal bedragen inclusief en exclusief btw, btw bedragen en ordernummer. Verder staat er nog veel meer informatie op de factuur (alle factuurregels, betalingsvoorwaarden, etc.). Alles bij elkaar ca. 1.100 karakters (m.a.w. gemiddeld 2-3 karakters niet of verkeerd berekend). De software heeft precies bijgehouden welke karakters dit zijn. De software is echter ook verteld, dat we alleen bepaalde informatie van de factuur willen overtypen. Zolang de fouten zich hier niet voordoen, zal niets van de factuur ter correctie worden aangeboden. Stel dat de fout is waargenomen in het bedrag (in plaats van € 8.719,23 = € 3.719,23 herkend), dan zal de software alleen de foutieve 3 (gezamenlijk met het gescande beeld) ter correctie aanbieden. De operator corrigeert vervolgens de 3 naar een 8 en de volledige factuur is feitelijk met één toetsaanslag ingevoerd. In vergelijking tot bijvoorbeeld een factuur (document) staan op een formulier vaak meer verschillende soorten gegevens (zie voorbeeld op de volgende pagina).
Handschriftherkenning ICR
Herkenning aankruishokjes OMR
15
Om het formulier op juiste wijze in te voeren, wordt bij de inrichting van de programmatuur vastgelegd wat welke zone betekent. • Bij het veld “achternaam” wordt ingesteld dat hier een handgeschreven achternaam staat (alfabetische karakters). • Bij “geboortedatum”, zal hetzelfde zijn ingesteld als bij achternaam, met het verschil dat er numerieke karakters staan en dat het een geldige datum moet zijn. • Bij “geboorteplaats” staat dezelfde instelling als bij achternaam, plus een controle dat de herkende waarde een geldige plaatsnaam moet zijn, waarbij automatische correctie wordt geactiveerd (stel dat herkenning in plaats van “Amsterdam” “Anstendam” oplevert, dan is de software in staat om de herkende waarde via matchtabellen automatisch te corrigeren naar “Amsterdam”). • Bij het veld “OOI AANGEVRAAGD DOOR” (de vier hokjes) zal zijn vastgelegd dat deze gelezen moeten worden m.b.v. OMR en slechts één van de vier hokjes aangekruist moet/mag zijn. Bij herkenning vindt nu weer hetzelfde principe plaats. Alleen weet de programmatuur nu dat de gegroepeerde pixels in een bepaalde zone niet met OCR techniek maar met ICR of OMR techniek berekend moeten worden. Ook nu zijn de uitkomsten weer “goed”, “fout” of met twijfel berekend. Met behulp van OMR technieken (Optical Mark Reading) wordt berekend welke pixels bij meerkeuzevragen een leeg hokje of een ingevuld hokje zijn. Bij geprinte teksten wordt van iedere groep pixels een karakter berekend (Optical Character Recognition – OCR herkenning). Bij handgeschreven karakters werkt de herkenning volgens een neuraal netwerk (een zelf lerend algoritme, ICR ofwel Intelligent Character Reading genoemd). Tegelijkertijd wordt de herkende waarde van ieder veld gecontroleerd tegen een aantal standaard validaties en/of speciaal via scripting samengestelde validatie routines. Enerzijds om de herkende waarde op juistheid in te schatten, anderzijds om te bepalen wat te doen als de uitkomst van de routine negatief is.
16
Voorbeelden: • Het veld “OOI AANGEVRAAGD DOOR” op de vorige pagina. o Standaard is de validatie routine zo ingesteld dat een hokje pas is aangekruist als minimaal 10% van het hokje met pixels is gevuld. 10% met een kleine marge. Minder dan 8% pixels gevuld = niet aangekruist en > 12% = 100% zeker aangekruist. Indien uit de herkenning blijkt dat de waarde tussen 8% en 12% ligt, dan “twijfelt” de programmatuur o Tevens is standaard vastgelegd dat slechts één van de 4 hokjes aangekruist moet zijn. Met andere woorden: niets ingevuld is fout en meer dan één aangekruist is ook fout. Wat dan te doen in de volgende gevallen? o De herkende waarde van één van de hokjes is bijvoorbeeld 9% (er staat dus iets in). De validatie routine geeft aan dat de herkende waarde (niet aangekruist) discutabel is. De keuze is nu aan u. Gaat u uit van uw instellingen (> 10% is aangekruist, < 10% = niet aangekruist), dan wordt automatisch de herkende waarde hierop ingesteld. U kunt er ook voor kiezen de disputen (waarden tussen 8% en 12%) voor verificatie aan een gebruiker aan te bieden. Deze bepaalt dan of het hokje van 9% inderdaad niet is aangekruist. Wat blijkt uit de praktijk is dat in ruim 95% van de zogenaamde twijfelgevallen toch correct zijn herkend door de software. Bij goede instellingen is OMR herkenning nagenoeg foutloos. Zeker vergelijking met handmatige invoer maakt OMR herkenning substantieel minder fouten. o
Er is geen enkel hokje aangekruist. Het heeft geen zin om een operator te laten bepalen wat de waarde moet zijn indien geen hokje is aangekruist. Deze zal maar wat gokken (of denken te zien wat de respondent bedoelt). Het is beter een script(je) te maken waarin wordt vastgelegd wat te doen met deze vraag indien niet beantwoord (negeren, standaard waarde bepalen of random een keuze laten maken).
o
Er is er meer dan één aangekruist. Deze fout ligt meer voor de hand. Een respondent heeft zich in eerste instantie vergist. Hij corrigeert zichzelf door nog een ander hokje aan te kruisen en er een pijl bij te zetten (om aan te geven dat dit echt het hokje is wat hij bedoelt). Of hij krast het vorige hokje nog eens extra door (groot kruis erdoor). Misschien is de vraag niet goed gelezen en denkt de invuller dat hij meer dan één hokje mag aankruisen. Kortom, een respondent kan allerlei keuzes maken. Voor de OMR software is het duidelijk: - Twee hokjes aangekruist (beiden ruim meer dan 10% ingevuld) - Twee hokjes niet aangekruist (beiden ruim minder dan 10% ingevuld) Ook hier is de uitkomst van OMR herkenning juist. In het script heeft u nu vastgelegd dat een operator dan maar handmatig moet bepalen wat het juiste hokje is. De hokjes worden dus ter verificatie aangeboden.
17
In het script had u ook andere keuzes kunnen maken en de software automatisch laten bepalen wat de juiste waarde is. Bijvoorbeeld door aan te geven dat het hokje met de meeste pixels de juiste is. Of het hokje met juist het minste aantal pixels. U kunt ook weer een standaard waarde kiezen. Of toch beide waarden goedkeuren. Wat u ook instelt, de keuze blijft arbitrair. Echter, ook bij handmatige verificatie zal de keuze die een operator maakt discutabel zijn. In veel gevallen zal ook voor de gebruiker niet duidelijk zijn welk hokje een respondent nu daadwerkelijk bedoelt. Wat nu te doen? Automatisch laten bepalen door de software of toch handmatig nakijken en daar waar nodig corrigeren? Ook hier heeft de praktijk ons weer geleerd wat de beste keuze is. Uitgedrukt in (data) kwaliteit blijkt er weinig verschil te zitten tussen handmatige of automatische correctie.
18
•
Het veld “achternaam” Op het voorbeeldformulier staan naast een aantal meerkeuzevragen ook een aantal open vragen. Handmatig schrijft de respondent in zijn eigen handschrift het antwoord. De antwoorden zullen voorspelbaar zijn. De vraag “achternaam” bijvoorbeeld laat niets aan duidelijkheid te wensen over. De leesbaarheid helaas vaak wel. Dat geldt voor ons mensen, maar zeer zeker voor de herken engines (in dit geval dus de ICR engines). In de voorgaande paragraaf hadden we het al over de voorwaarden van handschriftherkenning. Wat zijn de voorwaarden bij herkenning van het veld “achternaam”? o De vragenlijst is toegestuurd aan een gecontroleerde groep respondenten. Hierdoor is het voorspelbaar welke achternamen allemaal voor kunnen komen op de formulieren. Door al deze achternamen op te nemen in een tabel, kan de herkende waarde gecontroleerd worden met de namen in de tabel. Zelfs als een aantal karakters onjuist zijn berekend, kan toch vaak nog de juiste naam worden gevonden. In plaats van “pietersen” werd “bietevsen” herkend. In de tabel gaat de software zoeken in de namen met negen karakters en vindt vervolgens “Pietersen” als meest overeenkomend. “bietevsen” wordt nu automatisch gecorrigeerd naar “Pietersen”. Combinatie velden Naast de achternaam hebben we in de tabel ook de voornaam, geboortedatum, postcode etc. van de respondent. Door de velden met de desbetreffende gegevens met elkaar te combineren (bijvoorbeeld geboortedatum en achternaam), kunnen meerdere velden automatisch gecorrigeerd en gecontroleerd worden. Vervolgens kan deze matchingregel weer verder worden doorgevoerd op de overige NAW gegevens. o
Mogelijke respondenten zijn onbekend. Het wordt nu al een stuk lastiger om de juiste achternaam te herkennen. We hebben ook geen enkele tabel met mogelijke achternamen beschikbaar. Kortom we zijn nu echt alleen afhankelijk van de kwaliteit van de herken engine(s). Werken met betrouwbaarheid Zoals eerder gezegd, wordt ieder karakter apart berekend door de ICR engine. Bij ieder karakter zal naast de berekende uitkomst ook de betrouwbaarheid van de berekening bekend zijn. De “b” bij “bietevsen” was bijvoorbeeld berekend met een betrouwbaarheid van 10%. De overige karakters hadden de volgende score: i = 70%, e = 80%, t = 30%, e = 100%, v = 40%, s = 90%, e = 90%, n = 100%. Om de kwaliteit te borgen hebben we in de programmatuur ingesteld dat alleen karakters met een betrouwbaarheid van meer dan 70% automatisch worden goedgekeurd. In context willen we karakters die lager scoren door een operator laten controleren/corrigeren. In ons voorbeeld krijgt de operator dan het volgende aangeboden: b i e t e v s e n. Tegelijkertijd ziet hij op zijn scherm wat de respondent heeft geschreven, namelijk
P i e t e r s e n. Met deze gegevens kan de operator vrij eenvoudig en snel zien welke karakters twijfelachtig zijn en welke gecorrigeerd moeten worden.
19
Indien een te groot aantal van de karakters in één woord twijfelachtig zijn (in de praktijk meer dan 30%), dan is het verstandiger (werkt domweg sneller) om de herkende waarde helemaal niet te tonen. Het gehele woord wordt afgekeurd en de operator krijgt op zijn scherm alleen het oorspronkelijk geschreven woord P
ie
t e r s e n te zien, met daaronder het invoerveld, waar hij dan “Pietersen” intypt. Praktijkervaring in dit geval: Circa 70% van de velden wordt ter correctie aangeboden. Bij gemiddeld 40% is het aantal twijfelachtige karakters in één woord groter dan 30%. Kort samengevat: Hier moet toch nog wat werk worden verzet.
Werken met meer dan één ICR engine en een voting algoritme Dit is wel een kostbare oplossing, maar loont zich zeker bij hoge oplagen. Door gebruik te maken van bij voorkeur de verschillende ICR engines (ICR engines zijn allemaal net iets anders getraind), kan automatisch per karakter de verschillende uitkomsten van de engines met elkaar vergeleken worden. We gebruiken ons voorbeeld P
i e t e r s e n en plaatsen deze voor het overzicht in een matrixtabel
hieronder. Veldwaarde
P i e t e r s e n
ICR Engine 1 P
ICR engine 2 b
ICR Engine 3 P
70%
10%
60%
i
i
i
90%
70%
50%
e
e
e
70%
80%
100%
t
t
t
90%
30%
80%
e
e
s
100%
100%
20%
r
v
v
40%
40%
20%
s
s
s
95%
90%
70%
e
e
e
70%
90%
80%
n
n
4
70%
100%
10%
Berekende waarde
Bij de uitkomsten per karakter per engine hebben we ingesteld dat alleen de herkende karakters worden gebruikt met een betrouwbaarheidswaarde boven de 50%. Indien van drie engines vervolgens minimaal twee engines dezelfde waarde hebben berekend, dan is die waarde correct. Is deze formule niet toe te passen, dan is de waarde fout en wordt er geen karakter getoond. De operator hoeft nu alleen nog maar de ontbrekende karakters te corrigeren (de rest van de karakters is namelijk correct berekend).
20
P i e t e .. s e n
3.4.
Exporteren verwerkte gegevens Nadat alle documenten/formulieren zijn gescand en herkend en de foutieve waarde al dan niet automatisch zijn gecorrigeerd, kan de data geëxporteerd worden naar zijn bestemming. In geval van onder een onderzoek kan dat zijn een database, een statistische applicatie als SPSS of een spreadsheet (Excel). Betreft het bijvoorbeeld een inkooporder of een factuur, dan is export naar een ERP systeem (SAP, Exact, Navision, AFAS, o.i.d.) nodig. De meest voorkomende dataformaten waarin geëxporteerd moet worden zijn de bekende standaarden zoals CSV en XML. Specifieke formaten zoals Excel, SPSS zijn alleen nodig in enkele gevallen. Tot slot is ook het direct wegschrijven in een database een optie. Met betrekking tot het exporteren kunnen drie verschillende scenario’s gehanteerd worden: • Batchgewijs (per gescande stapel documenten/formulieren) • Stuksgewijs (per gescand document/formulier) • Tijdsgebonden (op ingestelde tijdstippen) De formulierverwerkingssoftware is hier eigenlijk altijd flexibel en laat zich aanpassen naar de wensen van de bestemmingsprogrammatuur.
21
4.
Conclusies Zoals de hoeveelheid tekst alleen al uitwijst, draait het bij automatische document- en formulierverwerking om het correctieproces. De correcties van foutief herkende waarden. Logisch, omdat juist hierin de meeste kostbare tijd verloren kan gaan. Dat maakt aan de andere kant juist de voorgaande handelingen zo belangrijk. Alles heeft namelijk invloed op het mogelijke aantal correcties. In de eerste plaats het formulierontwerp. Dwing in het ontwerp af dat respondenten duidelijk in blokletters schrijven (en dat kan echt heel goed. Kijk maar eens naar de papieren belastingformulieren, deze worden allemaal automatisch verwerkt). Zet aankruishokjes niet te dicht op elkaar. Zorg voor een duidelijke vraagstelling en een logische opbouw van een vragenlijst/formulier. Gebruik bij response formulieren indicatiecodes. Werk – indien mogelijk – met matchtabellen, etc. In de tweede plaats het scannen zelf. Zorg ervoor dat alle documenten netjes worden gescand. Minimaal in een resolutie van 300 x 300 dpi of hoger. Hoe hoger de densiteit, hoe beter de herkenning zal worden. Met andere woorden, investeer in een goede scanner. Deze verdient zich direct weer terug. Zorg ervoor dat de scanner schoon blijft (stof e.d. regelmatig verwijderen). Bij een goede scanner kost u dit maximaal 5 minuten per dag. Tot slot de inrichting van de programmatuur. Denk goed na welke data absoluut 100% goed moet zijn. Welke herkenfouten zijn toelaatbaar? Welke kunnen automatisch gecorrigeerd worden? Waar kan gewerkt worden met matchtabellen? Ook externe matchtabellen kunnen vaak gebruikt worden. Denk bijvoorbeeld in de gezondheidszorg aan het BSN nummer. Het BSN nummer is eenvoudig en goed te herkennen (alle karakters zijn numeriek). Het kan tijdens herkenning direct gecontroleerd worden aan de hand van een elfproef en vervolgens kunnen alle relevante gegevens uit de centrale BSN database (beheerd door Vecozo) worden opgehaald. Als u al deze zaken goed in ogenschouw neemt, dan zal automatische formulierverwerking u substantieel veel tijd schelen ten opzichte van handmatige invoer. Bovendien zal ook de kwaliteit duidelijk verbeteren. Maar verwacht geen tovermiddel wat alles foutloos en goed voor u regelt. De technieken bij formulierverwerking zijn “slechts” een krachtig hulpmiddel om tijd te besparen!
22
5.
Hoe toepasbaar is automatische formulierverwerking? Kunnen nu alle documenten en formulieren automatisch worden verwerkt? Technisch gezien kan alles wat met de hand wordt ingevoerd, geautomatiseerd worden. De vraag is echter of het in alle gevallen voldoende tijdwinst oplevert. Er zijn voorbeelden dat de kwaliteit van de te verwerken documenten niet voldoende is. Ditzelfde geldt voor het volume. Een kleine oplage is vaak niet rendabel te krijgen waarom wij adviseren gewoon handmatig te blijven invoeren. Er zijn enkele specifieke elementen die van invloed zijn op de kwaliteit en daardoor op het rendement. •
•
•
•
•
23
Uniformiteit Diversiteit in formulieren kan een grote invloed hebben op de kwaliteit. Als er in verschillende documenten maar een beperkt aantal overeenkomsten is, dan zal het technisch moeilijk blijken om de juiste data in een document te vinden. Bijvoorbeeld declaraties. Wat met betrekking tot een declaratie moet worden vastgelegd is helder. Iedere declaratie (kassabon of nota) ziet er alleen compleet anders uit. Om hier toch voldoende rendement te kunnen behalen, moet u bereidt zijn wijzigingen door te voeren in het declaratieproces. Formulierontwerp Onduidelijk en slordig ontworpen formulieren worden onduidelijk en slordig ingevuld. Dit is een wetmatigheid en heeft direct invloed op de response. Zorg ervoor dat respondenten uw formulieren goed kunnen invullen. Via het ontwerp kunt u bijvoorbeeld afdwingen dat in blokletters wordt geschreven. Eenduidige data Indien het vooraf niet voorspelbaar is welke data op een document kan voorkomen, is het moeilijk vast te stellen welke gegevens ingevoerd moeten worden. Bijvoorbeeld: In totaal moeten 40 velden worden vastgelegd. Per document is niet voorspelbaar welke van deze 40 waarden op een document staan. Waar en hoe ze op de document staan is tevens niet duidelijk. Om nu toch precies de juiste gegevens van ieder document te halen vereist een zeer uitgebreid script. Alleen bij hoge oplages kan in deze gevallen voldoende rendement worden behaald. Verschillend ingevuld Een goed voorbeeld zijn de zogenaamde NAW-gegevens. De wijze waarop deze gegevens zijn gevuld, zijn nogal verschillend. Soms handgeschreven, soms direct op het formulier geprint, soms een sticker met NAW’s op het formulier geplakt. In dat laatste geval, vaak onvolledig. Ook hier kan automatische invoer een uitkomst bieden, maar voor voldoende rendement is weer een hoge oplage nodig. Slordig ingevuld of slordig ingeleverd Dit is sterk afhankelijk van de doelgroep en de mogelijkheden die u biedt. Zoals eerder opgemerkt, kunt u met het formulierontwerp invloed uitoefenen op slordig ingevulde formulieren. Dit is zeker niet in alle gevallen mogelijk. Formulieren die worden ingevuld op bijvoorbeeld bouwplaatsen, zullen er vaak niet fraai uitzien. Ook gekopieerde formulieren of met de fax teruggezonden formulieren zullen bij verwerking meer kopzorgen met zich meebrengen dan originele formulieren. Probeer kopieën en faxen zoveel mogelijk te voorkomen.
Bovenstaande punten vertonen overigens veel parallellen met de type formulieren die benoemd zijn in hoofdstuk 2. De gestructureerde, semi gestructureerde en ongestructureerde documenten en formulieren. Vaak is de mate van invloed op het ontwerp en daardoor de uniformiteit, eenduidigheid en de wijze waarop een document wordt ingevoerd bij een gestructureerd formulier het grootst. Bij ongestructureerde formulieren is dit veel minder het geval. Juist door hier op in te spelen met uw bedrijfsprocessen, kan ook hier een behoorlijk rendement worden behaald. In de regel geldt dat het automatiseren van uw gegevensinvoer snel mogelijk blijkt. Zeker indien uw organisatie bereidt is het ontwerp en procedures af te stemmen op de technische mogelijkheden.
24
Over DDi en DDi-ers
In deze 24-uurs economie is het aantal mogelijkheden en momenten om als klant te communiceren fors toegenomen. Veel van deze communicatie vindt nog steeds schriftelijk plaats. Via de e-mail, social media, web portalen, traditionele post, et cetera. Nagenoeg ieder bericht van je klant is een opdracht aan je organisatie om wat te doen. Door de verscheidenheid komen deze ‘berichten’ op verschillende plekken en in verschillende vorm je organisatie binnen. Waar en hoe ze binnenkomen is niet direct voorspelbaar. Waar het over gaat is niet direct duidelijk. Wie er wat mee moet vaak al helemaal niet. Voordat het bericht bij de juiste behandelaar(s) ligt is deze al door vele handen gegaan en misschien wel geprint, gekopieerd en/of opnieuw gescand. Met als gevolg te veel mensen met het ‘document’ bezig zijn i.p.v. de inhoud. Status onderhanden werk is niet duidelijk. Afdelingen/mensen roepen dat ze het te druk hebben. De klant moet te lang wachten op reactie (klant gaat misschien klagen dus nog meer werk). Tegelijkertijd leven we in een tijd dat marges slinken en het aantal documentuitwisselingen groeit. Laatst zei een directeur van een bedrijf tegen mij: “Als ik mijn informatie processen niet aanpak dan besta ik over twee jaar niet meer”. Ongetwijfeld herkent niet ieder dienstverlenende organisatie zich in bovenstaande situatie. Gelukkig niet. Tegelijkertijd komen wij – DDi-ers – dikwijls in contact met organisaties die hier wel mee worstelen en van deze worstelingen af willen, of zelfs moeten. Dan zijn ze bij DDi Information Automation Engineers aan het juiste adres. De veelzijdigheid van de DDi software biedt reeds voor vele organisaties een passende oplossing voor bijvoorbeeld het bovengenoemde vraagstuk. Bovendien (en vanzelfsprekend) beheersen alle DDi-ers de magie van het data capture en document management vak. Thom Menssink Directeur DDi Information Automation Engineers
DDi BV Binnenweg 18 2132 CT Hoofddorp The Netherlands Phone +31 88 567 2000 www.ddi.nl info@ ddi.nl KvK Haarlem 34081856 IBAN NL14 RABO 0345 8630 03
25