Wie die Saldenprüfung funktioniert, und was sie übersieht
Jeder Konverter in dieser Kategorie sagt, er sei genau. Keiner sagt, wie — oder was zutreffen müsste, damit er sich irrt. Diese Seite tut beides, denn eine Behauptung, die Sie nicht prüfen können, ist nichts wert, wenn die Zahlen in jemandes Bücher gehen.
Der Gedanke
Ein Kontoauszug trägt seinen eigenen Beweis. Er druckt einen Anfangssaldo, einen Endsaldo und oft einen laufenden Saldo neben jeder Zeile. Diese Zahlen stammen aus dem Hauptbuch der Bank, nicht aus unserem Parser — sie sind also eine unabhängige Kontrolle über alles, was der Parser gelesen hat. Widersprechen sich unsere Buchungen und die Salden der Bank, liegt der Parser falsch, und wir können das wissen, ohne das Original je gesehen zu haben.
Zwei Prüfungen, automatisch gewählt
Laufender Saldo, Zeile für Zeile
Tragen mindestens 60 % der Zeilen einen Saldo, muss jede Zeile vorheriger Saldo + Betrag = Saldo dieser Zeile erfüllen. Zeilen ohne gedruckten Saldo tragen die laufende Summe weiter, eine Lücke bringt die folgenden Zeilen also nicht durcheinander. Jede Zeile wird für sich geprüft, und eine Abweichung synchronisiert sich wieder auf den gedruckten Saldo — eine schlechte Zeile kann sich also nicht zu einer Seite voller Fehlalarme auswachsen.
Vom Anfangs- zum Endsaldo
Ohne Saldospalte — Auszüge im Chase-Stil sind nach Abschnitten gegliedert und drucken keine — lautet die Prüfung Anfangssaldo + Σ(alle Beträge) = Endsaldo. Schwächer, weil es eine Gleichung statt vieler ist, fängt aber weiterhin eine ausgelassene, verdoppelte oder falsch gelesene Zeile, denn jede davon verschiebt die Summe.
Quelle: src/parse/reconcile.ts.
Vorzeichen werden gelöst, nicht geraten
Viele Auszüge drucken Beträge ohne Vorzeichen und überlassen die Richtung einer Spaltenüberschrift oder einer Abschnittsüberschrift. Raten ist der Weg, auf dem Konverter still einen Eingang in einen Ausgang verwandeln. Stattdessen gilt: Scheitert eine Zeile an ihrer Prüfung, würde sie mit umgedrehtem Vorzeichen aber bestehen, wird das Vorzeichen gedreht — weil die Saldospalte die Richtung beweist — und jede Drehung wird in der Ausgabe gemeldet. Eine Korrektur, von der man Ihnen nichts sagt, ist von einem Fehler nicht zu unterscheiden.
Was die Prüfung nicht fangen kann
Das ist der Teil, den andere Seiten weglassen. Die Prüfung prüft Summen, also übersteht sie jeder Fehler, der die Summe erhält:
- Zwei Beträge zwischen Zeilen vertauscht. Die Summe bleibt gleich, die Kette stimmt also weiterhin — während zwei Buchungen die Werte der jeweils anderen tragen.
- Ein Verwendungszweck an der falschen Zeile. Verwendungszwecke stehen überhaupt nicht in der Rechnung.
- Zwei Fehler, die sich aufheben. Eine Zeile 10,00 zu hoch und eine andere 10,00 zu niedrig gehen perfekt auf.
- Ein ganzer Abschnitt übersprungen zwischen dem letzten Saldo und dem Endsaldo, wenn der Auszug keinen Endsaldo druckt, der das Ende verankert.
- Datumsangaben. Abgeglichen werden nur Beträge. Ein falsch gelesenes Datumsformat legt jede Buchung in den falschen Monat, während das Geld weiterhin aufgeht — deshalb warnt der Parser gesondert, wenn die meisten Daten außerhalb des Zeitraums liegen, den der Auszug selbst druckt.
Nichts davon ist hypothetisch; es ist der Grund, warum die Seite die Rechnung geht auf sagt statt diese Datei ist korrekt. Die Prüfung hebt den Boden an. Sie ersetzt keinen Menschen, der weiß, was auf dem Auszug stand.
Wenn es nicht aufgeht
Nichts wird geraten und nichts verborgen. Die Zeile, an der die Kette bricht, wird gezeigt — mit dem Betrag, den wir gelesen haben, und dem, den die Saldospalte nahelegt — und Sie entscheiden: die Zahl der Saldospalte übernehmen oder behalten, was der Auszug gedruckt hat, und die Lücke in den Export mitnehmen. Solange die Kette nicht von Anfang bis Ende stimmt, heißt die Datei nicht geprüft.
Eingescannte Auszüge werden abgelehnt
Ein PDF mit weniger als 100 extrahierbaren Zeichen je Seite hat keine Textebene — es ist ein Foto eines Auszugs. OCR gibt es hier noch nicht, deshalb werden solche Dateien mit einem klaren Fehler abgelehnt, statt eine halbleere Tabelle zurückzugeben, die plausibel aussieht. Ihre eigene prüfen Sie in zehn Sekunden: PDF öffnen und versuchen, eine Textzeile zu markieren. Hebt sich nichts hervor, kann kein textbasierter Konverter sie ehrlich lesen.
Prüfen Sie es selbst
Alles oben ist Arithmetik, die Sie in einer Tabelle nachrechnen können: Betragsspalte summieren, Anfangssaldo addieren, mit dem Endsaldo vergleichen, den die Bank gedruckt hat. Stimmen sie überein, hat die Umwandlung das Geld erhalten. Das ist die ganze Behauptung — und sie ist absichtlich klein genug, um sie zu prüfen.