Matching algorithm
Learn more about Mambu Payments (formerly Numeral)'s VOP matching algorithm
Overview
Accurate account holder name matching is crucial for a robust VOP implementation. An overly strict matching algorithm can lead to legitimate payments being rejected, while a too-lenient approach increases the risk of exposing sensitive data or incurring refund liabilities due to incorrect matches.
Mambu Payments (formerly Numeral) enables customers to configure the algorithm to their specific needs by allowing them to define the right distance measure and thresholds for them This ensures optimal balance between payment success rates and robust data security.
Distance measures
To compare two account names, Mambu Payments (formerly Numeral) calculates a distance between them. Distance is the similarity between two names, measured as the number of transformations needed to go from one name to the other.
Mambu Payments (formerly Numeral) currently supports two distance measures:
- Levenshtein distance measures similarity by identifying the minimum number of single-character edits (insertions, deletions, or substitutions) required to transform one string into another. It is a straightforward measure of overall difference
- Jaro-Winkler distance assesses similarity by considering shared characters and transpositions. It applies a higher weighting to characters that match at the beginning of the strings, making it particularly effective for common name variations and misspellings where prefixes are often consistent
You can choose the distance measure to use when processing incoming VOP requests. The distance calculated is then normalized and converted into a matching score ranging from 0 to 100, where a higher score indicates greater similarity.
Thresholds
Once a matching score is computed using your chosen distance metric, Mambu Payments (formerly Numeral) translates it into one of three distinct outcomes: match, close match, or no match. To achieve this, you will configure two key thresholds:
- Upper threshold: any score at or above this value will result in a match
- Lower threshold: any score below this value will result in a no match
- Between upper threshold and lower threshold: result will be a close match
These customizable thresholds provide granular control, allowing you to fine-tune the matching sensitivity to perfectly align with your operational requirements and risk appetite.

Examples
Name stored | Name received | Matching score based on Levenshtein | Matching score based on Jaro-Winkler |
---|---|---|---|
François Dupont | John Doe | 26 | 58 |
François Dupont | France Dupont | 80 | 91 |
François Dupont | François Dupond | 93 | 97 |
François Dupont | François Dupont | 100 | 100 |
Updated 12 days ago