Track Renewal Notice Response Rates in Altru
← Back to Blog

How to Track Membership Renewal Notice Response Rates in Altru

October 31, 2026

You sent the first renewal letter in January, the second in February, and a lapsed-member email in March. Your board wants to know which of them worked. Renewal revenue for the quarter is easy to find in Altru. Proving that a particular notice caused a particular renewal is harder, and the answer depends on whether you set up the tracking before the notice went out.

This guide covers how to measure renewal notice performance in Altru with the tools most organizations already have: saved lists, appeals or source codes, and membership queries. It also covers where those numbers tend to mislead you.

Decide what “response rate” means before you count anything

Teams often argue about renewal results because they’re counting different things. Pin down three definitions first:

  • The denominator. Who received this notice? Not “everyone expiring in April,” but the specific members who were actually mailed or emailed this wave, after suppressions and bad addresses were removed.
  • The response. A renewal, upgrade, or rejoin on that member’s record. Decide whether a downgrade counts. Most teams count it, but report it separately.
  • The response window. How long after the send date a renewal still counts toward that notice. Thirty days is a common choice for mail and a shorter window for email. Without a window, every renewal in the year gets credited to the first letter.

Write these down and keep them the same from season to season. A response rate that changes definitions every year can’t show a trend.

Set up tracking before each notice goes out

1. Freeze the recipient list

Whatever query or selection you use to pull renewal recipients, save a static copy of who was actually sent the notice on the day it went out. A dynamic query re-run in May will return different people than it did in January, because some will have renewed, moved, or been merged. The frozen list is your denominator. A static selection, an exported list of constituent IDs, or a constituent attribute stamped with the wave name all work. Use whichever your team will actually maintain.

2. Give each wave its own code

Assign a distinct appeal or source code to each notice: first letter, second letter, final email, lapsed outreach. Put that code on the reply device, the web renewal link, and in instructions for whoever processes mailed-in renewals. When the code is captured on the renewal transaction, attribution is direct and you don’t have to infer it from dates.

Altru’s marketing and communications area, including membership renewal efforts, can carry some of this structure for you. How much of the response reporting it does on its own depends on how your efforts and source codes are configured. Test it with a small wave, or ask Blackbaud support what the built-in effort reporting returns for your setup, before you rely on it for a board report.

3. Make the code hard to skip

Codes only help if they get recorded. Web renewals can carry the code automatically through the link. Mailed and phoned-in renewals depend on staff, so make the code a required habit in batch entry and spot-check a few batches each week during renewal season.

Measure the results with a membership query

Once the response window closes, build a membership or revenue query that returns renewal transactions in that window, with constituent ID, transaction date, membership level, amount, and the appeal or source code. Then compare it to the frozen list:

  1. Coded responses: renewals carrying this wave’s code. This is your firmest number.
  2. Uncoded responses from recipients: renewals from people on the frozen list, inside the window, with no code. These probably came from the notice, but report them as “likely” rather than combining them with the coded count.
  3. Response rate: coded plus likely responders, divided by the frozen recipient count.
  4. Revenue per recipient: renewal revenue from responders divided by recipients. This shows when a wave renews fewer people but more of them upgrade.

Run the same steps for each wave. A member who renews after the second letter should count toward the second letter only, so remove earlier responders from later waves’ recipient lists before you compare.

Where the numbers mislead

  • Household and gift renewals. If a spouse or a gift giver pays, the renewal may sit on a different constituent record than the one you mailed. Match on the membership as well as the payer, or you’ll undercount.
  • Duplicate records. A member who renews online under a new email can create a second constituent record. The original record then looks like a non-responder. Clean up duplicates before you calculate results, not after.
  • Auto-renewals and early renewals. Members on automatic renewal, or who renewed before the notice went out, shouldn’t be in the denominator. Suppress them when you build the list.
  • Front-desk renewals. Someone who renews in person during a visit may have been prompted by the letter or by the visit itself. You usually can’t tell which. Report onsite renewals as their own line.

Keep it running all season

The method above works fine as a single report after the season ends. Most membership managers, though, want to watch a wave’s numbers while it’s still active, so they can decide whether to send another email or call the remaining lapsed members. That usually means re-running the query and re-pasting results into a spreadsheet every week, which is the step people stop doing by March.

That repetitive step is what our Data Bridge does. It syncs an Altru query to Google Sheets (or tools like Mailchimp and ActiveCampaign), so a renewal-responses query can update a shared sheet where your response-rate formulas already live. The tracking design above (frozen lists, wave codes, windows) still has to be in place in Altru; Data Bridge saves you from exporting the query every week.

Quick answers

Can I calculate response rates for a notice I already sent without a code?
Partly. If you can reconstruct who was sent the notice, you can count renewals from that group within a reasonable window. Treat the result as an estimate, and add codes before the next wave.

Should email and mail renewals be tracked separately?
Yes, if you send both. Give each channel its own code, even within the same wave, so you can see which channel is producing renewals.

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.