Warum ich es entwickelt habe
Ich wollte eine gemeinsame Übersicht über private und geschäftliche Konten bei mehreren Banken, wobei jedes Konto eindeutig erkennbar bleibt. Ausserdem wollte ich nicht länger raten müssen, ob alle Auszüge hochgeladen waren — oder mit Tabellen arbeiten, die für fehlende Monate stillschweigend Nullen einsetzen.
Was die Anwendung heute leistet
Kontoauszüge werden hochgeladen, bankspezifische Layouts verarbeitet und Anfangs- und Endsalden sowie Transaktionssummen geprüft, bevor Daten in das Haushaltsbuch übernommen werden. Fehler gelangen zur manuellen Prüfung.
Danach lassen sich Transaktionen zusammen mit dem Original-PDF als Nachweis durchsuchen, Ausgaben regelbasiert kategorisieren (manuelle Korrekturen bleiben bestehen), Überträge zwischen eigenen Konten ausschliessen, Einnahmen und Kosten Liegenschaften zuordnen, Steuerbescheinigungen und Bankschreiben vom Haushaltsbuch fernhalten sowie CSV-Dateien exportieren. Währungen bleiben getrennt.
Derzeit werden Yuh, UBS (einschliesslich gescannter Seiten mittels OCR) und Santander UK unterstützt. Die Rollen Partner und Accountant begrenzen den Zugriff.
Wo ich KI eingesetzt habe — und wo nicht
Die Layouts von Kontoauszügen sind vorhersehbar, deshalb habe ich dafür reguläre Parser im Code geschrieben. Gescannte UBS-PDFs benötigen OCR (Tesseract) — das ist ein Werkzeug, kein Chat-Prompt. Ich verwende kein LLM, um Salden zu erfinden: Fehlgeschlagene Prüfungen bleiben zur Kontrolle vorgemerkt, bis ich sie freigebe oder ablehne. KI hat mich beim Aufbau und bei der Weiterentwicklung der Anwendung unterstützt; unser Haushaltsbuch darf sie nicht umschreiben.
Funktionen
Ausgabenanalyse
Ein- und Ausgänge pro Monat und Währung — nie zu irreführenden Gesamtsummen vermischt. Fehlt für einen Monat der Kontoauszug, bleibt der Wert leer, statt eine falsche Null anzuzeigen; auch Durchschnittswerte überspringen diese Lücke. Kategorien entstehen aus expliziten Regeln. Überträge zwischen eigenen Konten bleiben aus der Ausgabenanalyse ausgeschlossen.
Schreiben oder Kontoauszug
Eingehende Dokumente werden nach ihrem Zweck klassifiziert. Bankschreiben und Mitteilungen werden als Korrespondenz unter Mail abgelegt, nicht als Buchungsdaten. Steuerbescheinigungen, Zinsübersichten und ähnliche Dateien bleiben Nachweise — lesbar und mit dem Original-PDF verknüpft, aber nie in Transaktionen umgewandelt.
Fehlende Kontoauszugsperioden
Das Abdeckungsraster zeigt, welche Auszugsperioden vorhanden sind und welche noch bei der Bank angefordert werden müssen. Grün bedeutet, dass ein Auszug vorhanden ist; Rot kennzeichnet eine Lücke. Konnte OCR eine Datei nicht zuverlässig lesen, markiere ich sie zur Prüfung — das PDF zu besitzen, bedeutet nicht automatisch, den Zahlen zu vertrauen.
Liegenschaften & Steuerabzüge
Wo es relevant ist, lassen sich Einnahmen und Ausgaben einzelnen Liegenschaften zuordnen — ohne Hypothek, Steuern und Gebühren in einer unscharfen Kategorie «Wohnen» zusammenzufassen. Steuerabzugsfähige Beträge entsprechen ausschliesslich den tatsächlich geltend gemachten Beträgen; sie werden nie aus einer Kategoriebezeichnung abgeleitet.
Wie ich die Anwendung weiterentwickeln möchte
Diese Ideen sind geplant oder für später denkbar — heute bestehen sie noch nicht als Funktionen.
Langfristig soll Household Finance mehr unserer eingehenden Haushaltspost automatisch verarbeiten: Steuerdokumente ablegen, irrelevante Korrespondenz ignorieren, nützliche Informationen extrahieren und schliesslich bei Aufgaben wie Terminvereinbarungen helfen. Später könnten verständliche Erklärungen, Übersetzungen von DE nach EN und Hinweise zur Untersuchung von Ausgaben hinzukommen.
Das wären beratende oder administrative Hilfen. Das Haushaltsbuch selbst würde weiterhin auf deterministischer Verarbeitung und Validierung beruhen — nicht auf einem LLM, das Finanzdaten erfindet.
Architektur
- PostgreSQL speichert geprüfte Transaktionen; Original-PDFs bleiben als unveränderliche Nachweise in MinIO.
- Ablauf: hochladen → extrahieren → klassifizieren → verarbeiten → Salden/Summen validieren → bei erfolgreichen Prüfungen automatisch freigeben oder prüfen → freigeben / ablehnen / ersetzen.