Here are four pairs pulled from a constituent file. In every pair, both entries are the same person.
- Rob Jacobson, and Robert Jacobson.
- J. Frank Miles, and Frank Miles.
- 576 Jones Bridge Road, and 576 Jones Bridge.
- Janelle Graves in 2025, and Janelle McDaniels in 2026. Same email address, same phone number.
Not one of those is a typo. Rob introduces himself as Rob; the check was signed Robert. Frank goes by his middle name, and whoever keyed the first record had his envelope in front of them. A volunteer abbreviated a street the way everyone in the neighborhood says it out loud. Janelle got married.
Four sensible acts by four careful people, four extra records, and a file that now believes it knows more human beings than it does.
The part that shows up on an invoice
Almost every donor CRM prices in bands by constituent count. You are not charged for the people you serve. You are charged for the rows you store.
So take a file with 2,673 records in it. Work through the variants, decide which ones are genuinely the same person, and collapse them. You come out at 2,180. That is not a rounding error. It is nearly a fifth of the list, and it is enough to drop a band. In the case I have in mind that was about $1,800 a year, paid annually, indefinitely, to store people the organization already had.
Eighteen hundred dollars is not a rounding error at a small nonprofit either. It is a real line in a budget that has no slack in it, and it was being spent on the difference between Rob and Robert.
What makes this worth doing rather than merely satisfying is that the saving repeats. Fix the intake so the variants stop arriving, and you do not pay it again next year, or the year after.
The part that does not show up on an invoice
That is the version of this problem that costs you money. Here is the version that costs you the truth.
You log a gift from Sunset Co. Some weeks later you log a gift from BrightEdge, for the same amount. Two corporate donors, two gifts, a good quarter. Then somebody mentions that BrightEdge is a subsidiary of Sunset Co, and the two entries are one gift, recorded twice.
The error has now moved from your expenses to your revenue, which is a considerably worse place for it to live. You have a corporate giving total that is too high. You have a year-over-year comparison built on it. Possibly you have a board report, or a grant application, or an annual report that went to print. And you have a thank-you letter problem, because one of those two entities got a receipt for money it did not send.
Organizations are harder to deduplicate than people, and the reason is structural. With Janelle you had an email address and a phone number that survived the name change. With Sunset Co and BrightEdge there is no shared field at all. The thing that makes them the same donor is a corporate ownership relationship that exists in the world and not in your database. No matching rule will find it, because the information was never there to match on.
Which is why the fix for organizations is not a clever query. It is a field.
What to actually do
Three things, and none of them requires new software.
- Stop matching on names. A name is the least stable field you hold. People marry, divorce, transition, anglicize, go by their middle name, or simply give you the short version because that is what they are called. Email addresses and mobile numbers move house far less often than names do. If your merge rule leads with name, it will miss Janelle in both directions: it will fail to join her two records, and one day it will cheerfully merge two unrelated people who happen to both be called David Nguyen.
- Run the count before you renew, not after. The renewal invoice is the only moment in the year when somebody is contractually obliged to look at the constituent number. Put the deduplication pass in front of it rather than behind it. If you are about to cross a band, that is the cheapest week of work available to you all year.
- Add a parent-organization field, and fill it in when you open the record. One column. When a gift arrives from a company you have not seen before, spend the ninety seconds it takes to find out who owns it. That is the entire fix, and it has to happen at entry, because reconstructing corporate ownership across four years of gift history is a genuinely miserable afternoon.
You will notice that two of the three are things you do at intake rather than in the database. That is not a coincidence, and it is the same argument as you can’t clean your way out of a bad form: the cleanup is a recurring cost that exists to compensate for a one-time fix nobody made.
The reason underneath the money
The savings are the argument that gets the work approved. A finance committee understands $1,800 a year immediately, and it should.
But the saving is not really why this matters. A constituent list is an organization’s memory of who has shown up for it. Every duplicate record is a small failure of that memory: you met this person, they gave you something, and you did not recognize them the second time. Janelle changed her name and became a stranger to you. Rob got two copies of the appeal and one of them was addressed to somebody he has not been called since school.
People notice. Not all of them, and not loudly. But the ones who have been with you longest are exactly the ones most likely to have moved, married, or shortened their name somewhere along the way, which means your most loyal supporters are the ones your database is quietly worst at recognizing.
Related: You can’t clean your way out of a bad form, on why the variants arrive in the first place.
