User Tools

Site Tools


haushaltsdaten

This is an old revision of the document!


Struktur von Haushaltsdaten

Die Haushaltsvisualisierung von Lübeck habe ich als Prototyp heruntergeschrieben. Dabei habe ich mich von der Struktur der Daten leiten lassen und die simpelste Art des Einlesens genommen die funktioniert hat. Zum Beispiel habe ich den Feldtrenner, ein Komma, direkt ins Programm geschrieben und Werte mit konkreten Strings verglichen.

Nun habe ich auch Daten aus Glückstadt bekommen und nun muss das etwas allgemeiner formuliert werden. Und die Struktur muss klar beschrieben werden, damit auch andere Gemeinden ihre Daten anpassen können. Diese Beschreibung will ich im Folgenden versuchen. Am Ende will ich mir auch Gedanken machen, wie ein ideales Format aussehen und wie man da hin kommen kann.

CSV Format

Eine CSV-Datei enthält eine Tabelle mit Daten. Jede Zeile ist ein Datensatz, der eine feste Anzahl von Einträgen enhält, die durch ein Komma (oder ein [Tab] oder ein ;) getrennt sind.

Ein Eintrag ist ein String, der ggf. auch als Zahl interpretiert werden kann. Die erste Zeile der Tabelle enthält die Spaltenüberschriften. Jede Spalte ist von einem einheitlichen Typ: Text oder Zahl.

Kodierung

CSV-Dateien enthalten keine Metadaten, so dass z.B. die Kodierung nicht in der Datei selbst vermerkt werden kann. Da in Deutschland die Kodierung ISO 8859-15 üblich ist, wird dies vorausgesetzt. Die Lübecker und Glückstädter Daten sind mit der Kodierung lesbar.

Feldtrenner

Der Separator kann Komma “,”, Semikolon “;” oder ein Tab sein. Ein Feld kann mit Anführungszeichen >“< eingeschlossen sein, und muss wenn es den Separator enthält.

Tabelle

Spalten

Die 19 Spalten der Tabelle teile ich in folgende Bereiche:

  Produkt
      1-stelliger Produktbereich - Kennung
      1-stelliger Produktbereich - Bezeichnung
      2-stelliger Produktbereich - Kennung
      2-stelliger Produktbereich - Bezeichnung
      Produktgruppe - Kennung
      Produktgruppe - Bezeichnung
      Produkt - Kennung
      Produkt - Bezeichnung
  Position
      Ertrags- und Aufwandsarten - Gliederung 1
      Ertrags- und Aufwandsarten - Gliederung 2
      Ertrags- und Aufwandsarten - Beschreibung
  Konto
      Kontonummer
      Kontobezeichnung
  Werte
      Ergebnis Jahresabschluss 2012
      Haushaltsansatz 2013
      Haushaltsansatz 2014
      Mittelfristige Ergebnisplanung 2015
      Mittelfristige Ergebnisplanung 2016
      Mittelfristige Ergebnisplanung 2017

Ein Finanzplan sieht praktisch genauso aus, ausser dass die Werte noch eine Spalte zusätzlich für Verpflichtungsermächtigungen hat.

  Werte
      Ergebnis Jahresabschluss 2012
      Haushaltsansatz 2013
      Haushaltsansatz 2014
      //Verpflichtungsermächtigungen//
      Mittelfristige Ergebnisplanung 2015
      Mittelfristige Ergebnisplanung 2016
      Mittelfristige Ergebnisplanung 2017

Ergebnisrechnung

Die Ergebnisrechnung eines Produkts besteht aus Positionen mit einer Beschreibung, einer Ordnungsnummer (Gliederung 2) und einem Typkennzeichen (Gliederung 1). Eine Position besteht aus positiven oder negativen Buchungen auf bestimmte Konten. Der Wert einer Position ist die Summe der enthaltenen Buchungen. Es gibt auch Positionen ohne Buchungen, die zusammengefasste Werte anderer Positionen enthalten.

Die Spalte “Ertrags- und Aufwandsarten - Gliederung 1” enthält die Kontenart der Buchungen als 2- oder 3-stellige Zahl. Da die Kontonummer aber immer mit dieser Zahl beginnen, kann die Spalte ignoriert werden. Das erleichtert die Verarbeitung, da eine Position Schwierigkeiten macht: Zeile 5 “privatrechtliche Leistungsentgelte” hat 3 Kontenarten zugeordnet: 441, 442 und 446. Lübeck schreibt das in einzelne Zeilen (die für 441 und 442 sind leer) und Glückstadt schreibt die Zahlen in eine Zeile “441, 442, 446”. Beide Varianten sind unbefriedigend. Da die Spalte aber redundant ist, wird sie ignoriert.

Leerzeilen

Am Ende stehen die eigentlichen Zahlen: 2 Vorjahre, das aktuelle Jahr (beim Finanzplan noch die Ermächtigungen) und 3 Folgejahre. Alle Zeilen, die in allen Spalten keine Werte oder nur Nullen hat, wird ignoriert, da sie keine Bedeutung haben und sich die Struktur auf andere Weise ergibt.

/var/www/virtual/code4hl/html/dokuwiki/data/attic/haushaltsdaten.1428735187.txt.gz · Last modified: 2015/04/11 08:53 by christian