Rules used to determine which record in a matching group should be marked as the master record (i.e. the best record).
Location: <settings><advanced><masterPriorities>
<masterPriorities>
<rule .../>
<rule .../>
...
</masterPriorities>
OR
<masterPriorities>filename</masterPriorities>
where filename is the pathname of a file containing the master priority rules in the form:
<settings>
<masterPriorities>
<rule .../>
<rule .../>
...
</masterPriorities>
</settings>
As part of the grouping process, Syniti Match API will intelligently choose the master record for a matching group based on the data contained in the records in the matching set. The record with the 'best' data is designated as the master record for the matching group. Syniti Match API uses the master priority rules to determine how to score the quality of the data held within the matching records.
The rules dictate score adjustments for each type of matching field. For example, by default if the phonetic last name field is empty (Name1), then the master priority score will have 99 points subtracted from it. The overall score is the sum of the scores for each field listed in the rules.
In the event that you have multiple records scoring the same master priority score, all having the highest score in the matching group, then the record with the biggest address length (i.e. number of characters in the address fields) will be marked as the master record. The record in the matching group with the highest master priority score will be designated the Master Record.
<masterPriorities>
<rule field="Name1" test="empty" score="-99" /> <!--surname-->
<rule field="OrgName1" test="empty" score="-99" /> <!--first business word-->
<rule field="DataFlags" test="value" pos="8" operation="equal" value="S" score="-55" /> <!--salutation-->
<rule field="Name2Found" test="value" operation="equal" value="X" score="-33" /> <!--inconsistent sex of first forename and title-->
<rule field="PostOut" test="empty" score="-33" /> <!--first half of postcode-->
<rule field="PostIn" test="empty" score="-33" /> <!--second half of postcode-->
<rule field="Organization" test="empty" score="-22" />
<rule field="Address1" test="empty" score="-22" />
<rule field="Address2" test="empty" score="-22" />
<rule field="Address3" test="empty" score="-22" />
<rule field="DataFlags" test="value" pos="7" operation="equal" value="P" score="-22" /> <!--title derived from forename-->
<rule field="JobTitle" test="empty" score="-11" />
<rule field="TelLocalNumber" test="empty" score="-10" /> <!--local part of phone number-->
<rule field="Name3" test="empty" score="-5" /> <!--middle initial-->
<rule field="OrgName3" test="empty" score="-5" /> <!--third business word-->
<rule field="TelAreaCode" test="empty" score="-5" />
<rule field="FullName" test="empty" score="0" />
<rule field="Address4" test="empty" score="0" />
<rule field="Postcode" test="empty" score="0" />
<rule field="Telephone" test="empty" score="0" />
<rule field="Gender" test="empty" score="0" />
<rule field="Prefix" test="empty" score="0" />
<rule field="Contact" test="empty" score="0" />
<rule field="Name2Found" test="value" operation="equal" value="Y" score="11" /> <!--first forename recognised-->
<rule field="Name2" test="length" operation="equal" value="1" score="22" /> <!--initial of first forename-->
<rule field="Name2" test="length" operation="greater" value="1" score="33" /> <!--first forename-->
<rule field="OrgName2" test="length" operation="equal" value="1" score="22" /> <!--initial of second business word-->
<rule field="OrgName2" test="length" operation="greater" value="1" score="33" /> <!--second business word-->
</masterPriorities>
field: The name of the field the rule applies to.
test: Specifies the type of test:
- empty: Rule applies if the field is empty
- value: Rule applies if the field matches the specified value
- length: Rule applies if the field matches the specified length
pos: Indicates a character position within the field to compare against value. Value in this case must be a single character.
operation: When testing the length or value of a field, the following operations are permitted:
- equal
- notEqual
- greater
- notGreater
- less
- notLess
value: The value or length to compare to.
score: The score adjustment to apply if the condition of the rule is met.
You can also add custom fields (if you have mapped any in your datasources) into the matrix. For example, consider the following rule:
<rule field="CustomField1" test="value" pos="8" operation="equal" value="X" score="-33" />
This rule means that when the field mapped as CustomField1 is scored, if the value of the character in position 8 contains an X, then the total master priority score will have 33 subtracted from it.