Stammdatenqualität messen: Prüfregeln und Kennzahlen
Kurz gesagt
Stammdatenqualität messen Sie mit drei Regeln: Vollständigkeit je Pflichtfeld, Eindeutigkeit über den Schlüssel und Gültigkeit gegen Format oder Code-Liste. Legen Sie Zähler, Nenner, Stichtag und Ausschlussregel je Regel vor der ersten Messung schriftlich fest; ohne sie ist keine Quote wiederholbar. Die Rechnung gilt in Deutschland, Österreich und der Schweiz gleich, nur die verwendeten Listen unterscheiden sich.
Das Wichtigste
- Ohne Stichtag, Ausschlussregel und Regelversion sind zwei Messungen desselben Bestands nicht vergleichbar.
- Vollständigkeit zählt gefüllte Pflichtwerte, getrennt je Feld und je Datensatz.
- Eindeutigkeit vergleicht die Zahl der verschiedenen Schlüsselwerte mit der Zahl der Datensätze mit gefülltem Schlüssel; Datensätze mit leerem Schlüssel zählen dabei nicht mit.
- Gültigkeit prüft Format, Zeichenvorrat, Code-Liste und Wertebereich gegen eine Regel je Feld.
- Richtigkeit braucht eine Referenz außerhalb des Systems, etwa ein Wiegen im Lager, eine Inventur oder einen Lieferschein.
- Die Aktualität hat zwei Teile: den Abstand zwischen Erfassung und Verfügbarkeit, den Sie an den Zeitstempeln im System messen, und den heutigen Stand, den erst ein Abgleich außerhalb zeigt.
Stammdatenqualität wird messbar, sobald Sie für jedes Pflichtfeld aufschreiben, welcher Wert zulässig ist, und dann zählen, wie viele Datensätze das erfüllen. Diese Anleitung führt von der Feldliste über die Prüfregeln zu einer Quote mit Nenner, Stichtag und Zielwert.
Was Sie vorab brauchen
- einen vollständigen Auszug des Artikel- und des Kundenstamms mit Feldnamen und Länge, lesend, auf einer Kopie oder außerhalb der Arbeitszeit
- die Pflichtfelder je Objekt und Verwendung: was Rechnung, Versand und Auswertung brauchen
- die Felder, die eindeutig sein müssen: Artikelnummer, GTIN, Kundennummer, USt-IdNr. oder UID, IBAN
- die Code-Listen, gegen die Sie prüfen, je mit Datum und Herkunft
- einen Stichtag mit Uhrzeit des Auszugs
- eine Ausschlussregel, im Beispiel: nur aktive, nicht gesperrte Artikel
- eine Person für die Zielwerte und ein Regelwerk, das mit Versionsstand abgelegt wird
Diese Festlegungen gehören vor die erste Messung; sonst liefert ein zweiter Lauf mit anderem Filter eine andere Zahl, ohne dass sich die Daten geändert hätten.
Schritt für Schritt: Prüfregeln festlegen und messen
Schritt 1: Felder und Pflichtfelder auflisten
Zählen Sie die Felder beider Stämme und ordnen Sie jedem Feld eine Verwendung zu. Pflichtfeld ist ein Feld, wenn ein Vorgang ohne gefüllten Wert scheitert: eine Lieferung ohne Mengeneinheit, eine Rechnung ohne Anschrift. Felder, die nur eine Auswertung speisen, markieren Sie getrennt. Endstand: eine Liste je Objekt mit Feldname, Zweck und Rang (Pflicht, bedingt, freiwillig).
Schritt 2: Nenner, Zähler und Ausschlüsse festlegen
Schreiben Sie vor der ersten Abfrage, welche Datensätze zählen (Nenner), welcher Wert als korrekt gilt (Zähler) und welcher Tag der Stichtag ist. Gesperrte Artikel, Kunden ohne Umsatz im Zeitraum und Datensätze aus einer Altsystemzeit brauchen je eine eigene Entscheidung. Endstand: eine Regelkarte je Kennzahl.
Schritt 3: Die Prüfregel in eine Formel übersetzen
Jede Regel hat drei Teile: Bedingung, Zähler, Nenner. Formulieren Sie sie in einem Satz und in Zeichen, zum Beispiel “Vollständigkeit Nettogewicht = aktive Artikel mit gefülltem Nettogewicht geteilt durch aktive Artikel mal 100”. “Gepflegt” ist keine Bedingung, “Wert ist nicht leer” ist eine. Notieren Sie Einheit (Prozent) und Rundung.
Schritt 4: Beispielabfrage bauen und auf einer Kopie prüfen
Setzen Sie die Formel in eine Abfrage um: gruppieren, zählen, vergleichen. Prüfen Sie jede Abfrage dreimal: auf dem vollständigen Auszug, mit einem Filter, dessen Ergebnis Sie kennen, und an einem Datensatz, den Sie von Hand geändert haben. Die Abfragen unten sind Pseudocode; Spaltennamen setzen Sie aus Ihrem System ein.
Schritt 5: Ergebnis mit Zähler und Nenner berichten
Zu jeder Quote gehören Zähler, Nenner, Stichtag, Ausschlussregel und Regelversion, damit eine zweite Person nachrechnen kann. Im Beispiel heißt 60,5 Prozent: 1.900 von 3.140 aktiven Artikeln. Die Quote allein verschweigt, ob sich Zähler oder Nenner bewegt hat.
Schritt 6: Altbestand vom Neuzugang trennen
Messen Sie die Lücken zusätzlich nach Anlagedatum. Ist der Neuzugang deutlich besser als der Altbestand, ist die verbleibende Lücke eine Aufräumaufgabe und keine Prozessfrage.
Schritt 7: Zielwert setzen und Wirkung messen
Legen Sie je Regel einen Zielwert als eigene Vorgabe fest, nicht als Branchenstandard: im Beispiel 98 Prozent für Felder, die jeder Beleg braucht, und 90 Prozent für reine Auswertungsfelder. Messen Sie in festem Takt, im Beispiel monatlich zum Monatsultimo, mit unveränderter Regel.
Prüfregeln mit Formel und Beispielabfrage
Die drei Dimensionen stammen aus der Datenqualitätsliteratur. Das Government Data Quality Framework (Cabinet Office und Office for National Statistics, veröffentlicht am 3. Dezember 2020) beschreibt sechs Dimensionen, darunter Vollständigkeit, Eindeutigkeit und Gültigkeit, und nennt Rechenbeispiele. Es ist eine Empfehlung an die britische Zentralverwaltung und bindet Ihren Betrieb nicht; DAMA International gibt mit dem DAMA-DMBOK das Rahmenwerk heraus, das es als Grundlage nennt. Formeln, Abfragen und Zielwerte unten sind eigene Festlegungen.
Vollständigkeit
Vollständigkeit verlangt nach dem Framework zweierlei: dass alle Datensätze vorhanden sind und dass die wesentlichen Werte in ihnen gefüllt sind. Daraus werden zwei Regeln, die Feldquote und die Satzquote.
| Regel | Formel | Beispielabfrage (Pseudocode) |
|---|---|---|
| Pflichtfeld gefüllt | nicht leere Werte im Feld geteilt durch betrachtete Datensätze, mal 100 | SELECT COUNT(*), COUNT(netto_gewicht) FROM artikel WHERE status = 'aktiv'; |
| Datensatz ohne leeres Pflichtfeld | Datensätze ohne leeren Pflichtwert geteilt durch betrachtete Datensätze, mal 100 | SELECT COUNT(*) FROM artikel WHERE status = 'aktiv' AND (netto_gewicht IS NULL OR steuersatz IS NULL OR einheit IS NULL OR ean IS NULL); |
| Datensätze vorhanden (Soll-Liste) | gefundene Nummern geteilt durch Nummern der Soll-Liste, mal 100 | SELECT p.ean FROM preisliste p LEFT JOIN artikel a ON a.ean = p.ean WHERE a.ean IS NULL; |
Die erste Abfrage zählt alle Zeilen und daneben die gefüllten Werte; die Differenz ist die Lücke. Die zweite liefert die Gegenzahl zur Satzquote. Die dritte vergleicht gegen eine fremde Liste, etwa die Artikelnummern eines Lieferanten, die Sie vorher als Tabelle laden.
Eindeutigkeit
Eindeutigkeit heißt nach dem Framework, dass kein Datensatz doppelt vorkommt. Gemessen wird über ein Feld, das eindeutig sein muss.
| Regel | Formel | Beispielabfrage (Pseudocode) |
|---|---|---|
| Eindeutigkeit des Schlüssels | verschiedene Werte im Schlüsselfeld geteilt durch Datensätze mit gefülltem Schlüsselfeld, mal 100 | SELECT COUNT(*), COUNT(DISTINCT ean) FROM artikel WHERE status = 'aktiv' AND ean IS NOT NULL; |
| Duplikatgruppen auflisten | Gruppen mit mehr als einem Datensatz je Wert | SELECT ean, COUNT(*) FROM artikel GROUP BY ean HAVING COUNT(*) > 1; |
| Kennung doppelt vergeben | Zählung je Kennung | SELECT kundennummer, COUNT(*) FROM kunde GROUP BY kundennummer HAVING COUNT(*) > 1; |
Nehmen Sie leere Werte vorher aus (IS NOT NULL), sonst zählt die Gruppe der leeren Werte als ein Doppelfall. Kennungen wie USt-IdNr. oder UID dürfen sich zwischen zwei Datensätzen wiederholen; gleiche Werte sind ein Hinweis auf eine Dublette, aber kein Beweis. Die Zusammenführung behandelt Dubletten im Kundenstamm.
Gültigkeit
Gültigkeit heißt nach dem Framework, dass ein Wert im erwarteten Format und Bereich liegt. Zähler sind die gültigen Werte, Nenner die gefüllten.
| Regel | Formel | Beispielabfrage (Pseudocode) |
|---|---|---|
| Prüfziffer eines Nummernschlüssels (GTIN) | gültige Werte geteilt durch gefüllte Werte, mal 100; Prüfregel: Gewichte von rechts 3 und 1, Summe S, Prüfziffer ist der Abstand von S zum nächsten vollen Zehner | Prüfziffer im Skript nachrechnen; Längenprüfung: SELECT gtin FROM artikel WHERE laenge(gtin) NOT IN (8,12,13,14); |
| Länge und Länderkennzeichen (IBAN) | gültige Werte geteilt durch gefüllte Werte, mal 100 | SELECT kundennummer FROM kunde WHERE iban IS NOT NULL AND (laenge(iban) <> 22 OR iban NOT LIKE 'DE%'); |
| Code-Liste (Ländercode) | Werte in der Liste geteilt durch gefüllte Werte, mal 100 | SELECT DISTINCT land FROM kunde WHERE land NOT IN (SELECT code FROM laenderliste); |
| Grundform einer E-Mail-Adresse | Werte in der Grundform geteilt durch gefüllte Werte, mal 100 | SELECT kunde FROM kunde WHERE email IS NOT NULL AND (email NOT LIKE '%_@_%._%' OR email LIKE '% %'); |
Eine GTIN hat 8, 12, 13 oder 14 Stellen, die letzte ist die Prüfziffer. Sie hilft nach GS1, fehlerhaft zusammengesetzte Nummern zu erkennen, etwa beim Abtippen, und bleibt eine Plausibilitätsprüfung. Die erfundenen Ziffern 7 6 5 4 3 2 1 0 9 8 7 6 ergeben, von rechts abwechselnd mit 3 und 1 gewichtet, die Summe 110, die im Zehner aufgeht: die Prüfziffer ist 0, die GTIN-13 lautet 7654321098760. Die auf 14 Stellen aufgefüllten Nullen muss ein Datenfeld einheitlich führen oder einheitlich weglassen, sonst erscheint ein Wert doppelt. Die GS1 General Specifications binden über Ihre Vereinbarung mit GS1 und die Anforderungen Ihrer Handelspartner; eine gesetzliche Vorschrift zur GTIN haben wir in den geöffneten Quellen nicht gefunden.
Eine deutsche IBAN hat 22 Zeichen: Länderkennzeichen DE, zwei Zeichen Prüfziffer, acht Ziffern Bankleitzahl und zehn Ziffern Kontonummer (Bundesbank). Länge und Kennzeichen hängen vom Land ab; für Konten anderer Länder prüfen Sie die Regel an einer amtlichen Quelle.
Die UN-Liste führt Länder und Gebiete mit dem ISO-Code aus drei Buchstaben (Alpha-3), etwa DEU, AUT und CHE. Sie dient statistischen Zwecken und ist für Ihr Feld nicht verbindlich; die erlaubten Werte legen Sie selbst als Code-Liste fest.
Die Grundform einer E-Mail-Adresse besteht nach RFC 5322 (Internet Message Format, Oktober 2008) aus lokalem Teil, @-Zeichen und Domain. Der RFC ist ein Standard der Internet Engineering Task Force und kein Rechtsakt; wirksam wird er über die Software, die Adressen verarbeitet. Die Zusatzbedingungen der Beispielabfrage, also der Punkt in der Domain und die fehlenden Leerzeichen, sind eigene Festlegung.
Rechnen Sie die Gültigkeitsquote über gefüllte Werte und weisen Sie die leeren getrennt aus; mit leeren Werten im Zähler steigt die Gültigkeit, obwohl die Lücke in der Vollständigkeit steckt.
Richtigkeit, Aktualität und Zeitversatz prüfen
Richtigkeit heißt Übereinstimmung mit der Wirklichkeit. Ob ein Wert stimmt, zeigt erst eine Referenz außerhalb des Systems, etwa ein Wiegen im Lager, eine Inventur, ein Lieferschein oder eine Rückfrage beim Kunden. Geprüft werden können einzelne Datensätze oder der ganze Bestand; welche Breite wirtschaftlich ist, hängt von Ihrem Bestand ab.
Aktualität hat zwei Teile. Der Abstand zwischen Erfassung und Verfügbarkeit lässt sich an Zeitstempeln messen, wenn beide Daten im System stehen: das Eingangsdatum des Belegs oder des Kundenkontakts und der Zeitstempel der Speicherung. Vergleichen Sie diesen Abstand mit einer selbst gesetzten Frist (im Beispiel zwei Werktage). Ob die Werte noch den tatsächlichen heutigen Stand zeigen, zeigt dagegen erst ein Abgleich außerhalb, etwa eine Inventur oder eine Kundenauskunft.
Rechnen Sie jede dieser Prüfungen als eigene Quote aus geprüften Fällen und nennen Sie die Zahl der geprüften Fälle; zwanzig geprüfte Datensätze belegen keine Quote für den ganzen Bestand.
Beispielrechnung mit erfundenen Zahlen
Alle Zahlen dieses Abschnitts sind erfunden. Der Betrieb hat 4.820 Artikel, davon 3.140 aktiv, und 1.245 aktive Kunden; der Auszug stammt vom 30. September 2026.
| Regel | Zähler | Nenner | Quote |
|---|---|---|---|
| Vollständigkeit Nettogewicht (aktive Artikel) | 1.900 | 3.140 | 60,5 Prozent |
| Satzquote: alle vier Pflichtfelder gefüllt | 1.860 | 3.140 | 59,2 Prozent |
| Vollständigkeit GTIN (aktive Artikel) | 3.096 | 3.140 | 98,6 Prozent |
| Eindeutigkeit GTIN (aktive Artikel) | 3.074 verschiedene Werte | 3.096 gefüllte Werte | 99,3 Prozent |
| Gültigkeit GTIN nach Prüfziffer | 3.059 | 3.096 gefüllte Werte | 98,8 Prozent |
| Vollständigkeit E-Mail (aktive Kunden) | 1.012 | 1.245 | 81,3 Prozent |
Nachgerechnet: 1.900 durch 3.140 ergibt 0,6051, also 60,5 Prozent; 1.860 durch 3.140 ergibt 0,5924, also 59,2 Prozent; 3.096 durch 3.140 ergibt 0,9860, also 98,6 Prozent; 3.074 durch 3.096 ergibt 0,9929, also 99,3 Prozent; 3.059 durch 3.096 ergibt 0,9880, also 98,8 Prozent; 1.012 durch 1.245 ergibt 0,8128, also 81,3 Prozent.
Von den 3.140 aktiven Artikeln tragen 3.096 eine GTIN, 44 haben keine; die 44 leeren Werte sind die Lücke der Vollständigkeitsregel für dieses Feld und bleiben bei der Eindeutigkeit außerhalb der Zählung. Unter den 3.096 gefüllten Werten kommen 22 GTIN je zweimal vor, also 22 Paare mit 22 überzähligen Datensätzen: 3.096 minus 22 ergibt 3.074 verschiedene Werte. Die Zusammenführung dieser 22 Paare lässt 3.118 aktive Artikel übrig, davon 3.074 mit einer der 3.074 GTIN und weiterhin 44 ohne: Die Eindeutigkeit steigt auf 100 Prozent (3.074 von 3.074 gefüllten Werten), die Vollständigkeit der GTIN bleibt bei 98,6 Prozent (3.074 von 3.118). Die Bereinigung schließt die Doppelung, nicht die Lücke.
So prüfen Sie das Ergebnis
- Nennerprobe: Zählen Sie die betrachteten Datensätze ohne Feldbedingung und vergleichen Sie die Zahl mit dem Nenner Ihrer Regel.
- Summenprobe: Datensätze mit gefülltem Wert plus Datensätze ohne Wert ergeben den Nenner.
- Wiederholprobe: Dieselbe Regel zweimal auf demselben Auszug, in anderer Schreibweise. Zwei verschiedene Zahlen zeigen einen Fehler in der Abfrage, nicht in den Daten.
- Stichprobe: Zehn Treffer je Fehlerliste im ERP öffnen und nachsehen, ob der Wert fehlt oder nur anders gespeichert ist.
- Stichtagsprobe: Zeilenzahl des Auszugs mit der Anzeige im ERP vergleichen; Auszugszeitpunkt und Regelversion festhalten.
Wenn etwas nicht klappt
| Symptom | Mögliche Ursache | Vorgehen |
|---|---|---|
| Zwei Auswertungen nennen verschiedene Quoten | abweichender Nenner, Filter oder Stichtag | beide Auswertungen nebeneinanderlegen und angleichen |
| Die Vollständigkeit ist unerwartet hoch | leere Zeichenketten und Leerzeichen gelten als gefüllt | zusätzlich auf Leerzeichen und leere Zeichenkette prüfen, nicht nur auf NULL |
| Die Eindeutigkeit ist unerwartet niedrig | Schlüsselwerte sind uneinheitlich geschrieben, etwa mit und ohne führende Nullen | vor dem Zählen normalisieren und die Normalisierung festschreiben |
| Die Quote ändert sich bei jedem Lauf | der Auszug wird zu verschiedenen Zeiten oder mit anderem Filter gezogen | Auszug mit festem Zeitpunkt in einer Kopie einfrieren |
| Ein Treffer aus der Fehlerliste ist im ERP korrekt | das Feld wird anders gespeichert, als die Abfrage erwartet | Sachverhalt im System prüfen und die Abfrage anpassen |
Wann Sie Hilfe holen sollten
Holen Sie den ERP-Betreuer dazu, wenn Sie keine Leserechte für eine Kopie erhalten oder eine berechnete Spalte eine Anpassung verlangt. Die Zielwerte legen Geschäftsleitung und Datenverantwortliche gemeinsam fest; wer die Daten pflegt, muss den Wert auch vertreten. Betrifft eine Lücke Felder, die auf Belegen erscheinen, klären Sie die Wirkung mit der Buchhaltung, bevor Sie Datensätze ändern. Für die Zuordnung über Verkaufskanäle hilft Artikelnummer, SKU und GTIN, die Prüfziffer beim Datenimport behandelt Excel-Export und -Import, und die Bestandsseite misst Bestandsgenauigkeit.