De onzichtbare ruggengraat van het bankieren: een diepe duik in matching en verzoening

De onzichtbare ruggengraat van het bankieren: een diepe duik in matching en verzoening

Bronknooppunt: 2988681

Last year I celebrated two decades of immersion in IT, specifically within the Financial Services sector. During this period I have been a witness to remarkable transformations in banking and technology. The emergence of Fintech companies and their customer-centric
approach, along with significant advancements in software engineering like Agile methodologies, microservices, and cloud computing, have reshaped the landscape. Yet, intriguingly, the back-office operations of many financial service companies have remained
relatively static over these years, still grappling with handmatige codering, repetitieve taken en een sterke afhankelijkheid van Excel.

Een bijzonder handmatig en toch automatiseerbaar proces in de financiële dienstverlening is dat wel matching en verzoening. This process arises in various forms, i.e. from identifying and addressing discrepancies (typically occurring due to issues
or gaps with the integrations) in master-slave integrations to correcting or removing duplicates and semi-automated updates of operational systems with data from external sources.

Ondanks de beschikbaarheid van geavanceerde software (e.g. FIS IntelliMatch, Calypso Confirmation Matching, Misys CMS, Temenos T24 Confirmation Matching…​) for specific reconciliation tasks, such as payment and trade confirmation matching
(often based on SWIFT messages), the De meeste matchingtaken zijn vaak afhankelijk van op maat gemaakte of handmatige oplossingen, including Excel or even paper-based methods. Very often automation is also not pertinent, as matching is often involved in one-time actions
like marketing campaigns, data clean-ups, alignment with partners…​

Om een ​​betere verzoening te begrijpen is dit nodig het ontleden van de componenten ervan, Dwz

  • Het begint met het verzamelen en transformeren van de ongelijksoortige datasets voor vergelijkbaarheid. This consists of recuperating 2 data sets, which can be delivered in different formats, different structures, different scopes and with different names
    or enumerations. The data needs to be transformed to make them comparable and loaded into the same tool (e.g. a database or Excel), so that they can be easily compared.

  • De volgende stap is het definiëren van a nauwkeurig matching-algoritme. This can be a simple unique key, but it can also a combination of multiple attributes (composite key), a hierarchical rule (i.e. match first on key 1, if no match try on key 2…​) or
    a fuzzy rule (if key of data set 1 resembles key of data set 2 it is a match). Defining this matching algorithm can be very complex, but it is crucial in the ability to automate the matching and reach a good output quality.

  • Zodra het matching-algoritme is gedefinieerd, voeren we de vergelijkingsfase. For small data sets, this can be done quite simple, but for very large data sets, it can necessitate all kinds of performance optimizations (like indices, segmentation,
    parallelism…​) in order to execute the comparison in a reasonable time.

  • Tenslotte geïdentificeerde discrepanties moeten worden vertaald in bruikbare resultaten, zoals rapporten, communicatie met collega's of derden of corrigerende maatregelen (bijvoorbeeld het genereren van bestanden, berichten of SQL-instructies om de verschillen op te lossen).

De complexiteit van matching in de financiële dienstverlening is divers. Laten we verkennen enkele typische gebruiksscenario's in het landschap van de financiële dienstverlening:

  • De meeste banken hebben een Hoofdbestand effecten, describing all securities which are in position or can be traded at the bank. This file needs to be integrated with a lot of applications, but also needs to be fed by multiple data sources, like
    Telekurs, Reuters, Bloomberg, Moody’s…​ This means a security needs to be uniquely matched. Unfortunately, there is not 1 unique identifier describing all securities. Publicly traded instruments have a commonly agreed ISIN code, but private and OTC products
    like e.g. most derivatives usually do not. Banks have therefore invented internal identifiers, use fake ISIN codes (typically starting with an “X”) or use composite keys to uniquely identify the instrument (e.g. for a derivative this can be combination of
    ticker of underlying security, strike price, option type and expiration date).

  • Bij retailbankieren is dit uiteraard essentieel een specifieke fysieke persoon op unieke wijze identificeren en matchen. However even in a developed country like Belgium, this is easier said than done. Every individual in Belgium has a National Register Number,
    so this seems the obvious choice for a matching key. Unfortunately, Belgian laws restrict the usage of this number to specific use cases. Additionally this identifier is not existing for foreigners and can change over time (e.g. foreign residents receive first
    a temporary National Register number which can change to a definitive, other one later or in case of gender change the National Register Number will change as well). Another option is to use the identity card number, but this is also different for foreigners
    and will change every 10 years. Many banks therefore use more complex rules, like a matching based on first name, last name and birth date, but obviously this comes also with all kinds of issues, like duplicates, spelling differences and errors in the names,
    use of special characters in the names…​

  • Een zeer vergelijkbaar probleem is passend bij een bedrijf of specifieker een winkel. In Belgium, each company has a company number, which is similar to the VAT number (without the “BE” prefix), but this is again very national and 1 VAT number can
    have multiple locations (e.g. multiple stores). There exists a concept of a “branch number” (“vestigingsnummer” in Dutch), but this concept is not very well known and rarely used. Similar there exists the LEI code (Legal Entity Identifier) which is a code
    of a combination of 20 letters and codes, which uniquely identifies a company worldwide. Unfortunately, only large companies have requested a LEI code, so for smaller companies this is not really an option.
    Again more complex matchings are often done, like a combination of VAT number, postal code and house number, but obviously this is far from being ideal. In search for a unique and commonly known identifier, the Google ID becomes also more and more in use, but
    the dependency with a commercial company might also poses a big operational risk.

  • Een ander interessant geval is de het matchen van een autorisatie en het clearingbericht bij een VISA-kaartbetaling. Normally a unique identifier should match both messages, but due to all kinds of exception cases (e.g. offline authorizations or
    incremental authorizations), this will not always be correct. Therefore a more complex rule is required, looking at several identifiers, but also to other matching criteria like acquirer ID, merchant ID, terminal ID, PAN (card number), timestamp and/or amount.
    Dit soort matching is ook van toepassing op andere gevallen van betalingsgebruik, zoals b.v. het matchen van een voltooide pre-autorisatie met de voorafgaande pre-autorisatie of een terugbetaling bij een eerdere aankoop.

  • Een financiële use case die vrijwel elk bedrijf aangaat factuur- en betalingsmatching. When a company issues an invoice, it needs to be able to see when the invoice can be considered as paid. This is important for the accounting, but also
    to see if reminders for unpaid invoices should be sent out.
    To uniquely match the payment with the invoice, in Belgium typically a structured comment is used in the payment instruction. This unique code with check digit provides a unique matching reference. Unfortunately, customers often forget to put the structured
    comment or use the wrong one (e.g. copy/paste of a previous invoice). This means a company needs to have a fallback matching rule in case the unstructured comment is missing or wrong. Typically a combination of payment amount, payment date, IBAN of counterparty
    and/or name of counterparty can give an alternative way to match those invoices.

Zoals u kunt zien is matchen verre van eenvoudig, maar het begrijpen van de basisstappen kan helpen bij betere matching. Ondertussen blijft Excel, ondanks de beperkingen, een krachtig hulpmiddel voor (handmatig) matchen. Daarom een quick reminder for everyone who wants
to do matching in Excel
:

  • Te gebruiken VERT.ZOEKEN om matching uit te voeren. VLOOKUP heeft echter bepaalde beperkingen, zoals het feit dat het een foutmelding geeft als er geen match is en dat je alleen op de eerste kolom kunt zoeken. Een krachtig alternatief is gebruiken XZOEKEN, welke
    does not have these limitations.

  • Als u een samengestelde zoeksleutel, voeg een kolom toe aan uw zoekgegevensset, met de samengestelde zoeksleutel (dat wil zeggen voeg de verschillende attributen samen, met bijvoorbeeld “#” als scheidingsteken) en gebruik vervolgens VLOOKUP/XLOOKUP om in deze nieuwe kolom te zoeken.

  • sommige aandachtspunten bij gebruik van VERT.ZOEKEN:

    • Vergeet niet “false” toe te voegen als het laatste argument van de functie VERT.ZOEKEN om een ​​exacte match te garanderen.

    • Ensure that data formats are the same. E.g. a number “123” and the text “123” will not match, so it is important to convert them to the same format first. Idem for identifiers starting with leading 0’s. Often Excel will convert those to numbers, thus removing
      the leading 0’s and not resulting in a match.

    • Gebruik in Excel geen datasets van meer dan 100.000 rijen. Grotere datasets zijn problematisch voor de prestaties en stabiliteit van Excel.
      Het kan ook interessant zijn om de berekeningsmodus op “Handmatig” te zetten als u met VERT.ZOEKEN aan grote gegevenssets werkt, anders zal Excel alle VERT.ZOEKEN opnieuw berekenen telkens wanneer u een kleine wijziging in de gegevens aanbrengt.

    • VERT.ZOEKEN heeft het kolomnummer dat als derde argument moet worden geretourneerd. Dit aantal wordt niet dynamisch aangepast bij het toevoegen of verwijderen van kolommen. Denk er dus aan om dit aan te passen bij het toevoegen of verwijderen van kolommen.

    • Als u alleen een overeenkomst wilt, kunt u de formule “=IF(ISERROR(VLOOKUP(,,1,false),”NO MATCH”,”MATCH”)” gebruiken.

Deze trucjes kunnen daarbij helpen versnel uw handmatige matchings, maar echte automatisering is uiteraard altijd beter.

Matching in de financiële dienstverlening is a veelzijdige uitdaging, but understanding its fundamental steps is key to improving outcomes. While tools like Excel offer temporary solutions, the future lies in intelligent automation, which can significantly
streamline these processes. For those seeking to delve deeper into matching complexities or automation, leveraging advanced tools and platforms, including AI-driven solutions like ChatGPT, can provide both insights and practical solutions.

Bekijk al mijn blogs op https://bankloch.blogspot.com/

Tijdstempel:

Meer van Fintextra