Your renewal mailing goes out in January. A good share of your longtime members spend the winter in Arizona or Florida, and their renewal notices land in a mailbox nobody will check until April. The seasonal address is sitting right there on their constituent records, yet the query you built for the mailing only returns the primary address. That gap catches a lot of Altru administrators, and it comes down to which address fields the query is using.
Why your query only shows the primary address
A constituent in Altru can have several addresses, each with its own type and, when it’s a seasonal address, a recurring date range for when it applies. When you build a constituent query and pull fields from the primary address area, you get exactly one address per person: the one flagged as primary. Seasonal addresses aren’t primary, so they never show up there.
To see them, you need the area of the query field list that holds all of a constituent’s addresses, not just the primary one. That collection includes address type, the address lines, and the seasonal start and end dates if your staff entered them. Field names vary a little depending on your Altru setup, so browse the address-related folders under the constituent source view and look for the one that isn’t limited to primary.
Building a seasonal address query
- Start from the constituent source view and add the people you care about as criteria first (active members, a selection, a mailing segment, whatever drives this list).
- Add filters from the all-addresses collection. Filter on address type equal to whatever your organization uses for seasonal addresses, usually “Seasonal.” If staff have been inconsistent and some seasonal addresses are typed as “Home” or “Other,” you’ll want to clean that up first or filter on the presence of seasonal dates instead.
- Add the output fields from that same collection: address lines, city, state, ZIP, country, address type, and the seasonal start and end dates. Pulling output from the primary address area alongside these filters will give you the wrong address, so keep filters and output in the same collection.
- Exclude addresses marked do-not-mail if that flag is in use on your records.
- Preview and count. Compare the row count to your constituent count. If you see more rows than people, someone has two seasonal addresses on file (say, a summer cottage and a winter condo), and you’ll need to decide which one wins.
Handling the date range
This is where it gets fiddly. Seasonal dates are typically stored as a month and day that repeat every year, not as full calendar dates. A winter address might run from November 1 to April 15, which crosses the year boundary. A simple “start date is before today and end date is after today” filter won’t handle that correctly in January, because November is numerically after January.
Before you spend an afternoon on clever filter logic, test what the query designer actually offers for these fields in your database. Depending on how the fields are exposed, you may be able to filter them directly, or you may find it easier to output the start and end dates and sort out “active right now” in a spreadsheet. If you’re not sure how the seasonal fields behave in filters, try it on a handful of test records or ask Blackbaud support before you rely on it for a real mailing.
For most mailings, a practical rule works fine: pull everyone whose seasonal address covers the date the piece will arrive, not the date you run the query. A renewal notice dropped in mid-March for a snowbird who goes home April 1 may be better sent to the primary address.
Getting one mailing list with the right address for each person
What you usually want is a single list: the seasonal address when it’s active, the primary address otherwise. A single Altru query doesn’t make that “use this, else that” choice easily, as far as we know. The reliable approach is two queries:
- Query A: the people in your mailing who have an active seasonal address, with the seasonal address as output.
- Query B: the same mailing population, excluding everyone in Query A, with the primary address as output.
Make Query A a selection so Query B can exclude it cleanly. Export both and combine them, or hand both files to your mail house. Include the constituent lookup ID in each so you can spot any duplicates before anything prints.
Keep the data clean so the query keeps working
The query is only as good as how consistently staff enter seasonal addresses. A few habits help:
- Agree on one address type for seasonal addresses and don’t let it drift.
- Always fill in the seasonal start and end dates. A seasonal-typed address with no dates is a guess.
- Don’t swap the primary flag back and forth twice a year. It works until someone forgets, and it scrambles address history.
- When a member calls to say “I’m back north,” check whether the dates on file are still right instead of just noting the call.
Using the list outside Altru
If the seasonal list feeds an email platform or a shared spreadsheet for your mail vendor, re-exporting it every time someone heads south gets old. Data Bridge syncs Altru query results to Google Sheets, Mailchimp, ActiveCampaign and other tools, so once the seasonal query is built, the downstream copy stays current without manual exports.
Quick answers
Can I just make the seasonal address primary for the winter?
You can, but it depends on someone remembering to switch it back, and every other process that uses the primary address changes with it. Querying the seasonal address directly is safer.
Why do some members show up twice?
They have more than one address matching your filters, often two seasonal addresses or a seasonal address entered twice. Fix the record, or tighten the filter to the active date range.



