A board member asks a simple question: “Of everyone who came through general admission last month, how many paid full price, how many got a discount, and how many came in free?” The revenue report gives you dollars. The attendance count gives you heads. Neither one gives you the split, and that split is what funders, boards, and grant reports keep asking for.
Altru holds the data you need. Getting it out cleanly mostly comes down to two things: agreeing on definitions before you build anything, and building one query that you trust instead of reconciling three reports every month.
Start with definitions, not the report
“Paid,” “discounted,” and “free” sound obvious until you sort real transactions. Write down your rules first, then get finance and the front-of-house manager to sign off. Some common decisions:
- Member admissions. A member who walks in on a $0 member ticket didn’t pay at the door, but they did pay for a membership. Many organizations report members as their own category rather than lumping them into “free.”
- Comps. Staff guests, press, community partner passes, and donated tickets for raffles are usually “free,” but some boards want community access programs counted separately because they support a mission story.
- Discounts. A senior or military price is a discount off the adult price, but in Altru it may be set up as its own price type rather than a discount applied at checkout. Decide whether a lower price type counts as “discounted” or as “paid.”
- Reciprocal and partner programs. Visitors admitted under a reciprocal network or a library pass usually pay nothing at your gate. Decide where they land.
- Groups. School and group visits may be priced per head, flat-rate, or waived entirely. Make sure they follow the same rules as individual tickets.
Once these rules exist on paper, the report is mostly a mapping exercise.
Where the distinction lives in Altru
Altru doesn’t store a single “paid / discounted / free” flag on a ticket. You infer it from a few fields that are already there:
- Price type on the ticket (adult, child, senior, member, comp, and whatever else your organization has set up).
- Ticket price and amount paid, which tell you whether money changed hands for that admission.
- Discounts applied to the order or the line item, which show up separately from the base price.
- Sales channel, such as daily sales, advance sales, online, or group sales, if you want to split the picture further.
How cleanly this works depends on setup. If your organization uses a dedicated “Comp” price type, free admissions are easy to isolate. If staff instead sell an adult ticket and apply a 100% discount, those comps hide inside your paid price types and you have to catch them through the discount fields. It’s worth checking which habit your desk actually follows before trusting any numbers.
Building the query
Altru’s standard reports cover sales and attendance, but whether any of them splits attendance three ways the way your board wants is something to test, not assume. Run the existing program and ticket sales reports for a month you know well and see whether the output matches your definitions. If not, an ad-hoc ticket query is the more flexible route.
- Start from tickets, not orders. Orders combine several tickets, so an order-level query will undercount heads. Use a ticket-based query view so each row is one admission.
- Filter to general admission. Limit to the programs or events you consider general admission, and to the date range you’re reporting on.
- Exclude refunded and voided tickets. Otherwise refunds show up as attendance.
- Add the output fields: visit or event date, program, price type, ticket price, any discount amount, and sales channel.
- Export and classify. In a spreadsheet, add a column that applies your written rules: amount paid equals zero and price type is member, then “Member”; amount paid is zero otherwise, then “Free”; discount greater than zero or a reduced price type, then “Discounted”; everything else, “Paid.”
- Pivot by month and category. That table is the report your board wanted.
If you have smart fields or query-building comfort, you can push some of that classification into Altru itself. Keeping the rules in a spreadsheet column has one advantage, though: anyone can read and audit them.
Tickets sold versus people who showed up
One more decision: are you reporting tickets sold for a date, or tickets scanned at the door? Advance tickets for a rained-out Saturday are paid attendance on paper but empty space in the building. If your organization scans tickets, check whether redemption status is available in the query view you’re using and add it as a filter. If you’re unsure, ask Blackbaud support which fields capture redemption in your version, or test in a sandbox before reporting a number externally.
Sanity checks before you share it
- The total of all four categories should match the attendance figure you already report for the same period. If it doesn’t, look for refunds, group visits, or a program you filtered out.
- The “Paid” and “Discounted” rows multiplied by their prices should land close to your general admission revenue. Big gaps usually mean comps are being sold as discounted adult tickets.
- Spot-check ten random free tickets against the transaction detail to confirm they really were free.
Keeping it current without rebuilding it monthly
Once the query is right, the work becomes repetitive: run it, export, paste into the spreadsheet, refresh the pivot. Social Good’s Data Bridge syncs Altru query results to Google Sheets and other tools, so the classification sheet and pivot table can stay fed from the same saved query instead of a monthly manual export.
Quick answers
Can I count member visits in the same report?
Yes, if members receive tickets or are scanned in a way that creates a ticket record. If members are simply waved through, they won’t appear in a ticket query at all, and you’ll need a separate count.
Should discounted tickets include online promo codes?
That’s a policy call. Many organizations report promo-code sales as discounted so marketing can see the cost of promotions next to the attendance they drove.



