A family booked the 11:00 planetarium show, but when they arrive they’d rather spend that hour at the behind-the-scenes animal encounter. Same day, similar price. It sounds like a simple swap. In Altru it often isn’t, because the two are different programs, and moving a guest to another time of the same program is a very different change from moving them to another program.
This guide covers what Altru handles cleanly, what it doesn’t, and how to set up a process so staff move guests between programs the same way every time, with revenue and attendance still adding up at the end of the month.
Why “same program” and “different program” behave differently
In Altru, a program carries a lot with it: its price list, its capacity, its revenue designation, and the events or times it’s scheduled for. When a guest switches from 11:00 to 2:00 of the same program, almost none of that changes. The price, the GL mapping, and the reporting category all stay put. Only the event and the seat count move.
Moving a guest to a different program changes most of those at once. The price may differ, the revenue may belong to a different account, and attendance has to show up under the new program, not the old one. That’s why you shouldn’t assume Altru will treat a cross-program swap as a simple exchange.
Confirm this on your own version. What your Altru setup allows may depend on how the order was sold (daily sales, advance sales, or a web form) and on your permissions. Before you train staff, try it in a sandbox (or on a test order you’ll void): sell a ticket to Program A, then see which exchange paths Altru offers. If you’re still unsure, ask Blackbaud support directly whether cross-program exchanges are supported for your sale type.
The dependable method: return, then resell
When a true cross-program exchange isn’t available, the standard approach is to treat it as two transactions tied together by the same guest:
- Look up the original order on the constituent record (or by order number for walk-ups with no constituent attached).
- Return or refund the original tickets. This releases capacity on the original program and reverses its revenue.
- Sell the new program to the same constituent, at whatever price applies.
- Settle the difference. If the new program costs more, collect the balance. If it costs less, refund the difference to the original payment method. If the price is the same, you may be able to apply the refunded amount to the new sale rather than sending money back to the card. How you record that depends on your payment setup, so test it first.
- Add a note to both orders (“Exchanged to Program B per guest request”) so anyone looking at the refund later understands it wasn’t a lost sale.
It’s more steps than one button, but the result is accurate: capacity is freed where it should be, revenue lands in the right designation, and attendance reports reflect what the guest actually did.
Watch for these side effects
- Card refunds take time. If you refund to a card and charge the same card again, the guest may briefly see both on their statement. Tell them up front.
- Discounts and member pricing. If the original sale had a member discount or promo, make sure it’s applied to the new sale too. Otherwise the guest pays more for an equal swap.
- Batches and daily reconciliation. Refund and resale may land in different batches, or on different days if the exchange happens at the door the next morning. Your finance team should know this pattern exists so it doesn’t look like an error.
- Group sales. Moving part of a group to a different program may be easier to handle by adjusting the group sales reservation than by refunding individual tickets. Check with whoever owns group bookings before touching those orders.
Decide the policy before the desk decides it for you
Without a written rule, each staff member will handle exchanges differently. Some will refund, some will comp the new program and leave the old ticket in place, and some will say no. The comp approach is the one to avoid: it inflates attendance on a program nobody attended and hides revenue that should have moved.
A short policy might answer:
- Which programs can be swapped for each other? Many organizations allow exchanges only within a similar price tier.
- Is there a cutoff, such as no exchanges after the original program’s start time?
- Who can approve an exchange into a more expensive program without collecting the difference?
- Are web purchases eligible, or only tickets bought on site?
Post it at the register, and put the same wording in your ticket confirmation emails so guests know the rules before they ask.
Check your work once a month
Build a simple query of refunded ticket orders where the same constituent made another ticket purchase the same day. That catches most exchanges and shows you how often guests are switching, and between which programs. If the same two programs keep showing up, that’s useful scheduling information. It may also be a sign that one program’s description on your website isn’t setting the right expectations.
Quick answers
Can I just change the program on an existing order?
Don’t count on it. The program drives price and revenue mapping, so even where an in-place edit looks possible, test it first and check what it does to revenue and attendance. Return and resell is the safe default unless your testing shows a supported exchange path.
What about walk-up guests with no constituent record?
Find the order by its number or the receipt. If you expect to issue a refund to a card, attaching the sale to a constituent first makes the history much easier to follow later.



