“Who lapsed last quarter?” sounds like a one-click question. In Altru it usually isn’t, because “lapsed” means different things to different people on your staff, and the answer depends on which date you anchor to. Before you build anything, settle the definition. After that, the report itself is a fairly ordinary membership query.
Decide what “lapsed” means for your organization
Altru stores a status on each membership, and lapsed is one of the statuses it uses. That status is useful, but it’s a snapshot: it tells you who is lapsed right now, not who lapsed during a given period and stayed gone. For most reporting you want one of these instead:
- Expired in a date range and has not renewed. The classic win-back list. Example: everyone whose membership expired between January 1 and March 31 and who has no active membership today.
- Currently past expiration but still inside your grace period. These people can still renew as renewals, so they’re the most valuable to contact first.
- Past the grace period. Anyone who comes back from this group is effectively a rejoin, so their messaging should be different.
Write your definition down, including the grace period in days. If the membership manager and the development director are each using their own definition, the numbers will never match and the report will lose credibility fast.
Build the lapsed list as a membership query
Altru has standard membership reports, and depending on your setup one of them may already give you a usable expired list. Check those first. When they don’t slice the data the way you need, an ad-hoc membership query gives you full control. The general approach:
- Start from memberships, not constituents. A membership query keeps the expiration date, program, level, and status on the same row, which is what you need for filtering.
- Filter on expiration date for the window you care about, and on membership status for anything that isn’t currently active.
- Exclude people who already came back. This is the step people skip. A member may have a lapsed membership record and a newer active one, or a renewal that was processed under a different household member. Exclude constituents who have an active membership in the same program, and spot-check a few households by hand to make sure the logic holds.
- Add the output fields staff will actually use: name, primary member, household, membership level, expiration date, last transaction date and amount, preferred email and address, and any communication preferences or solicit codes.
- Save it as a reusable query with a relative date filter if your version supports it, so next month’s list doesn’t require editing the dates.
If you aren’t sure whether a particular field or filter is available in your query view, test it against a small date range and compare a handful of rows to the constituent records. Blackbaud support can also confirm which membership fields are exposed in queries for your version.
Common reasons the list looks wrong
- Deceased or do-not-solicit constituents show up because nobody filtered them out.
- Gift memberships appear under the recipient, but the person likely to renew is the giver.
- Program changes (someone moved from one membership program to another) make a renewed member look lapsed if you only check one program.
- Duplicate constituent records make a member who renewed under a second record look like they disappeared.
One view of lapsed, renewed, and upgraded
Many membership teams want a single report that shows, for a period, who renewed, who upgraded, who downgraded, and who lapsed. Altru records membership transactions with types like join, renew, upgrade, downgrade, and rejoin, so the raw ingredients exist. What’s harder is getting all of them onto one page with counts that add up.
The approach that tends to work:
- Define a cohort: every membership that was due to expire in a given month or quarter.
- For each membership in that cohort, pull the next membership transaction (if any) and its type, along with the old and new level.
- Classify each row as renewed at the same level, upgraded, downgraded, or lapsed (no transaction within your grace period).
- Summarize with counts and revenue by outcome.
Steps 1 and 2 are queries. Steps 3 and 4 are where most teams end up exporting to a spreadsheet and using a pivot table, because building that classification inside a single Altru query can be awkward. That’s a reasonable choice. The cohort method also gives you a renewal rate you can trust: renewed plus upgraded plus downgraded, divided by the cohort size.
Turn the report into a routine
- Run the in-grace-period list weekly and hand it to whoever makes renewal calls or sends reminders.
- Run the past-grace-period list monthly for win-back mailings.
- Run the cohort outcome report monthly or quarterly for the board and budget conversations.
- Keep the query names consistent so anyone on the team can find them.
Keeping the list current outside Altru
The weak spot in all of this is the export. Someone downloads a CSV, it sits in a shared drive, and two weeks later it’s stale. Data Bridge syncs Altru query results to Google Sheets, Mailchimp, ActiveCampaign, and similar tools, so a lapsed-member query can feed a sheet with your outcome pivot, or a win-back email audience, without a manual export each time. Altru stays where the membership data lives; the sync just moves the query output where your team works.
Quick answers
Is there a single built-in “lapsed members” report in Altru?
Altru’s standard membership reports may cover a basic expired list, depending on how your programs are set up. For a list that excludes people who already renewed, a membership query is usually more reliable.
Why doesn’t the lapsed status match my query?
The status reflects the record today. A date-range query reflects what happened in a period. Both can be correct while showing different numbers.



