You closed for six weeks, or a renovation ran long, and leadership decided to give every active member extra time. Someone ran a global change on membership expiration dates in Altru, the membership records now show the new dates, and everyone moved on. Then a member shows up with a guest, and the guest pass on their record still says it expired last month.
Nothing is broken in the sense of a bug you can report and wait out. The extension simply didn’t reach the passes, and it’s worth understanding why before you decide how to clean it up.
Why the passes stayed put
In Altru, guest passes are usually issued as a benefit when a membership is sold, renewed, or upgraded. At that moment they get their own dates, typically lined up with the membership term that was current at the time. After that, they behave like their own records attached to the member, not like a live view of the membership’s expiration.
A global change on membership expiration dates edits the membership. Based on how teams describe it in practice, it does not go back and recalculate benefits that were already issued, so the passes keep the dates they were created with. The result is a member whose card is good through next spring and whose guest passes ran out in the fall.
We’re careful about stating exactly what any given Altru release does with benefit dates, because behavior can differ by configuration. Before you plan a fix, confirm it on your own data: pick one member the global change touched and compare the membership expiration with the guest pass dates. If you have a sandbox, run a small global change there first and look at the passes afterward. If anything is unclear, Blackbaud support can tell you how your version handles it.
Find everyone who was affected
Don’t fix this from the front desk one complaint at a time. Build a membership query that returns:
- Constituent name and lookup ID
- Membership program, level, and current expiration date
- Guest pass fields: quantity issued, quantity used or remaining, and expiration date (whatever your query view exposes)
Filter it to memberships whose expiration date is later than the guest pass expiration date, with unused passes remaining. If you saved a selection of the members included in the global change, start from that selection; it narrows the list to exactly the records you extended. If you didn’t save one, filter on the expiration date range the change produced.
That list tells you how big the problem is. Ten members is an afternoon of hand edits. Several hundred is a decision.
Choosing how to fix it
Edit the passes by hand
For a small group, open each member’s record and update the guest pass expiration to match the extended membership. Add a constituent note or attribute so the next person knows why the date moved. This is tedious but leaves clean, accurate data.
Honor passes at the door instead of editing
For a large group, many organizations make a policy call: if the membership is active, its unused guest passes are honored, regardless of the date on the pass. Put that rule in writing for admissions staff, and tell them how to record the visit so usage still counts against the member’s remaining passes. You give up some data accuracy in exchange for not touching hundreds of records.
Check for a bulk option before assuming there isn’t one
Some teams also want to issue additional guest passes to a whole group, for example as an apology for the closure. Whether Altru can add or change guest passes across a selection in one step is something to confirm, not assume. Look through the global changes available to your security role, and ask Blackbaud support directly. If there isn’t a supported bulk path, avoid workarounds that write to benefit data outside the normal process; it’s hard to undo and can confuse membership reporting.
Before the next global change
Extensions come up again: closures, weather, system outages, goodwill gestures. A short checklist keeps the guest pass problem from repeating.
- Save the selection of memberships you’re about to change, so you can find them later.
- List every benefit tied to the expiration date: guest passes, but also anything else your levels include that carries its own dates.
- Test in a sandbox and check those benefits on a few sample records afterward.
- Decide the guest pass policy up front and include it in the staff note that goes out with the extension.
- Tell members what changed. If the passes are being honored by policy rather than updated on the record, say so in the extension message so members don’t assume they lost them.
Quick answers
Will the next renewal fix the passes?
A renewal normally issues the benefits for the new term. It won’t restore unused passes from the extended period, so members with leftovers may still need a manual adjustment or a policy exception.
Should we undo the global change and redo it differently?
Usually not. The membership dates are correct; only the passes lag behind. Fix the passes or set a door policy rather than reversing work that’s already right.



