Doppelzahlungen sind immer der Dauerbrenner. Durch schlechte Organisation passiert es immer wieder, dass Rechnungen doppelt gezahlt werden. Auch in wohlsortierten Organisationen passieren immer wieder Doppelzahlungen, wenn das Transaktionsvolumen hoch ist. In diesem Blog Post erkläre ich Ihnen einige fortgeschrittene Methoden zur Aufdeckung von Doppelzahlungen in SAP. Hier hat der Data Scientist seine wahre Freude. Weiterhin wird auch noch erläutert, wie lange Sie Doppelzahlungen von Lieferanten noch zurückfordern können. Das ist dann eher etwas für Menschen mit Affinität zur Juristerei.
Was bisher geschah
Das Thema Doppelzahlungen hatten wir schon mehrfach im Blog:
- Cashback: Wie sich die Revision mit Hilfe von Doppelzahlungen amortisiert
- Die 3 Schritte zur Aufdeckung von Doppelzahlungen in SAP
- SAP Doppelzahlungen: False Positives mit einer Nutzwertanalyse reduzieren
- Wie Sie SAP Doppelzahlungen mit Hilfe des Internen Kontrollsystems verhindern
Nach einigen Doppelzahlungsprojekten hat sich aber einiges bei zapliance getan und wir haben unseren Algorithmus zur Erkennung von Doppelzahlungen noch um einiges verbessern können. Solche Verbesserungen möchte ich Ihnen in diesem Blog Post vorstellen.
Verfeinerung einer Doppelzahlungsanalyse
Doppelzahlung ist eigentlich nicht der richtige Begriff. Streng genommen sucht man doppelt eingebuchte Rechnungen, die dann bezahlt wurden. Um Kandidaten für doppelte Rechnungen zu suchen, werden zunächst mal schlicht bestimmte Merkmale von zwei Rechnungen verglichen. Stimmen hinreichend viele überein (oder unterscheiden sich, je nachdem was es ist), dann wird das Rechnungspaar als aussichtsreicher Kandidat vorgeschlagen. In „Die 3 Schritte zur Aufdeckung von Doppelzahlungen in SAP“ hatten wir folgende Merkmale als praktikabel identifiziert:
- gleiche Beträge in verschiedenen Belegen und
- gleiches Buchungsdatum und
- gleiches Belegdatum und
- gleiche Belegart und
- gleiches Rechnungswesenkonto und
- gleicher Lieferant und
- gleiche externe Rechnungsnummer
Inzwischen verwenden wir auch:
- gleiches Bankkonto, auf das überwiesen wurde.
- gleicher Kreditorenname, wenn die Lieferantennummer nicht gleich ist (damit auch etwaige Stammdatendubletten einbezogen werden können).
- Häufigkeit des Betrages der Rechnung; seltenere Beträge sprechen eher für eine doppelte Rechnung.
- Vergleich des Erfassungsdatums beider Rechnungen: liegen diese nahe beieinander spricht dies stärker für eine doppelte Rechnung.
- Die Rechnungen wurden von unterschiedlichen Nutzern erfasst (=aus Versehen wussten diese nichts voneinander).
Aber es gibt auch negative Merkmale, die eher gegen eine doppelte Rechnung sprechen:
- Es gibt eine Gutschrift zu der Rechnung.
- Es gibt einen „Gegenposten“ mit gleichem Betrag, ohne dass dieser als Gutschrift referenziert wurde.
- Es handelt sich um eine regelmäßig wiederkehrende Rechnung / Zahlung mit konstant gleichem Betrag, soweit es sich um denselben Kreditor handelt.
Seien Sie liberal an der richtigen Stelle: unscharfe Matches
Bei einigen Merkmalen ist es nicht sinnvoll, auf exakte Übereinstimmung zu prüfen. So ist es möglich, dass Texte wie Kreditorennamen anders geschrieben werden, wenn es sich um Stammdatendubletten handelt. Bei solchen Vergleichen sollte man nicht exakt, sondern „unscharf“ vergleichen. Dies kann mit phonetischen Algorithmen geschehen. Ein bekannter phonetischer Algorithmus ist SOUNDEX. SOUNDEX berechnet einen (vierstelligen) Code aus einem Wort, der dazu taugt, die Aussprache von zwei Wörtern zu vergleichen. So z.B. ergeben die SOUNDEX Codes von:
- „Maier“ und „Maier“ und „Meyer“ alle „M600“ und sind somit phonetisch gleich
- „Neier“ ergibt den Code „N600“
- „Raier“ ergibt den Code „R600“
- „Maiser“ ergibt den Code „M260“
Der Trick ist also, statt den Originaltext exakt zu vergleichen, den SOUNDEX-Code exakt zu vergleichen.
Es gibt noch einen weiteren Fall, wo exakte Vergleiche nicht immer zielführend sind. So kann es z.B. sein, dass externe Rechnungsnummern / Referenzen unterschiedlich eingegeben werden, z.B. einmal „2345-56“ als „2345 56“ oder auch als „234556“ oder auch „2345_56“. Über solche „feinen“ Unterschiede sollte man hinwegsehen. Dies ist bei einem exakten Vergleich aber nicht möglich. Die Lösung hier sind reguläre Ausdrücke. Reguläre Ausdrücke sind häufig unübersichtlich, aber sehr mächtig. So kann man eine Zeichenkette z.B. nach folgenden Regeln manipulieren:
- Streiche alle Zeichen aus der Zeichenkette, welche keine Zahlen oder Buchstaben sind.
- Streiche alle Zeichen aus der Zeichenkette, welche Buchstaben sind.
- Ersetze alle Zeichen aus der Zeichenkette, welche keine Zahlen sind, durch Leerzeichen.
Falls Sie auf der Suche nach einer Möglichkeit zur Erstellung von regulären Ausdrücken sind, oder sich ausprobieren wollen, dann finden Sie hier eine gute Quelle.
Anstatt dann den originalen Text exakt zu vergleichen, sollte man die jeweils durch einen geeigneten regulären Ausdruck manipulierten Texte exakt vergleichen. So bekommt man einen „liberalen“ exakten Match von zwei Merkmalen hin.
Immer diese False Positives: Lästige wiederkehrende Rechnungen
Im Hinblick auf False Positives bei der Suche nach doppelten Rechnungen hat sich folgendes Phänomen als besonders nervig herausgestellt: Abschlags- oder Vorauszahlungen mit immer demselben konstanten Betrag. Dies trifft häufig zu auf Stromrechnungen, Wasserrechnungen, Müllgebühren usw. usf. Regelmäßig werden solche Fälle, gerade weil immer derselbe Kreditor betroffen ist, bei einer Analyse auf doppelte Rechnungen als Vorschläge hervorgebracht, die natürlich dann False Positives sind (=Fehlalarm). Wir haben festgestellt, dass man solche Fehlalarme mit ein paar statistischen Überlegungen ausschließen kann. Wenn man bei einem Kreditor n Rechnungen mit gleichem Betrag findet, dann gibt es zwischen diesen n Rechnungen immer n-1 Abstände im Hinblick auf z.B. das Belegdatum. Also bei drei Rechnungen gibt es zwei Abstände. Wenn alle diese n-1 Abstände in Tagen (ungefähr) gleich sind, dann sind diese Rechnungen periodisch und man sollte diese Rechnungen als Treffer unterdrücken. Das ist die Grundidee. Wir haben das noch etwas mehr perfektioniert, aber alles Weitere wäre an dieser Stelle etwas zu umfangreich zu erzählen.
Fuzzy Treffer bei Beträgen
Bislang haben wir zwei Rechnung(spositionen) immer nur verglichen, wenn diese den exakt gleichen Betrag aufweisen. Das ist grds. auch ein gutes Vorgehen, aber so kommt man nie an Fälle von doppelten Rechnungen, wo der Rechnungsbetrag (versehentlich) ungleich eingegeben wurde. Für den Fall ungleicher Rechnungsbeträge haben wir uns Kriterien für „Fuzzy Treffer“ überlegt. Zunächst stößt man dabei allerdings auf ein Problem: Stellt man Rechnungen mit gleichen Beträgen gegenüber hat man sehr viele Rechnungspärchen, die gegenüberzustellen sind. Vergleicht man aber auch Rechnungen mit ungleichen Beträgen, so ergeben sich noch viel viel mehr Vergleichspärchen. Das zwingt selbst die schnellsten Datenbanken in die Knie! Deshalb haben wir für ungleiche Beträge bestimmte Kriterien definiert. Werden diese nicht erfüllt, dann wird das Rechnungspärchen nicht zum Vergleich herangezogen. Diese Kriterien sind:
- Zahlendreher: Zwei Beträge sind ungleich, enthalten aber einen Zahlendreher, z.B. 4578.00 gegen 4587.00 oder auch im Nachkommabereich: 3457.78 gegen 3457.87
- Zehnerpotenzen: Zwei Beträge sind ungleich, unterscheiden sich aber nur um Zehnerpotenzen, z.B. 1567 gegen 15670
- Kleinbetragsabweichungen: Die Beträge weichen nur im Centbereich voneinander ab
Mit „Fuzzy Treffern“ gehen so vielleicht noch ein paar mehr ins Netz!
Je länger, desto besser
Oft stellt sich die Frage, wie viele Transaktionen man untersuchen sollte im Hinblick auf doppelte Rechnungen. Wie lange Sie zurückfordern können, können Sie unten bei den juristischen Details lesen, ansonsten gilt: Untersuchen Sie einen möglichst langen, zusammenhängenden Zeitraum, nicht einzelne Geschäftsjahre separat. Der Grund dafür ist, dass Sie bei der Untersuchung separater Geschäftsjahre keine doppelten Rechnungen finden können, welche in zwei verschiedene Geschäftsjahre gebucht wurden. Aber die Untersuchung eines einzelnen Geschäftsjahres ist immer noch besser als nichts zu machen.
Unterschiedliche Kriterien verwenden
Es wird noch ein wenig komplizierter. Je nachdem, was für Auszahlungen Sie betrachten, müssen ggfs. (leicht) verschiedene Vergleichskriterien her. Der Klassiker und sicherlich auch der fruchtbarste Untersuchungsgegenstand ist die „normale“ kreditorische Rechnung. Da findet man i.d.R. am meisten. Insgesamt kann man folgende Auszahlungsursachen unterscheiden:
- Kreditorische Rechnungen
- Kreditorische CPD Rechnungen (Conto pro Diverse, One-Time-Invoices)
- Gutschriften an Kunden, die ausgezahlt wurden
What’s next?
Wir haben viel ausprobiert in Sachen Doppelzahlungen / doppelte Rechnungen, aber uns fällt immer noch etwas Besseres ein! Unsere Kriterien sind inzwischen schon sehr ausgefeilt. Was wir als Nächstes machen wollen, ist das Feedback der Nutzer zu den vorgeschlagenen doppelten Rechnungen zu nutzen, um unseren Algorithmus lernend zu gestalten. D.h. das Ziel ist eine Prognose einer Wahrscheinlichkeit, ob eine doppelte Rechnung vorliegt basierend auf Userfeedback zu den vorgeschlagenen doppelten Rechnungen. Methoden der multivarianten Statistik, Machine Learning und Künstliche Intelligenz inklusive!
I want my money back: Entdeckung ist nur die halbe Miete
Doppelzahlungen entdecken ist schon schwer genug. Wenn Sie das Geld auch noch zurückhaben wollen, müssen Sie auf den Schuldner / Lieferant zugehen und Ihre Rückforderung geltend machen.
Wie lange geht das, wenn die Doppelzahlung weit in der Vergangenheit passiert ist?
Wenn Ihr Lieferant mitspielt, können Sie natürlich beliebig alte Doppelzahlungen zurückfordern und auch erhalten. Das ist häufig eine Frage der Machtverhältnisse zwischen Ihnen und Ihrem Lieferanten. Der Rechtsrahmen setzt diesbezüglich aber Grenzen. Irgendwann sind allzu alte Ansprüche verjährt, damit der „Rechtsfrieden“ eintritt. Aber etwas genauer: Wenn Sie einen Lieferanten überzahlen, dann ist das eine sogenannte Ungerechtfertigte Bereicherung. Rückfordern können Sie dann auf Grundlage des § 812 BGB:
„§ 812 Herausgabeanspruch
(1) Wer durch die Leistung eines anderen oder in sonstiger Weise auf dessen Kosten etwas ohne rechtlichen Grund erlangt, ist ihm zur Herausgabe verpflichtet. Diese Verpflichtung besteht auch dann, wenn der rechtliche Grund später wegfällt oder der mit einer Leistung nach dem Inhalt des Rechtsgeschäfts bezweckte Erfolg nicht eintritt.
… „
Gut, das ist die Anspruchsgrundlage. Aber wie lange im Hinblick auf die Vergangenheit kann man sich darauf berufen? Da wird man recht weit vorn im BGB fündig:
„§ 195 Regelmäßige Verjährungsfrist
Die regelmäßige Verjährungsfrist beträgt drei Jahre.“
Sehr gut, kurz und bündig, so wünscht man sich Gesetze. Bedeutet: Drei Jahre lang kann man eine Doppelzahlung zurückfordern. Jetzt wäre noch wichtig, wann denn diese Frist beginnt:
„§ 199 Beginn der regelmäßigen Verjährungsfrist und Verjährungshöchstfristen
(1) Die regelmäßige Verjährungsfrist beginnt, soweit nicht ein anderer Verjährungsbeginn bestimmt ist, mit dem Schluss des Jahres, in dem
- der Anspruch entstanden ist und
- der Gläubiger von den den Anspruch begründenden Umständen und der Person des Schuldners Kenntnis erlangt oder ohne grobe Fahrlässigkeit erlangen müsste.
…“
Die Frist beginnt mit dem Schluss des Jahres, in dem der Anspruch entstanden ist. Das ist wichtig. Also nicht sofort, wenn die Doppelzahlung geleistet wurde, sondern erst am Ende des Jahres, in dem die Doppelzahlung geleistet wurde. Die zweite Voraussetzung ist etwas schwieriger aber muss wohl so interpretiert werden: Wenn Sie hätten von der Doppelzahlung wissen müssen. Da Sie Ihren Lieferanten und seine Leistung, für die Sie die Doppelzahlung (aus Versehen) geleistet haben, zur selben Zeit kannten, ist diese Voraussetzung dann ebenfalls mit Zeitpunkt der Doppelzahlung erfüllt.
Beispiel: Sie begleichen dieselbe Verbindlichkeit zum zweiten Mal am 23. Januar 2017. Dann beginnt die Verjährungsfrist am 31.12.2017 und dann sind die drei Jahre zu Ende am 31.12.2020. Sie müssen also Ihre Rückforderung bis zum 31.12.2020 geltend gemacht haben.
Was sind Ihre nächsten Schritte?
Alles in Allem kann man bei der Analyse von doppelten Rechnungen immer recht einfach beginnen. Verbessert man dann die Algorithmen, so überlagern sich alle möglichen Regeln und Kriterien und es wird schnell übersichtlich. In zap Audit befindet sich immer der aktuellste Stand unserer ausgefeilten Algorithmen. Wenn auch Sie sagen: „I want my money back“, melden Sie sich doch einfach mal bei uns.