Een checklist voor landendatadekking lijkt een eenvoudig artefact tot de eerste discussie over een getal losbarst. Twee mensen tellen dezelfde dataset, krijgen twee verschillende totalen, en geen van beiden heeft ongelijk. Het geschil gaat bijna nooit over rekenwerk; het gaat erover wat er werd geteld en wie besloot dat een lege cel een probleem was.
Dit artikel behandelt de checklist als een meetinstrument. Het behandelt de drie toestanden waarin een veld zich kan bevinden, de keuze van de noemer die een percentage betekenisvol maakt, en de vorm van een lijst die iemand anders kan auditen zonder jou te hoeven vragen wat je bedoelde.
Wat moet een dekkingschecklist eigenlijk tellen?
Het eerlijke antwoord is dat ze overeenkomsten telt, niet waarden. Voor elke combinatie van een land en een veld moet de checklist vastleggen of de verwachting van het datamodel en de werkelijkheid van het land op elkaar aansluiten.
Die inkadering verandert hoe een gat eruitziet. Een lege cel is niet automatisch een defect, en een gevulde cel is niet automatisch dekking. De eenheid die wordt gemeten is een beslissing: hoort dit veld voor dit land iets te bevatten, en doet het dat? Al het andere in de checklist volgt uit het beantwoorden van die vraag per land in plaats van per tabel.
Een checklist die één hoofdtotaal rapporteert, is om die reden bijna nutteloos. Ze vat duizenden beslissingen samen in één getal en gooit de informatie weg die een lezer nodig heeft om te kunnen handelen.
De drie toestanden: van toepassing, niet van toepassing, ontbrekend
Drie toestanden moeten afzonderlijk worden bijgehouden, en het samenvoegen van twee ervan is wat dekkingscijfers vlakker maakt dan de werkelijkheid.
| Toestand | Betekenis | Wat ze vereist |
|---|---|---|
| Van toepassing en aanwezig | Het land heeft dit soort gegevens en er is een waarde opgeslagen | Niets, behalve actueel houden |
| Niet van toepassing | Het systeem van dit land kent zo’n veld helemaal niet | Een expliciete markering, zodat niemand jaagt op een waarde die niet kan bestaan |
| Ontbrekend | Het land hoort een waarde te hebben en heeft die niet | Een oplossing, een eigenaar en een datum |
De middelste toestand is degene die verloren gaat. Wanneer ze als een lege cel wordt vastgelegd, leest ze later als een gat, en iemand besteedt een week aan het vullen van iets dat geen bron heeft. Wanneer ze als een waarde wordt vastgelegd — een plaatsvervanger zoals een nul of een lege tekenreeks — erven rapporten stroomafwaarts een nepfeit en behandelen dat als echt.
De drie toestanden afzonderlijk vastleggen is ook wat de noemer eerlijk houdt. Dekking gemeten over velden die van toepassing zijn, beantwoordt één vraag; dekking gemeten over alle velden beantwoordt een andere, en alleen de eerste verbetert ooit.
Moet dekking per land of per veld worden gemeten?
Beide, en de keuze moet worden opgeschreven, want de twee cijfers kunnen scherp van mening verschillen.
Per land is de vraag hoe volledig een bepaald land is vertegenwoordigd. Per veld over landen heen is de vraag of een veld breed bruikbaar is of voor een handvol vermeldingen bestaat. Een veld dat overal aanwezig is behalve in één regio ziet er per veld uitstekend uit en ziet er per land uit als een gat.
Twee conventies voorkomen de meeste verwarring. Vermeld de noemer in de kop van de tabel in plaats van in een voetnoot. En houd gewogen en ongewogen cijfers gescheiden: wegen naar verkeer, naar omzet of naar aantal records beantwoordt een zakelijke vraag, terwijl landen tellen een datavraag beantwoordt. Een checklist die ze vermengt, levert een getal op dat niemand kan verdedigen.
De minimale veldenset en alles daarboven
Begin met de velden waarvan vrijwel elk land een vorm heeft — een code, een naam, een valuta, een tijdzone — en noem dat de minimale set. Meet die eerst en publiceer die afzonderlijk.
De reden is signaal-ruisverhouding. Optionele velden verschillen zo sterk tussen landen dat één gemengd totaal je bijna niets vertelt over een van beide groepen. De minimale set in één blok houden betekent dat een fout daar een echte waarschuwing is, terwijl een dun optioneel veld op zijn eigen merites kan worden besproken.
Boven de minimale set vermeld je elk optioneel veld met de landen waar het van toepassing is, de landen waar het dat niet is, en de landen waar het antwoord nog onbekend is. Die derde kolom is het deel dat de meeste checklists weglaten, en het is meestal het nuttigste, want het is een werkwachtrij en geen vonnis.
Hoe leg je een land met meer dan één officiële taal vast?
Een land met meerdere officiële talen doorbreekt de aanname dat elke rij één waarde per kolom bevat. Of de taalkolom enkelvoudig of meervoudig is, is een modelleerbeslissing, en die moet worden genomen voordat de eerste rij wordt ingevoerd in plaats van nadat het eerste rapport verkeerd terugkomt.
Als de kolom één waarde bevat, moet iets anders — een aparte tabel of een expliciete regel — de rest dragen, en de checklist moet zeggen wat. Als ze meerdere waarden bevat, moet elke telling in het werkblad duidelijk zijn over de vraag of een land met meerdere waarden één rij of meerdere bijdraagt, want die keuze verandert elk totaal eronder.
Dezelfde vraag geldt voor valuta en voor deelnamen, die binnen één land net zo goed meervoudig kunnen zijn. De checklist hoeft het modelleerdebat niet te beslechten, maar ze moet wel vastleggen welk antwoord is gekozen, zodat een latere lezer een beslissing van een vergissing kan onderscheiden.
Voor ontwikkelaars: maak de checklist opvraagbaar
Een checklist die in een document leeft, wordt één keer gelezen en daarna verlaten. Een checklist die kan worden opgevraagd, wordt in een pipeline gecontroleerd en blijft waar.
Representeer haar als data: één record per land en veld, met de toestand, de bron, de datum waarop de toestand is vastgesteld en de eigenaar. Dan worden de vragen die ertoe doen gewone query’s. Welke landen missen een veld dat de minimale set vereist? Welke velden veranderden van toestand sinds de vorige release? Welke landen hebben langer dan één releasecyclus een onbekende toestand?
Houd de onbekenden zichtbaar in plaats van ze weg te filteren. Een onbekende die achter een standaardwaarde schuilgaat, is de duurste soort, want ze telt stilzwijgend als wat de standaardwaarde impliceert. En wanneer je een lezer doorverwijst naar de onderliggende landnotities, is de landen- en regiorgids de neutrale plek om naartoe te wijzen, terwijl een pagina zoals de vermelding voor Duitsland laat zien welk detailniveau één land hoort te dragen. Voor de onderliggende codeervragen behandelt de gids over ISO-land- en onderverdelingscodes de coderingskant die deze checklist bewust met rust laat.
Alles wat hier wordt getoond, is illustratief. De veldnamen, toestanden en voorbeeldwaarden in deze checklist zijn synthetisch materiaal dat voor een testdiscussie is geschreven, geen meting van een echt systeem, een echte organisatie of een echte dataset, en ze mogen niet als bevinding worden geciteerd.
Volgende stappen
Bouw de eerste versie van de checklist voor één veld dat je al vertrouwt en één veld dat je wantrouwt, en zet ze naast elkaar. Het contrast laat meestal binnen een uur zien of het werkblad iets meet. Wanneer de checklist stabiel is, pakt de gids over testdata opschalen naar meerdere landen verder waar het meten ophoudt, en de gids over landen kiezen voor testdata legt uit hoe de landenlijst eronder in de eerste plaats gekozen hoort te worden.