Why did this score 85 on Business?
Example 1:
Record | A |
Company: | The Palmer Air Charters service company |
Add1: | 7350 Airport Rd #106 |
Add2: | Wilmington |
Add3: | NC |
Zip: |
Example 2:
Record | B |
Company: | PAC |
Add1: | Suite 106 |
Add2: | 7350 Airport Rd |
Add3: | Wilmington |
Add4: | NC |
Zip: | 28401-4273 |
And we’re trying to match them on name or company.
The first question we should be asking is actually, are they even being compared in the first place? Because remember our matching works as a two step process, we line it up on the keys, then score it.
So we have 3 default keys
keys |
A |
B |
mkorgname1 + mkpostout |
pymyy |
PAC + 28401 |
mkorgname1 + mkphoneticstreet |
pymyy + ypyt |
PAC + ypyt |
mkaddresskey + mkpremise |
wylmypyt + 7350 |
wylmypyt + 7350 |
Because one of the records is missing a zip, we didn’t line it up on the first key.
because one of the companies is an acronym, we didn’t line it up on the 2nd key.
But because we had the same sounding street/city and same house number, we can line it up on the third key.
So we know its being compared, often clients may wonder why something isn’t scoring, but the actual issue is that it wasn’t being compared in the first place, so that should be the first thing you check.
So now that we know its being compared, let's find out what it's going to score.
By default, the score is a cumulative score, we don’t work on percentages like most others, we try to look at it more like a human would, instead of a machine.
There’s three main components to the score
Company
Address
Zip/Postcode
1. Organization
With the Company, we want to look at the mknormalizedorganization, as mentioned previously, we look at it left to right, generally limiting ourselves to the first three significant words
So we have
Company A : The Palmer Air Charters service company
Company B : PAC
which normalize to
PALMER,AIR,CHARTERS
And
PAC,,
There’s a matrix xml that we have with many predetermined decisions, so when we look at this from left to right
In this case, we have the one exception to the rule with this example, an acronym match, we’ll scan through the matrix and realize there wasn’t a match, and do a final check and see the PAC and Pamer Air Charters line up, and default it to a likely score.
If we look at the matrix stored by default in
C:\mSQL\config\matchingMatrices\businessLevel\organizationmatchingmatrix.xml
If we had something like Palmr Air and Palmer Air Charters,
If we navigate through it, we see the pattern the match follows, and the associated score. So in this case, the likely score is equal to 40 points. Similar to the score level of the acronym match
Whereas if we had a Palmer Air, and Palmer Air charters it would be Equal, Equal, one empty, and score sure, which is 60 points
Wheras if the name were transposed like Air Charters by Palmer, and Palmer Air Charters, it would only score possible, which is 25.
Some advanced clients will replace the sure/likely/possible entries in the matrix with decimal values, to get more granularity in their results
2. Address
When we score on the address, we look at the address lines as a whole
Record A:
Add1: 7350 Airport Rd #106
Add2: Wilmington
Add3: NC
Record B:
Add1: Suite 106
Add2: 7350 Airport Rd
Add3: Wilmington
Add4: NC
We use our own proprietary algorithm that looks across these columns as a whole.
In this case, even though the number of address lines is different, and the suite’s before the street in one, and abbreviated differently in the other, we’re pretty sure these are dead on, so we will give it a 40 out of 40, whereas say one was missing the city, we’d only get a 34, and if less than 50% of it was right, we’d end up just throwing it out and not scoring at all.
Address scores range from 20-40 by default in the US
Or 15-30 by default in the UK
3. Zipcode
In this case one record had a postcode/zip, and one didn’t,
If you look at the weights under zipcode, you’ll see we still have a score for this situation. (you can access these weights from findmatches or find overlap tasks, each matching level has its own set of weights)
The reason we put a small weight because of the lack of information, is that sometimes that score will give it a little extra to push it above the minimum score, as well as separate it from a situation where it was just two completely different postcode/zips.
So if the address wasn’t 100%, we’d need those extra points to push it above the minimum score – which is 80 by default.
Now if both your records actually have a zip, your scores may be different.
A sure score is when you have two records with the same 9 digit zip
28401-4273 matching 28401-4273 = sure = 30
Now
28401-4273 matching
28401 or
28401-4204
Where only the first five digits are the same = likely = 20
Wheras say the zip was transposed
28401-4273 matching
28410
= possible = 15
So company names are based on the matrix, address is based on an algorithm that looks at the address lines as a whole, and the zip has its own separate rules.
Once we go through all 3 we add up the score
Name = 40
Address = 40
Zip = 5
Total = 85
To get more insight into why your matches scored what they did, ensure you’re breaking out the component scores, its an option in your findmatches/findoverlap task when you’re showing advanced options.