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:

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.