Two records land on your desk. One says Fatima Abdullahi. The other says Fatuma Abdulahi.
Same person, or two people?
You cannot look it up. There is no row in a table that answers this. There is no field called is_the_same_person. There is only evidence, and evidence is incomplete, noisy, and sometimes contradictory.
That is the whole problem. Everything else is detail.
We do this all day without noticing
You already know how to do this. You do it constantly.
You see someone from behind in a coffee shop. Same haircut as your friend Dave. Same jacket Dave wears. You decide it is Dave and you walk over.
You were not certain. You were maybe ninety percent sure, and you approached anyway because the cost of being wrong was a mildly awkward second.
Now imagine the cost of being wrong is a child’s vaccination record attached to the wrong file.
Same judgment. Completely different stakes. That gap is why this is a discipline and not just common sense.
What the maths actually gives you
The standard method is nearly sixty years old. Fellegi and Sunter wrote it down in 1969, and it still sits underneath most of the tools people use today.
For every field you compare, you ask two questions. If these two records really are the same person, how often would this field agree? And if they are different people, how often would it agree anyway?
The ratio between those two numbers is the weight of the evidence.
Agreeing on a rare surname is strong. Agreeing on a common one is nearly worthless. Add the weights up and you get a score.
Here is the part people miss. That score is not a fact. It is a belief, and it is only as good as the assumptions you fed it.
The system never observes that two records are the same person. It observes that they look alike, and someone, somewhere, decided how alike is alike enough.
Why it goes wrong for sparce names
Two failure modes. They pull in opposite directions, which is what makes this hard.
One name, many spellings. Diallo and Jallow are one Fula family name split by a border. Mohammed and Mamadou are one Arabic name through two transliteration traditions. A string matcher sees two words with almost nothing in common and says different. It is not calculating wrong. The fact it needed was never in the records.
Many people, one name. Two records both reading Ibrahim Musa, both in Kano. Everything agrees perfectly. They are still probably two different people, because in a city of millions that name is not evidence of anything.
Turn the threshold up and you fix the second problem while making the first worse. Turn it down and you get the reverse.
You cannot fix both with one dial.
That is why the answer is data, not a better algorithm. One problem needs a list of which spellings mean the same name.
The other needs a table of how common each name is. Different facts, different files, and no amount of tuning substitutes for either.
The ending
A good system here does not produce more confident answers. It produces better calibrated ones, and it knows when to stop.
The records that should merge, merge. The ones that should not, do not. And the handful that genuinely cannot be decided from the evidence available go to a person, with the evidence attached, rather than being guessed at where nobody can see the guess.
I have come to think that last part is most of the job. Not the matching. The knowing when you do not know.
There are two paradoxes sitting underneath all of this, and it helps to know they have names. Where “similar” becomes “same” is the sorites paradox, and whether a thing survives being changed is the ship of Theseus.