Case Study · Fintech
LedgerFlow: Plattform für persönliche Finanzen
Mandantenfähige Budgeting- und Forecasting-Plattform mit Kontoauszug-Import und KI-gestützter Transaktionskategorisierung.
- Branche
- Persönliche Finanzen
- Zeitraum
- 5 Wochen bis zur Produktion
- Jahr
- 2026
- Leistungen
- Product Engineering, KI-Integration, DevOps
Das Problem
Budgeting-Apps zerfallen in zwei Lager: Cloud-Dienste, die Ihre Bankzugangsdaten wollen und Ihre Muster verkaufen, oder Tabellen, die in der dritten Woche manueller Erfassung sterben. Der Auftraggeber wollte keins von beidem: volle Datenhoheit, echtes Forecasting und Importe von einer Bank, deren CSV-Exporte mit Windows-1250-Encoding, vierzehn kaum dokumentierten Spalten und ohne stabile Transaktions-IDs daherkommen.
Was wir gebaut haben
Eine self-hosted Plattform für persönliche Finanzen: Transaktionen, Budgets, Erkennung wiederkehrender Zahlungen, Kategorie-Regeln und Cashflow-Forecasting, mandantenfähig ab der ersten Migration, damit sie eine Familie oder ein kleines Team ohne Rewrite bedienen kann.
Die spannenden Probleme steckten in der Pipeline:
- CSV-Import, der die Realität überlebt. Der Export der Bank hat keine eindeutige Transaktions-ID, dedupliziert wird deshalb über einen Content-Hash, der das Bankreferenzfeld einbezieht. Die Encoding-Erkennung verkraftet CP1250-Exporte, die über ihren eigenen Charset lügen.
- KI-Kategorisierung mit Feedback-Loop. Neue Transaktionen laufen zur Kategorisierung durch ein LLM-Gateway. Jede manuelle Korrektur wird zur persistenten Regel: Der Job des Modells schrumpft mit der Zeit, statt dieselben Fehler zu wiederholen.
- Forecasting. Wiederkehrende Transaktionen werden aus der Historie erkannt und fortgeschrieben. Das Ergebnis ist eine rollierende Cashflow-Kurve statt einer statischen Budgettabelle.
Architektur
FastAPI-Backend mit PostgreSQL Row-Level Security für die Mandantentrennung, Redis und Celery für Import- und Kategorisierungsjobs, React-SPA im Frontend. Alles läuft als Docker-Container hinter einem Traefik-Reverse-Proxy mit automatischem TLS, deployt per Repo-Pull und einem einzigen Compose-Befehl.
LLM-Calls laufen über ein self-hosted Gateway mit Provider-Failover: Die Kategorisierung arbeitet weiter, wenn ein Provider drosselt, und die Kosten bleiben dank Free Tiers nahe null.
Security-Notizen
Row-Level Security wird in der Datenbank durchgesetzt, nicht nur im API-Layer. Secrets liegen in gitignorierten Env-Files. Sessions sind serverseitig. Die öffentliche Angriffsfläche ist genau ein TLS-Endpunkt hinter einem Reverse Proxy mit Rate Limiting und Security-Headern.
Ergebnis
Ein Monatsabschluss, der früher ein ganzer Abend Tabellenarbeit war, ist heute ein CSV-Upload. Die Kategorisierungsgenauigkeit überschritt dank der Korrektur-zu-Regel-Schleife binnen Wochen die 95 Prozent. Die Plattform läuft auf einem Mini-PC und hat seit dem Launch jede Eigenheit der Bank-Exporte klaglos überstanden.