A member walks up to the admissions desk, hands over a card, and says, “I haven’t been here since spring.” Was that spring of this year or two years ago? Did they come in last weekend with a different family member? The cashier has no idea, because the sales screen is built to sell tickets, not to tell a visitor’s story.
Knowing when a member last visited is useful at the point of sale for a few concrete reasons: starting a renewal conversation with someone who clearly gets value from their membership, catching a card that is being passed around, or simply welcoming back someone who has been away. Here is what Altru gives you out of the box, where it falls short, and the workarounds that hold up in practice.
First, decide what “last visit” means at your site
Altru records several different events that people casually call a visit, and they are not the same thing:
- Membership check-in or scan. A member shows a card and enters on their membership benefit, with no ticket purchase.
- A ticket purchase. A member buys add-on tickets, guest tickets, or a special program in daily sales or advance sales. The sale date is not necessarily the visit date, especially for advance sales.
- Ticket redemption. A ticket is actually scanned at the gate on the day of the event.
If your organization checks members in consistently, check-in history is the most honest answer. If members often walk past the desk on busy entry lanes without being scanned, any “last visit” number will undercount, and staff should know that before they quote it to a guest. Settle on one definition before you build anything.
What the sales screen shows today
When a cashier looks up a member during a daily sales transaction, Altru shows enough to identify the person and confirm membership status. In our experience it does not show a “last visited” date in that view, and there is no well-known setting that adds one. Because Altru is updated over time and configurations differ, confirm this in your own environment: look up a test member in a sandbox or training database, or ask Blackbaud support whether your version can display visit or attendance history during a sale.
The information itself usually exists in Altru. The issue is getting it in front of the cashier without slowing the line.
Workarounds that actually work
1. Open the constituent record alongside the sale
The simplest option: a supervisor or a second screen opens the member’s constituent record and checks their recent revenue and membership activity. It requires no setup and works today. The downside is speed. Nobody wants to do this for every member during a rush, so treat it as a tool for specific conversations, such as a renewal discussion or a suspected shared card, rather than a routine step.
2. Build a “last visit date” smart field
If your team has access to create smart fields, you can calculate the most recent check-in or ticket date per constituent. Once it exists, that value can be used in queries, reports, and on the constituent record. Two cautions:
- Base it on the definition you chose above. A smart field built on sales dates will tell you when someone last bought something, which is not always when they last walked in.
- Smart fields refresh on a schedule, not instantly. A member who visited this morning may not show up until the next refresh. That is fine for spotting someone who has been away for months; it is not fine for catching a card used twice in one day.
Whether a smart field value can appear directly on the daily sales screen is something to test, not assume. Even if it cannot, having it on the constituent record makes workaround number one much faster.
3. Use a constituent note or alert for the cases that matter
Most desks do not need visit dates for every member. They need a flag for a handful of situations: a card reported as shared, a lapsed VIP the development team wants to greet, a member owed a make-up visit. A note or alert on the constituent record, set by whoever is responsible, puts the right message in front of staff without building anything. Check in a sandbox whether your alerts surface during a daily sales lookup before you rely on them.
4. Prepare a list before the doors open
Run a query each morning, or weekly, of active members whose last visit date is older than a threshold you choose, such as six months. Share it with the desk lead and membership staff. It is low-tech, but it turns “last visit” into something you can act on: a welcome-back conversation, a targeted email, or a renewal outreach list for members who are paying and not coming.
Keep the data clean enough to trust
Any of these approaches depends on visits being recorded to the right person. Two common problems undermine them:
- Unscanned member entries. If staff wave members through without checking them in, the last-visit date will look older than reality. Make scanning the default, even when it feels like a formality.
- Duplicate constituent records. If a member exists twice, their visits can be split across both records, and neither shows the true last visit. Reviewing duplicates periodically and merging them pays off here.
Quick answers
Can a cashier see visit history without leaving the sale?
Not in a way we can confirm as standard. Test in your own environment, and plan on a smart field or a second screen if it isn’t there.
Is last purchase date a good substitute?
Only if members buy something on most visits. For sites where members mostly enter on their card alone, check-in history is far more accurate.
How do we spot a shared membership card?
Watch for repeated same-day check-ins on the same membership, which needs near-real-time data rather than a scheduled smart field. A daily query of memberships with multiple check-ins on one date is a practical starting point.



