Duplicate Patron Detection — How It Works
When a new account registration is submitted, MessageBee runs a multi-step duplicate check against your ILS before creating a record.
1. Candidate Retrieval
We query your ILS for existing patrons by last name. If the result set is large, we narrow the search by combining last name with date of birth to keep the comparison set manageable.
2. Field-Level Similarity Scoring
Each candidate record is scored against the incoming registration across several fields. Rather than requiring exact matches, we use fuzzy matching algorithms that produce a score between 0 (identical) and 1 (completely different) for each field:
- First name, email, and address — scored using edit-distance matching, which accounts for common typos, transpositions, and minor variations
- Last name — also fuzzy-matched, but held to a tighter tolerance since last name is a strong identity signal
- Date of birth — treated as a near-binary field, with a small allowance for off-by-one-day data entry errors
3. Weighted Composite Score
The individual field scores are combined into a single composite score using a weighted formula. Fields that are stronger identity indicators (last name, date of birth) carry more influence than fields that change frequently or are more likely to be missing (email, address). The composite is normalized to a 0–1 scale.
4. Missing Field Handling
If a registration is missing one or more fields, a small penalty is applied to prevent the composite score from being artificially inflated by a limited set of matching fields.
5. Duplicate Determination
If the final composite score falls at or below our match threshold, the candidate is flagged as a probable duplicate and account creation is blocked or held for review — depending on your configured workflow.