[OLD] 🏢 Automated merchant name normalisation & location matching

Introduction

In today's dynamic Customer Engagement sector, particularly for shopping mall operators, accurately identifying the exact location of merchant transactions is crucial. Our clients require precise validation to ensure promotional rewards are exclusive to specific store locations within a mall and not applicable to other branches of the same brand in different locations. This documentation guide for Taggun's advanced feature focuses on setting up and utilizing advanced merchant name normalisation and location matching.

Setting up merchant name normalisation and location matching

To streamline this process, Taggun allows clients to set up merchant and location matching using a predefined list of known merchants and address details.

Steps for Implementation:

  1. Prepare the CSV File: Compile a list of merchants including names and addresses in a CSV file.
  2. Import the CSV file to API Endpoint: /api/account/v1/known-merchants/import
  3. Initiate the import process by uploading the file. Be advised that the import process might exceed one minute, depending on the size of the list.
  4. Importantly, this import process will replace any existing merchants already set up for your account.
  5. Post-import, export the list from the API Endpoint: /api/account/v1/known-merchants/export
  6. Verify the accuracy and completeness of the merchant data, especially the accuracy of their geographical coordinates (latitude and longitude).
  7. Regularly update the merchant list to reflect any changes in merchants and locations.

Data points for this feature

This feature incorporates two additional data points, enhancing the precision of merchant identification:

Field NameTypeDescription
entities.normalisedMerchant.data.isMerchantNameMatchedBooleanIndicates whether the merchant name (brand name) matches an entry on the predefined list.

A true value confirms a match for the merchant name printed on the receipt matching with an entry on the list.
entities.normalisedMerchant.data.isMerchantAddressMatchedBooleanIndicates whether the merchant address matches with an entry on the list.

A true value confirms a match for the address of the receipt matching with an entry on the list.

In addition to these, the existing data point related to the merchant name is normalised for better accuracy:

Field NameTypeDescription
merchantName.datastringReflects the normalized merchant name corresponding to the list entry, ensuring uniformity and precision in merchant identification.

How does it work?

We retrieve the merchant's name, address, and location details from the receipt text. Utilizing vector-based cosine similarity and Levenshtein distance algorithms, we match the merchant's name against the imported list of known merchants.
Additionally, we extract the address and location from the receipt, search for its geographical coordinates, and identify the nearest address entry. An address match is confirmed only if the receipt's address is within 46 kilometres of an address entry on the list.