Jeden z moich Klientów, zajmujący się outsorcingiem usług księgowych, poprosił mnie o pomoc w rozwiązaniu następującego problemu: do systemu księgowego importowane są codziennie transakcje bankowe. Większość z nich posiada unikalny kod, generowany uprzednio w systemie księgowym, pozwalający na automatyczne powiązanie transakcji z kontrahentem i jej zaksięgowanie. Część przelewów jednak nie jest opisana w/w kodem, lecz jedynie nazwą kontrahenta, przy czym nazwa ta ma dowolną właściwie postać. Oznacza to, iż przelewy te należy przetworzyć manualnie, wiążąc je z istniejącymi w systemie kontrahentami w celu późniejszego zaksięgowania. Mój Klient zainteresowany był uproszczeniem tego procesu i wyeliminowaniem lub ograniczeniem ręcznego przetwarzania danych.
Muszę uczciwie przyznać, iż problem nie był błahy. Opisy transakcji, choć czytelne dla człowieka, z trudem nadawały się do automatycznego przetwarzania z uwagi na całkowitą dowolność w podawaniu nazw kontrahentów: z wykorzystaniem skrótów lub bez, z adresem kontrahenta lub bez niego, z uwzględnieniem prefiksów ulic, itp. Dodatkowym problemem były też pewne niezgodności w stosunku do danych istniejących w systemie księgowym (dotyczące m.in. niezgodności lub braku prefiksów, użycia skrótów w nazwach firm, itp.).
Aby uzyskać większą dokładność dopasowań, uzgodnliśmy, iż w pierwszej fazie projektu dokonamy oczyszczenia danych znajdujących się w systemie. Przygotowaliśmy zestaw reguł, które sprawiły, iż dane w aplikacji finansowej przyjęły jednakowy format. Te same reguły zastosowane zostały również do danych importowanych w celu uzyskania porównywalnych wartości.
Następnie opracowaliśmy kolejny zestaw reguł, pozwalający na połączenie importowanych danych z istniejącymi w systemie kontrahentami. Kierowaliśmy się przy tym założeniem, iż w przypadku wątpliwości lepiej jest nie dopasować transakcji do kontrahenta niż dokonać mylnego połączenia danych – koszty wyszukania takiego błędu w systemie znacznie przewyższałyby korzyści.
W trakcie testów system osiągał skuteczność na poziomie około 60% (przy czym pamiętać należy, iż w importowanych transakcjach pojawiały się dane kontrahentów nowych, nie istniejących w systemie; w środowisku produkcyjnym skuteczność ta będzie rosła wraz z dodawaniem nowych danych do systemu). Skuteczność na poziomie 60% oznacza, iż przy założeniu 60 transakcji dziennie i około pół minuty poświęconej na ręczne wyszukanie kontrahenta Klient zaoszczędzi blisko 20 minut!
Korzyści dla Klienta: