Altru ZIP Code Report by County and Members
← Back to Blog

Adding County and Member Breakdowns to Altru ZIP Code Reporting

August 23, 2026

A county commissioner asks how many of your visitors live in their county. A state grant wants attendance broken out by county, with members shown separately. Your Altru ZIP code numbers are a good starting point, but ZIP codes don’t line up with county lines, and the standard report may not split members from everyone else. You can build both breakdowns yourself with a query, a lookup table, and a spreadsheet you set up once.

Start by deciding what you are counting

“Visitors by ZIP” can mean three different things in Altru, and each one comes from a different place:

  • Admissions sales by ZIP: the ZIP staff collect at the point of sale in daily sales, or that guests enter online. This counts transactions or tickets, including people who never become constituents.
  • Constituents by ZIP: the ZIP on a constituent’s primary address. This counts people (or households), not visits.
  • Members by ZIP: active memberships, tied to the primary member’s address.

Funders often mix these up. Before you build anything, write one sentence that defines the number, such as “paid admissions in fiscal 2026, by the ZIP collected at sale, grouped by county, with member visits shown separately.” That sentence decides which records you query.

Check what the built-in report can already do

Altru’s ZIP-based reporting options and parameters can differ depending on your version and by how your organization has configured ZIP collection. We can’t promise whether your install offers a county grouping or a member filter out of the box, so look at the report’s parameters first. If you don’t see a county option, assume it isn’t there. A quick question to Blackbaud support will confirm it. In most setups, the reliable path is a query you control.

Adding county: the lookup table approach

Altru stores ZIP codes, not counties, unless you have been recording county on addresses yourself. To get county you need a ZIP-to-county reference table and a join.

  1. Get a crosswalk. The U.S. Census Bureau publishes ZCTA-to-county relationship files, and HUD publishes a ZIP-to-county crosswalk. Both are free. Trim them to your state or service region so the file stays small.
  2. Decide how to handle split ZIPs. Many ZIP codes cross county lines. The crosswalks give a share of addresses or population for each county. Your choices: assign each ZIP to the county with the largest share (simple, slightly imprecise), or split the counts proportionally (more accurate, harder to explain). Pick one, note it in a footnote, and keep using it every year so the numbers stay comparable.
  3. Build the Altru query. Output the ZIP (first five characters only, since ZIP+4 values will break the match), plus whatever you’re counting: quantity, transaction date, revenue, constituent ID. Filter to your date range.
  4. Join in a spreadsheet. Export the query, paste the crosswalk on a second tab, and use a lookup on the five-digit ZIP to add a county column. A pivot table then gives you totals by county.
  5. Catch the leftovers. Blank ZIPs, international postal codes, and typos won’t match. Show them as an “Unknown / outside region” row instead of dropping them, so totals still tie back to Altru.

If you only need this once a year, that’s the whole job. If you need it monthly, see the last section.

Adding a member breakdown

Splitting members from non-members depends on the source you picked above.

For constituent or member counts

Query constituents with an active membership as of a specific date, and output the primary address ZIP. Count households, not individual constituents, if your memberships cover more than one person, or a family of four will show up as four “members” in one ZIP. Run the same query without the membership filter to get all constituents, and you have both columns.

For admissions

This is harder. A ticket sale only links to membership if the sale was tied to a constituent record who held an active membership at the time. Member admissions processed with a member price type, or scanned against a membership, are easier to separate than anonymous walk-up sales. Practical options:

  • Group by price type or program if member admissions use their own price types. This is usually the cleanest split.
  • Use the membership scan or check-in history if your organization records member visits that way.
  • Label the rest “general admission” rather than “non-member.” Some of those guests may be members who didn’t identify themselves, and the label should be honest about that.

Test any of these in your query before you hand numbers to a funder. Pull a few days you know well and check that the member count looks right.

Improve the data going in

County reports are only as good as ZIP capture. A few habits help:

  • Make the ZIP prompt at the desk quick and consistent, and train staff not to skip it at the busiest times.
  • Require a ZIP on online ticket and membership purchases.
  • Clean up obvious junk values (00000, 99999, five spaces) and decide whether a placeholder means “declined” or “not asked.”
  • Merge duplicate constituents. Two records for one household with two different addresses will split their counts across ZIPs.

Making it a report you don’t rebuild every month

The export-and-lookup step is the part that eats time when you need the numbers every month or quarter. Our Data Bridge syncs Altru query results to Google Sheets, so you can keep the crosswalk and the pivot table on their own tabs and let the query tab update, instead of re-exporting and re-pasting each time. Altru still holds the data; the sheet just does the county grouping.

Quick answers

Can I store county on the address in Altru instead?
Possibly, if your address setup has a county field or you add an attribute for it. Filling it in for existing records would still require the crosswalk and an import, so test in a sandbox first.

Why don’t my county totals match my ZIP totals?
Usually unmatched ZIPs (blanks, ZIP+4, out-of-state) or split-ZIP handling. Add the “Unknown” row and the totals should reconcile.

Continue reading

How to Track Instructor Activity for Scheduled Programs in Altru

How to Track Instructor Activity for Scheduled Programs in Altru

“How many classes did Maria teach last spring, and which ones?” It sounds like a question Altru should answer in ten seconds. In practice, many education departments end up digging through calendars, email threads, and a payroll spreadsheet to piece it together, because the instructor was never recorded anywhere a query could find. Altru is

How to Turn a Group Sales Overpayment Into a Donation in Altru

How to Turn a Group Sales Overpayment Into a Donation in Altru

A school books a field trip for 60 students, sends a check for the full quote, and then 48 kids show up. The teacher says, “Keep the difference, it’s a gift.” Now you have a group sales order that is overpaid, money that is really a donation, and a deposit that has to balance. The

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

Can a Spouse Be a Fundraiser in Altru? Solicitor Credit for Couples

It happens more often than you’d expect. A board member and her husband both care about your capital campaign. She asks a friend for a gift, but it was really his introduction and his follow-up phone call that closed it. Development wants him credited as the fundraiser on that gift. Then someone at the desk

Social Good platform

See it in action

Get started with Social Good

Book a demo to see Social Good Software in action for Altru.

Book a Demo
Social Good platform

See Social Good in action

Tell us a bit about your organization and we’ll take you straight to short demo walkthroughs of the software.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.