# Fuzzy Matching

Fuzzy Matching gives you the ability to match records where the matching data is not exactly the same; for example:

- "John Smith" is NOT the same as "Jon Smit"

but it is likely that they are actually the same person.

Fuzzy matching works by comparing the source string and target string and assigning a score, based on how similar the two strings are. For example, see the following table showing strings that their score:

Source | Target | Score
--- | --- | ---
John Smith | John Smith | 100%
John Smith | Jon Smit | 96%
John Smith | Jonny Smythe | 90%
John Smith | Smith John | 55%
John Smith | Fred Jones | 44%

You can test the scoring by going to the Fuzzy Match Demonstration (Tools Menu).

## Using Fuzzy Matching

NOTE: In the examples below, we will assume:

1. we are matching on the company name,
2. the source table has a field called src_company
3. the target table has a field called targ_company.

Use the following procedure to set up fuzzy matching on the Fuzzy Match Configuration tab:

###

### 1. Decide what the source expression and target expression will be

In our case, they may just be #src_company and #targ_company. This would compare the incoming company name with each company name in the target.

We may decide to make a more complex expression; for example

norm(#src_company) and norm(#targ_company)

This would normalize each of the source and target before comparing - this may give better results.

You have the full power of the expression editor available, so you can use more complex expressions that combine fields or parts of fields.

###

### 2. Decide what the LOWER and UPPER bounds will be

Once a source record has been scored, we need to decide what to do. The UPPER and LOWER bounds are used to decide how good the score is.

Score is | Match is | This means
--- | --- | ---
Greater than UPPER bound | GOOD | Treat the source and target as a true match and proceed
Between UPPER and LOWER bound | POSSIBLE | Treat source and target as a possible match. If user review is configured, show the possible matches and let the user decide; otherwise, treat it as NO match
Less than the LOWER bound | BAD | Treat as NOT a match

###

### 3. Decide on User Review

If the scoring produces POSSIBLE matches, you should review the possible matches and decide which one to use. For example, suppose the incoming company is "InaPlex", and the possible matches are "Inaplex Inc" and InaPlex Limited".

You can configure Inaport to show each of the possible matching records, so that you can decide which one is the correct match. When you run the import, the review dialogue will come up for each source record that has possible matches, and show you the source record and each of the possible matches in the target.