Two records at 412 Elm Street can mean three different things. It might be the same person entered twice. It might be a married couple who each bought a membership. Or it might be an apartment building where the unit number never got typed. Altru’s duplicate tools are built to answer “is this the same person?”, and that’s a different question from “which addresses appear on more than one record?”
This guide covers the second question: how to pull a list of shared addresses out of Altru, how to read it, and what to do with each kind of match.
Why the built-in duplicate check doesn’t quite cover this
Altru’s duplicate checking is aimed at finding the same person entered twice, so it weighs names alongside contact details. Two records with different names at the same address generally won’t surface as likely duplicates, and that’s the right behavior for merging. But it means a list like “every address that appears on two or more constituents” isn’t something the duplicate search hands you directly.
If you’re not sure whether your version of Altru has a report or query option that groups and counts by address, check with Blackbaud support or try it in a sandbox. The method below works either way, because it only depends on queries and a spreadsheet.
Step 1: Build a constituent address query
Create an ad-hoc constituent query and add these output fields:
- Constituent lookup ID and name (so you can find the record later)
- Primary address: address lines, city, state, ZIP
- Address type, if you track it
- Household name or household ID, if the constituent belongs to one
- Deceased and inactive flags, plus any do-not-mail setting
- Something that shows recent activity, such as last membership expiration or last gift date
Filter to individuals with a primary address. Decide up front whether to include organizations; a museum store vendor and its owner sharing an address is rarely a problem, and including organizations doubles the noise.
If your organization keeps more than one address per person, run the query on primary addresses first. Matching every address on every record is possible, but the results get hard to interpret fast.
Step 2: Export and normalize the addresses
Export the results to Excel or Google Sheets. Before you count anything, clean up the address text in a helper column, because “123 N Main St.” and “123 North Main Street” won’t match as written:
- Convert to all uppercase and trim extra spaces.
- Strip periods and commas.
- Standardize common words: Street to ST, Avenue to AVE, North to N, Apartment and Unit to a single form.
- Use only the first five digits of the ZIP code.
Then build a match key by joining the cleaned address line 1, address line 2, and ZIP into one string. Keep address line 2 in the key. Leaving it out is how a 200-unit apartment building turns into one giant “duplicate.”
Step 3: Count and sort
Add a column that counts how many rows share each match key (COUNTIF works in both Excel and Google Sheets). Filter to counts of 2 or more, then sort by match key so the records at each address sit together. A pivot table on the match key gives you the same answer if you prefer.
Sort the largest counts to the top and look at those first. An address with eight constituents is usually a business, a school, a senior living community, or a single typo pasted into a batch import.
Step 4: Sort the matches into buckets
Every shared address falls into one of a handful of situations, and each has a different fix:
Same person, two records
Similar names (Bob and Robert, a maiden and married name, a missing middle initial) at the same address. These are true duplicates. Review the giving, membership, and ticket history on both records, then merge them using Altru’s constituent merge, keeping the record with the most complete history as the one that survives.
Different people, same household
Spouses, partners, adult children. Don’t merge. Instead, make sure they’re linked in the same household with the right relationships. This is the case that usually matters most for mailings, because unlinked household members each get their own renewal letter or appeal.
Different people, unrelated
Roommates, or a family that bought the house from a former member. Check whether one of them has moved. If the older record has no recent activity, it may be time to retire that address on the older record (end-date it or mark it inactive, depending on how your organization handles old addresses) so it stops receiving mail.
Shared institutional addresses
Schools, offices, PO boxes used by several people. Usually fine to leave alone. Note them so you don’t review the same addresses every time you run the list.
Keeping the list short after the first cleanup
Save the query and rerun it on a schedule, perhaps monthly or before every big mailing. After the first pass, the list should mostly contain new records from recent sales and imports, which makes the review quick.
It also helps to look at where new duplicates come from. If most of them trace back to online ticket and membership purchases, the cause is usually guests who check out without signing in and type their information slightly differently each time. Tightening how online transactions match to existing constituents, and training desk staff to search before creating a new record, prevents more duplicates than any cleanup does.
Where Social Good fits
The address review above is a spreadsheet job you can do with what Altru already gives you. For the records that turn out to be the same person, Deduper is built to find and fix duplicate constituent and email records in Altru, which helps when the same-person bucket is larger than you want to work through by hand.
Quick answers
Should I merge two constituents just because they share an address?
No. A shared address is a reason to look, not a reason to merge. Merge only when you’re confident it’s the same person, and use households for everyone else.
Do I need address standardization software to do this?
Not for a first pass. Simple find-and-replace on common abbreviations catches most mismatches. If your mailing vendor runs address standardization, ask whether they can return the cleaned file so you can update records in Altru.



