Development directors keep asking for the same four columns: donor name, lifetime giving, last gift amount, last gift date. It sounds like something you’d find under Reports. In Altru it usually isn’t a single canned report you run. You build it, most often as a constituent query with a few smart fields behind it. Once it’s set up, it takes seconds to refresh.
Below is how to put it together, plus the decisions you need to make first. Those decisions are where most giving reports go wrong.
Decide what “total giving” means before you build anything
Two people can run a “total giving” report against the same Altru database and get different numbers. Usually neither is wrong. They just counted different things. Settle these questions with whoever will read the report:
- Which revenue counts? Donations only, or also memberships, event registrations, and ticket sales? Most fundraising teams want donations (and maybe membership dues above a certain level), not admission revenue.
- Pledges or payments? A pledge for an amount isn’t money received. Decide whether the total reflects commitments or cash in hand.
- Individuals or households? If spouses give separately, a constituent-level report splits their giving. A household-level view combines it. Pick one and label the report that way.
- Lifetime or a date range? “Total giving” often really means “giving since we moved to Altru” or “giving in the last five years.” Keep in mind that history from before your conversion only shows up if it was migrated.
- Soft credits and tributes? Decide whether donor-advised fund gifts, matching gifts, or gifts made in someone’s honor should count toward that person’s total.
Write the answers in the query’s description field. Six months from now someone will ask why the board report doesn’t match finance, and that note will answer it.
The usual way to build it: smart fields plus a constituent query
Smart fields are Altru’s way of storing a calculated value on each record, such as a total, a count, or a most-recent date. They get refreshed on a schedule, and you can then use them in queries like any other field. That’s the right tool for “lifetime total” and “last gift,” because calculating those on the fly in a query gets complicated fast.
1. Set up the revenue smart fields
In the smart fields area of administration, create revenue-based smart fields for the values you need. Typically that means one for total amount and one for the most recent gift, which can return either the amount or the date. When you set them up you can usually filter by revenue type, designation, or date range. This is where the decisions above go. Restricting to donations here, for example, keeps admission revenue out of the total.
The available smart field types and filter options vary by Altru version and configuration. If you don’t see a field that returns what you need, check the Altru help documentation or ask Blackbaud support before building workarounds.
2. Process the smart fields
Smart fields hold a value calculated when they were last processed. They don’t update live. Run them once by hand, then put them on a schedule (nightly or weekly is common) so the report doesn’t quietly drift out of date. If a gift entered this morning isn’t showing up, the first thing to check is when the smart field last ran.
3. Build the constituent query
Create a constituent query. For output, add the name fields you want (formal name or addressee usually reads better than first and last as separate columns), then add the smart fields: total giving, last gift amount, last gift date. Add email, address, or constituency if the report is also going to be used for outreach.
For criteria, filter to records where the total giving smart field is greater than zero so non-donors drop out. Add filters for deceased or inactive records too. Sort by total giving, descending.
4. Save, share, and export
Save the query in a shared folder with a clear name, such as “Donors – lifetime total and last gift (donations only).” Anyone with the right permissions can then run it and export the results to Excel or CSV. If you need a formatted, printable version for board packets, you can take the export and format it there.
Check it before anyone relies on it
Pick five donors you know well, including one big giver, one household, and one person who has made a pledge. Compare the query output with their revenue history on the constituent record. If the numbers disagree, the cause is almost always a smart field filter (a revenue type included or left out) or a smart field that hasn’t been processed recently. Fix it now, before the report goes into a board deck.
A shortcut you can try first
Your Altru database may already have revenue summary fields or donor-related reports that get you part of the way, depending on your version and what was set up at implementation. Look through the existing smart fields and saved queries before building new ones. Someone may have already done this, and having two “total giving” fields with different filters makes things more confusing.
Keeping the list current outside Altru
Once the query exists, the ongoing chore is the export: someone runs it, downloads the file, and emails a spreadsheet that’s stale by the next day. If your development team works from Google Sheets or sends appeals through Mailchimp or ActiveCampaign, Data Bridge can sync the results of an Altru query to those tools, so the giving totals you built above stay up to date there without manual exports. The calculations still come from your Altru query and smart fields.
Quick answers
Why doesn’t my total match the finance team’s number?
Usually because of scope. Finance may count all revenue, including tickets and memberships, or they may report on a fiscal year. Compare the filters, not just the totals.
Can I show the largest gift as well as the last one?
Often, yes, using another revenue smart field. Confirm the options in your own database, since what’s available depends on your configuration.



