Der Abgleich von Buchungen sieht aus wie die einfachste Aufgabe, die man einem Agenten geben kann. Zwei Listen, eine Regel, Beträge zusammenführen. In der Vorführung läuft das hervorragend. Die meisten Zeilen klären sich im ersten Durchgang, und alle im Raum halten den Monatsabschluss für erledigt.
Das Geld steckt in der letzten Zeile. Ein Abgleich ist keine Suche nach einem Eintrag, sondern eine Suche mit mehreren plausiblen Antworten, und die interessanten Fehler sind die, bei denen der Agent eine Antwort findet, die aufgeht und trotzdem falsch ist. Ein übersehener Treffer kostet jemanden ein paar Minuten. Eine falsche Zuordnung wird gebucht, und Sie finden sie ein Quartal später in einer Fälligkeitsliste, der niemand mehr glaubt.
Das sind die Fehlerbilder, für die man entwerfen muss, bevor die erste Zeile Code entsteht.
Fast gleiche Beträge
Derselbe Lieferant stellt in einer Woche zweimal 1.240,00 in Rechnung. Zwei Lastschriften über 1.240,00 laufen auf dem Konto ein. Ein Agent, der über Betrag und Datum abgleicht, findet für jede Zahlung zwei Kandidaten und hat keinerlei Grundlage, zwischen ihnen zu wählen.
Gefährlich wird das dadurch, dass die falsche Wahl aufgeht. Die Verbindlichkeiten stimmen, das Konto stimmt, das Abstimmkonto ist glatt. Der Schaden sitzt in der Zuordnung. Eine Rechnung bleibt offen, während eine bezahlte als ausgeglichen markiert ist. Der Mahnlauf schreibt also einem Kunden wegen einer Rechnung, die längst bezahlt ist, und die wirklich offene Position altert unbemerkt vor sich hin.
Die Abhilfe ist keine klügere Betragsregel. Es braucht ein zweites Merkmal, also die Rechnungsnummer im Verwendungszweck, den Zahlungsavis, die Bestellnummer. Trägt keine der beiden Zahlungen ein Merkmal, hat der Agent zwei identische Kandidaten und soll das sagen, statt zu greifen. Kandidaten reihum zu verteilen ist das schlechteste Verhalten, das Sie einbauen können, denn es erzeugt keinen sichtbaren Fehler und dafür eine dauerhafte Quote falscher Zuordnungen.
Wertstellung gegen Buchungsdatum
Fast nichts wird an dem Tag ausgeglichen, den es im Datum trägt. Wertstellung und Buchungstag gehen auseinander. Kartenumsätze werden zwei bis drei Arbeitstage nach der Transaktion abgerechnet. Lastschriften folgen ihrem eigenen Vorlauf. Ein Wochenende oder ein Feiertag verschiebt alles, und der Feiertagskalender ist in jedem Land anders, in dem Sie abrechnen.
Jede Abgleichsregel trägt deshalb ein Datumsfenster, und dieses Fenster ist eine echte Abwägung und keine Einstellung, die man einmal richtig trifft. Ein Fenster von plus minus einem Tag lässt echte Paare still durchfallen, was das Team als Unbrauchbarkeit des Agenten liest. Ein Fenster von plus minus sieben Tagen verdoppelt oder verdreifacht die Kandidatenmenge, und eine größere Kandidatenmenge heißt mehr von dem Problem aus dem letzten Abschnitt.
Halten Sie das Fenster eng und machen Sie das Referenzmerkmal zum führenden Schlüssel, wo immer es eines gibt. Behandeln Sie den Datumsabstand danach als Kriterium für den Stichentscheid und nicht als Filter. Ein Paar, das über die Rechnungsnummer passt und neun Tage auseinanderliegt, ist so gut wie sicher richtig. Ein Paar, das nur über den Betrag passt und zwei Tage auseinanderliegt, ist geraten.
Teilzahlungen und Abzüge
Ein Kunde schuldet 9.500 und überweist 8.000, weil er 1.500 bestreitet. Manchmal zahlt er 9.310 und behält das Skonto ein. Manchmal zieht die Bank 12,50 Gebühr mitten heraus.
Der exakte Betragsabgleich scheitert, und das ist das gute Ergebnis. Das schlechte Ergebnis ist ein Agent, der den Betrag als Suchschlüssel nimmt und eine andere offene Rechnung über genau 8.000 findet. Jetzt sind zwei Datensätze falsch, statt dass eine offene Position markiert wäre, und im Prüfprotokoll steht, der Agent sei sich sicher gewesen.
Die Teilzahlung muss ein vorgesehener Fall sein und darf kein Rückfall sein. Der Agent soll 8.000 gegen die Rechnung über 9.500 zuordnen können, 1.500 offen lassen und den Rest mit einem Grund versehen, den er nicht erfunden hat. Ein Skonto innerhalb der Frist ist Rechnen, und der Agent kann es gegen das Zahlungsdatum und die Zahlungsbedingung prüfen. Eine Unterzahlung ohne Erklärung ist eine menschliche Entscheidung, denn die Antwort heißt Gutschrift, Reklamation oder Anruf, und nichts davon ist ein Abgleich.
Rundung und Fremdwährung
Rechnung in Dollar, Zahlung in Euro, und der Kurs vom Rechnungsdatum ist nicht der Kurs, den die Bank am Ausgleichstag genommen hat. Heraus kommt eine Differenz von ein paar Cent oder von ein paar hundert Euro, je nach Größe der Rechnung und den zwei Wochen dazwischen.
Die Toleranzregeln sind die Stelle, an der das kippt. Eine absolute Toleranz von 0,02 ist auf einer Zeile über 12 Euro großzügig und auf einer über 120.000 Euro bedeutungslos. Eine prozentuale Toleranz von 0,1 Prozent ist auf der großen Rechnung vernünftig und lässt auf der kleinen nichts zu. Nehmen Sie einen Prozentsatz mit absoluter Untergrenze und einer Obergrenze in Euro, also etwa 0,5 Prozent bis zu einem festgelegten Deckel, und setzen Sie den Deckel dorthin, wo Ihre Buchhaltungsleitung ihn sieht, nicht dorthin, wo der Code es bequem hat.
Eine Regel wiegt schwerer als die Form der Toleranz. Die Differenz darf nie im Treffer verschwinden. Sie geht auf ein benanntes Konto für Kursdifferenzen oder Rundung, mit den ursprünglichen Beträgen auf beiden Seiten. Dann kann jemand zum Quartalsende dieses Konto aufaddieren und sehen, ob die Toleranz als Toleranz benutzt wird oder als Papierkorb. Ein Agent, der Zahlen still zum Stimmen bringt, stimmt nicht ab, er räumt auf.
Eine Zahlung auf viele Rechnungen
Eine einzelne Gutschrift über 43.210,00 bezahlt siebzehn Rechnungen. Das ist ein Teilsummenproblem, und es frisst Ihren Agenten.
Die Arithmetik verzeiht nichts. Sechzig offene Posten ergeben mehr Teilmengen, als Sie durchzählen können, also muss jede brauchbare Umsetzung den Suchraum vorher einschränken. Nur dieser Kunde, nur innerhalb eines Datumsfensters, und am besten gegen die Positionen eines Zahlungsavis statt gegen das ganze Hauptbuch. Damit wird aus einer unmöglichen Suche eine kleine.
Die eigentliche Gefahr ist nicht die Laufzeit. Es ist, dass ein Teilsummenproblem mehrere richtige Antworten hat. Verschiedene Kombinationen von Rechnungen ergeben 43.210,00, besonders in einem Hauptbuch voller runder Beträge und wiederkehrender Monatspauschalen. Findet der Agent mehr als eine exakte Teilmenge, hat er keine Grundlage zu wählen, und genau das tut eine naive Umsetzung, still, indem sie die erste gefundene zurückgibt. Machen Sie mehrere Ergebnisse zu einem eigenen, ausdrücklichen Ausgang. Passen zwei oder mehr Teilmengen, übergeben Sie alle und lassen einen Menschen entscheiden.
Was eine Ausnahme enthalten muss
Eine nicht zugeordnete Zeile, die ohne Erklärung in eine Warteschlange fällt, wird mit der Zeit weniger wert, weil der Prüfer mit demselben leeren Blatt beginnt wie der Agent. Übergeben Sie die Arbeit und nicht den Rest.
Eine brauchbare Ausnahme trägt die Zeile selbst, was der Agent versucht hat, die geprüften Kandidaten mit Betrag und Datumsabstand, warum er sie verworfen hat oder nicht auseinanderhalten konnte, und was er tun würde, wenn jemand seine beste Vermutung bestätigt. Der letzte Teil macht aus zehn Minuten Recherche eine Ja-oder-nein-Frage. Er erzeugt nebenbei die Daten für die nächste Ausbaustufe, denn das Muster in dem, was Menschen überstimmen, ist die wertvollste Liste im ganzen Projekt.
Zwei harte Grenzen gehören in den Code und nicht in den Prompt. Der Agent bucht nie eine Umbuchung, damit ein Treffer aufgeht. Und er schreibt nie eine Restdifferenz ab. Beides ist im Einzelfall vernünftig, und beides ist eine Entscheidung mit einer verantwortlichen Person und einem Schwellenwert. Damit ist es die Aufgabe eines Menschen und nicht die des Agenten.
Die Zielquote für Ausnahmen ist nicht null
Ein Agent, der keine Ausnahmen liefert, ist nicht fertig, sondern unehrlich. Echte Hauptbücher enthalten Zeilen, die tatsächlich mehrdeutig sind, und ein System, das keine davon meldet, hat die Mehrdeutigkeit durch Raten aufgelöst.
Behandeln Sie die Ausnahmequote deshalb als geplante Zahl. Sie wird mit der Person vereinbart, die die Ausnahmen prüft, und an dem bemessen, was diese Person am Tag schafft. Danach beobachten Sie nicht ihre Höhe, sondern ihren Verlauf. Steigt sie, hat sich davor etwas geändert, ein neuer Zahlungskanal, eine neue Gesellschaft, ein Kunde, der auf Sammelzahlungen umgestellt hat. Dieser Verlauf ist das nützlichste Signal, das das System liefert, und Sie bekommen es nur, wenn der Agent sagen durfte, dass er es nicht weiß.