CommunityCodierung & Entwicklunggithub.com

Öffentliche-Daten-Prüfung

Checkliste vor der Veröffentlichung von Zahlen, Diagrammen oder Vergleichen aus öffentlichen Daten. Erkennt falsche Jahre, falsche Einheiten, Verwechslungen von Verträgen mit Ausgaben, kleine Stichproben, doppelte Einträge und Lizenzprobleme. Nutze sie immer, wenn eine Antwort oder ein Produkt auf offene Daten verweist.

Was ist Öffentliche-Daten-Prüfung?

Dieses Skill verhindert häufige Fehler bei der Arbeit mit öffentlichen Daten, die zu fehlerhaften Analysen oder irreführenden Aussagen führen können. Es besteht aus einer acht Schritte umfassenden Checkliste, die vor dem Veröffentlichen einer datenbasierten Antwort, eines Diagramms oder einer Seite durchlaufen werden muss. Die Prüfungen decken den Bezugszeitraum, Einheiten und Skalierung, die tatsächliche Bedeutung der Kennzahl, Datenlücken, kleine Zahlen und Ausreißer, doppelte Entitäten, faire Vergleiche sowie Lizenz und Quellenangabe ab. Jede Regel basiert auf realen Fällen, oft mit Beispielen aus portugiesischen Daten, ist aber auf jedes Land anwendbar. Das Skill fordert, die Ergebnisse der Prüfung immer im Output zu dokumentieren – sei es als Fußnote, Caveat-Zeile oder „How we calculated“-Notiz – und niemals Einschränkungen zu verstecken, um Ergebnisse sauberer erscheinen zu lassen. Es ist besonders nützlich für Datenjournalisten, Open-Data-Rechercheure, Entwickler von Datenprodukten und Analysten, die mit APIs wie Eurostat oder INE arbeiten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jorgesousa/apis-publicas-pt/tree/main/skills/verificar-dados-publicos

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Prüfe öffentliche Daten, bevor du sie veröffentlichst

Öffentliche Daten sind leicht abzurufen und schnell falsch interpretiert. Die meisten Fehler liegen nicht im API-Aufruf, sondern in der Bedeutung der Zahl. Führe diese Checkliste vor dem Beantworten einer Frage, dem Erstellen eines Diagramms oder dem Ausliefern einer Seite durch und halte deine Ergebnisse im Output fest (als Fußnote, Caveat-Zeile oder „How we calculated“-Notiz). Verstecke niemals eine Einschränkung, um ein Ergebnis sauberer aussehen zu lassen.

Jede der folgenden Regeln basiert auf einem realen Fall. Die Beispiele verwenden portugiesische Daten, die Prüfungen gelten jedoch für jedes Land.

So verwendest du es

  1. Formuliere die Behauptung in einem Satz („Arouca gibt 845 € pro Einwohner für öffentliche Aufträge aus“).
  2. Gehe die acht Prüfungen durch. Bestätige jede oder füge einen Caveat hinzu.
  3. Beende den Output mit: Quellen, Bezugszeitraum/-zeiträume, Extraktionsdatum, Methode in einer Zeile und den Einschränkungen.

Die acht Prüfungen

1. Bezugszeitraum

  • Jede Zahl erhält ein explizites Jahr (oder einen Datumsbereich). „Aktuell“ ist kein Jahr.
  • Werden Quellen kombiniert, vergleiche ihre Jahre. Wenn sie abweichen, sage dies im Diagramm, nicht nur in einer Fußnote.
  • Prüfe, ob der letzte Zeitraum tatsächlich Werte enthält: Manche APIs geben ein leeres aktuelles Jahr zurück (Eurostat lastTimePeriod=1 gab value: {} zurück), und INE kennzeichnet aktuelle Jahre als „Dado preliminar“.
  • Achte darauf, welches Datum ein Datensatz verwendet. Portal-BASE-Dateien haben ein Feld „Jahr“, das das Vertragsjahr ist, während das Portal sagt, die Daten seien Veröffentlichungsdaten; wähle eines aus und gib es an.
  • Ein laufendes Jahr benötigt überall eine Kennzeichnung („2026 bis 4. Okt.“) und darf nicht ohne Hinweis mit einem vollen Jahr verglichen werden.

Beispiel: Verträge aus 2025, aktuellste INE-Bevölkerung ist 2023 → „€/Einwohner = 2025 Verträge ÷ 2023 Bevölkerung“.

2. Einheiten und Skalierung

  • Lies die Metadaten vor den Daten. INEs kommunale Finanzindikatoren sind in Tausend Euro (10er-Potenz = 3): 23754 sind 23,8 Mio. €, nicht 23.754 €.
  • Prüfe Währung, nominal vs. real (Inflation), Kassen- vs. Periodenrechnung und ob „%“ Anteil oder Veränderung bedeutet.
  • Pro-Kopf-Zahlen benötigen die Bevölkerung desselben Gebiets und idealerweise desselben Jahres.

3. Was die Zahl tatsächlich misst

  • Benenne das Konzept genau. Öffentliche Aufträge sind nicht die Gesamtausgaben: sie umfassen das, was vergeben (und veröffentlicht) wurde, nicht Gehälter, Transfers oder sämtliche Zahlungen. Kommunale Einnahmen und Ausgaben stammen aus dem Haushaltsvollzug (DGAL, über INE).
  • Vertragswert ≠ gezahlter Betrag. Im Portal BASE ist das Feld „effektiver Preis“ oft 0 oder fehlt – behandle ihn nicht als real.
  • Schätzungen, Prognosen und KI-generierte Transkripte sind keine amtlichen Aufzeichnungen. Gib an, um welche Art es sich handelt.

4. Abdeckung und Lücken

  • Prüfe auf fehlende Einheiten und Jahre (z. B. eine Gemeinde ohne Haushaltsdaten für ein Jahr; Schulen, die bei weniger als 15–20 Schülern unterdrückt werden).
  • Unterdrückte Werte („*“, „-99.0“, „Dado não disponível“) sind fehlend, niemals null. Schließe sie aus Durchschnitten aus und gib die Anzahl der fehlenden an.
  • Wenn ein Datensatz eingestellt wurde (z. B. der BASE-OCDS-Feed, eingefroren seit 2020; die api.openar.pt-API, archiviert 2026), vermische ihn nicht mit aktuellen Daten.

5. Kleine Zahlen und Ausreißer

  • Ein großer Posten kann eine Summe dominieren: In Arouca machte ein Projekt (Parque da Saúde) 35 % der 2025er Verträge aus. Weise darauf hin, wenn ein Posten mehr als ~20 % der Summe ausmacht.
  • Kleine Bevölkerungen lassen Pro-Kopf-Zahlen springen. Ordne kleine und große Orte nur mit einem Caveat gemeinsam ein oder gruppiere sie nach Größe.
  • Zeige Unsicherheit oder die Stichprobengröße an, wo vorhanden (z. B. „beobachtet vs. erwartet“ bei Schulindikatoren mit wenigen Schülern).

6. Einheiten und Duplikate

  • Derselbe Lieferant, dieselbe Schule oder Institution taucht unter verschiedenen Namen auf → identifiziere über eine Kennung (Steuernummer NIF/NIPC, DGEEC-Schulcode, INE-Geografiecode), nicht über den Namen.
  • Prüfe auf Duplikate über Dateien hinweg (sich überschneidende Jahresdateien, derselbe später geänderte Vertrag).
  • Klassifikationscodes können unzuverlässig sein (CPV-Codes in Verträgen): Nutze sie als Signal, verifiziere sie und gib den Anteil an, der noch „in Prüfung“ ist.
  • Veröffentliche niemals personenbezogene Daten von Privatpersonen. Maskiere private Steuernummern; Ratsmitglieder und Amtsträger in öffentlicher Funktion sind in Ordnung.

7. Fairer Vergleich

  • Vergleiche Gleiches mit Gleichem: gleicher Zeitraum, gleiche Definition, gleiche Einheit, ähnliche Größe oder ähnlicher Kontext.
  • Bevorzuge kontextbereinigte Indikatoren gegenüber reinen Rangfolgen, wenn sie existieren (z. B. „beobachtet vs. erwartet für ein ähnliches Profil“ bei Schulen).
  • Stelle Muster als Muster dar, nicht als Anschuldigungen („Noten über dem erwarteten Profil“, nicht „Noteninflation durch Schule X“).

8. Lizenz und Quellenangabe

  • Erfasse die Lizenz jedes Datensatzes oder jeder Ressource; auf dados.gov.pt kann derselbe Datensatz mit unterschiedlichen Lizenzen erscheinen.
  • Typische Fälle: Portal BASE other-pd (Public Domain); INE cc-by (Quelle: INE + Indikatorcode); IPMA keine kommerzielle Nutzung; Eurostat und EZB frei inkl. kommerziell mit Quellenangabe; Assembleia da República Quellenangabe erforderlich.
  • Wenn die Lizenz notspecified oder unklar ist, sage dies und verwende die Daten nicht in einem kommerziellen Produkt, bis sie bestätigt ist.

Output-Vorlage

Beende jede datenbasierte Antwort oder Seite mit einem Block wie diesem:

Quellen: Portal BASE/IMPIC via dados.gov.pt (Verträge 2025, Public Domain) · INE, Wohnbevölkerung 2023 (Indikator 0008273, CC BY)
Extrahiert: 2026-11-02
Methode: Wert der 2025er Verträge ÷ Wohnbevölkerung 2023
Einschränkungen: unterschiedliche Bezugsjahre; Verträge ≠ Gesamtausgaben; ein Projekt = 35 % von Aroucas Gesamtsumme

Kurzprüfung (bei Zeitmangel)

Jahr? Einheit? Was misst es genau? Fehlt etwas? Ein Posten dominiert? Dieselbe Einheit doppelt gezählt? Fairer Vergleich? Lizenz? – Wenn eine Antwort „nicht sicher“ ist, sage dies im Output.

Verwandte Skills