Using AI to Spot Donors Who Are About to Lapse

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Using AI to Spot Donors Who Are About to Lapse.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Using AI to Spot Donors Who Are About to Lapse.

Export each donor's gift history, then have an AI assistant work out every donor's normal giving rhythm and flag anyone well past their usual next gift, whose regular payment has failed, or whose gifts are shrinking. For most small charities, that rule-based score, checked by a person before anyone is contacted, does the job without a prediction model.

"About to lapse" only means something against each donor's own pattern. A monthly giver whose payment is two weeks late is a more urgent case than an annual giver who is two months past their usual month. Decide in writing what "lapsed" means for your charity before the AI does anything. Common definitions are no gift in 12, 18 or 24 months; pick one and stick to it, or the flags drift every time someone reruns the analysis.

Follow me on Instagram@sagnikteaches

Four kinds of donor, four different warning signs

A single rule ("no gift in nine months") catches annual givers far too early and monthly givers far too late. Split your donors by how they give, then set a flag for each group. The thresholds below are starting points I'd use for a small charity; adjust them once you've seen a few months of results.

Connect on LinkedInSagnik Bhattacharya
Donor typeWhat normal looks likeEarly warning signStarting flag
Monthly regular giverSame amount, same day each monthA failed or missing payment, or a reduced amountAny missed payment; act within a week
Annual or anniversary giverOne gift around the same month each yearNothing arrives in their usual monthDays since last gift above 1.2 times their usual gap
Appeal responder (2-4 gifts a year)Answers the winter and emergency appealsSkips an appeal they answered in each of the last two yearsOne skipped "habit" appeal, or overdue ratio of 1.5
First-time donorOne gift so farNo second gift and no email opens90-120 days with no second gift

First-time donors deserve their own line because the second gift is where most relationships end. They aren't lapsing from a habit; they never formed one. Treat them as a welcome problem (did they hear what their gift did?) rather than a retention problem.

Subscribe on YouTube@codingliquids

Preparing a donor file that's safe to analyse

The analysis needs dates and amounts, not identities. Before anything leaves your CRM, build an export with one row per gift and these columns:

  • donor_id: the ID your CRM already uses. Keep the ID-to-name lookup inside the CRM.
  • gift_date in YYYY-MM-DD format, so nothing can read 03/04 as the wrong month.
  • amount, method (regular or one-off) and appeal_code.
  • regular_status for monthly givers: active, failed, cancelled, paused.
  • last_email_open and events_attended if your email tool and CRM record them.
  • flags: deceased, do-not-contact, legacy pledger, gives through payroll or a company scheme.

Remove names, email addresses, postal addresses and phone numbers. Upload the file only to a business plan that doesn't train on your content (ChatGPT Business, Claude Team or Gemini in a Workspace account), and check that your privacy notice covers using giving history to plan contact. If you're unsure, that's a question for your data-protection adviser before you start, not after. The wider rules are in keeping customer data private when your team uses AI; for donors specifically, the data and trust risks for charities are worth reading first.

Working out each donor's rhythm with AI

The core measure is an overdue ratio: days since the donor's last gift divided by the typical gap between their gifts. A donor who usually gives every 60 days and last gave 120 days ago scores 2.0. Anything over 1.5 is worth a look. You don't need to write the formula yourself; ask the assistant to do it and to show its working, so you can check it.

You are helping a small charity find donors who may be about to stop giving.
The attached CSV has one row per gift: donor_id, gift_date (YYYY-MM-DD),
amount, method (regular/one-off), appeal_code, regular_status, flags.
Today's date is 2026-09-27.

1. Merge gifts from the same donor on the same date into one gift.
2. Exclude donors flagged deceased, do-not-contact or legacy pledger,
   and tell me how many you excluded.
3. For each donor_id calculate: number_of_gifts, last_gift_date,
   median_gap_days (blank if fewer than 3 gifts), days_since_last_gift,
   overdue_ratio = days_since_last_gift / median_gap_days,
   trend = average of last 2 gifts vs average of the 2 before.
4. Put each donor in one group:
   A = regular giver with regular_status failed, or no gift in 40 days
   B = overdue_ratio 1.5 or more
   C = trend down 25% or more
   D = one gift only, more than 90 days ago
5. Show the count per group, 5 sample rows per group, and the code you used.
Do not fill in missing values. List any rows you couldn't parse.

ChatGPT and Claude both run this kind of calculation in code rather than guessing, which is what you want; if the answer comes back with no code or table, ask again and insist on it. (If you've never uploaded a spreadsheet to an assistant, what to upload and what to check applies just as well to gift data.) The reply will look something like this (illustrative):

Excluded: 41 donors (27 deceased, 11 do-not-contact, 3 legacy pledgers).
Group A (regular, failed or missing): 38
Group B (overdue ratio 1.5+): 212
Group C (gifts down 25%+): 96
Group D (single gift, 90+ days): 187
Overlap: 64 donors appear in two groups; I've kept them in the first group listed.

Sample, group B:
donor_id  gifts  last_gift   median_gap  days_since  ratio
D10442    6      2026-02-14  61          225         3.7
D20981    4      2025-11-30  122         301         2.5
...

Now check five donors from each group against the CRM by hand. This is the step people skip, and it's where the errors show up. In one run I'd expect to see at least one of these: a donor whose median gap came out as zero because two gifts were logged on the same day under different appeal codes (step 1 prevents it), or dates imported in the wrong day-month order so a March gift reads as April. Fix the export or the prompt, rerun, and check again. When five in a row look right, trust the rest enough to act.

One pattern fools the overdue ratio even when the data is clean: donors whose gaps are very uneven. Take an illustrative supporter who answers the November appeal and then the December one every year, and gives nothing in between. Their gaps alternate between about 30 and 335 days, so the median of four gaps is roughly 182. By late September, some 280 days after the December gift, their ratio is about 1.5 and they land in group B, even though they're right on course for November. A "we've missed you" note in October would be odd at best. Add a line to the prompt for this: "If a donor's gaps differ by more than 3 to 1, don't use the ratio. Instead flag them only if they missed an appeal they gave to in each of the last two years." That moves them to the appeal-habit rule in the table above, which is where they belong.

First run at a veterinary charity with 2,300 donors

Consider, as an illustration, a charity that runs two low-cost veterinary clinics for pet owners on low incomes. Its CRM holds about 2,300 donors who gave in the last 24 months: 640 monthly givers, around 1,100 people who answer two or three appeals a year, and 560 one-off donors. The fundraising manager works three days a week and has never had time for retention work beyond the annual thank-you letter.

Here's how the first run went, hour by hour:

  1. Export and clean (about 3 hours). Most of the time went on the flags column: the deceased marker lived in a notes field for older records, so a volunteer searched notes for "passed away" and "deceased" before the export. That work matters more than anything the AI does. A cheerful "we've missed you" email to a donor's grieving family is the worst possible outcome of this whole exercise.
  2. Analysis and checks (about 1 hour). The prompt above returned 533 donors across the four groups. Spot checks caught one problem: donors who had switched from cheque to online giving had two CRM records, so the old record looked lapsed. Merging 19 duplicates removed them.
  3. Prioritising (30 minutes). The manager sorted groups A to C by total given in the last two years. The top 60 went to a phone list for two trustees and a long-serving volunteer; everyone else got a tailored email.
  4. Holding some back (5 minutes). A random tenth of groups B to D got no special contact (everyone in group A was contacted, because a donor whose payment has failed should always be told), so that in 90 days the charity could compare the two and see whether the outreach made any difference, rather than taking credit for gifts that would have come anyway.

The failed-payment group needed no persuasion at all. Of the 38, a good share had simply had cards expire. A two-line message with a link to update details is the cheapest retention work a charity will ever do. The sum makes the point: if those 38 gave an average of $10 a month and half of them update their details, that's $190 a month, or $2,280 a year, kept for perhaps two hours of work.

What notes and emails tell you that the numbers can't

Gift dates show that someone is drifting. The reason is usually sitting in the free-text notes: a call log, a returned letter, a complaint. For donors in groups B and C, paste the notes (with names removed) and ask the assistant to sort them:

Below are CRM notes for 96 donors whose gifts have dropped, one block per donor_id.
Label each donor with one main reason from this list:
money pressure / unhappy with contact / moved or changed details /
lost connection to cause / life event / no clear reason.
Quote the words in the note that support the label. If a note mentions
illness, bereavement or hardship, label it "handle personally" and nothing else.

Illustrative output: D30217, unhappy with contact: "asked us to stop phoning, prefers post". D11890, money pressure: "reduced to $5, said things are tight since job change". That second donor shouldn't get a "please give more" appeal; they should get thanks for staying at all. The labels change the message you send, which is the whole point of doing this.

What to send each at-risk group

Outreach to a drifting donor should thank, show what their money did, and make it easy to stay on their terms. It should never guilt them. Ask the assistant for a first draft for each group, then edit it yourself.

Here's the difference editing makes. A typical first draft for group B (illustrative):

Dear Supporter, we've noticed you haven't donated recently. Every gift makes a real difference to the animals we help. Please consider making a donation today so we can continue our vital work.

And the version the manager actually sent:

Thank you for the four gifts you've made since 2023. Between them they paid for most of a day's clinic: 14 vaccinations and two dental checks for pets whose owners couldn't have afforded them. We'd love to keep you with us. If a smaller or less frequent gift suits you better now, you can change it here in under a minute.

The edit removes "we've noticed you haven't donated", which reads as surveillance, and replaces vague impact with the donor's own contribution. Numbers like "14 vaccinations" must come from your records, not from the AI. If you write thank-you letters too, donor thank-you letters with AI that still feel personal covers the same editing habits in more depth.

For group A, send a short, practical message within days: the payment didn't go through, here's the link, thank you. The AI draft usually needs one specific fix. An illustrative first version:

"We're sorry to let you know that your monthly gift of $10 on 3 September was declined due to insufficient funds. Please update your payment details so the animals in our care don't miss out."

The charity doesn't know why the payment failed, and "insufficient funds" is both a guess and an embarrassing one to receive. The second sentence adds guilt the donor did nothing to earn. The version sent read: "Your monthly gift of $10 didn't go through on 3 September. This usually happens when a card expires or is replaced. If you'd like to carry on, you can update your details here in a minute. Thank you for your support since 2024." Check the date and amount against the CRM for each merged record before sending, because a wrong amount in a message about money undoes the goodwill.

For group D, send a "here's what your first gift did" update rather than a second ask. A phone call from a trustee to a top-60 donor can be as simple as "we wanted to say thank you and ask how you'd like to hear from us".

Why a donor can look lapsed when they haven't gone anywhere

Before any list goes out, run it past someone who knows the donors. These are the false alarms I'd look for first:

  • Duplicate records after a change of email, address or payment method.
  • Gifts that arrive through another route: a third-party giving platform, a company matching scheme, payroll giving, or a gift in memory of someone. The donor is still giving; your CRM just doesn't link it.
  • Event fundraisers who raised money once through a sponsored run. They were supporting a friend as much as your cause, and a "we miss you" note lands oddly.
  • Legacy pledgers who have stopped cash gifts because they've told you about a gift in their will. Contact them only through whoever looks after legacy supporters.
  • Deceased donors whose status hasn't been updated. Check again, even after the cleaning step.

Checking the flags were worth it after 90 days

Rerun the same prompt on a fresh export 90 days after the outreach. Compare two numbers for each of groups B to D: the share of contacted donors who gave again, and the share of the held-back tenth who gave again. If, say, 31% of contacted group B donors gave again against 19% of the held-back ones, the outreach earned its time. If the two numbers are close, the flags might be right but the message isn't, so change the message before you change the thresholds.

Keep a one-line log each quarter: date, donors flagged per group, contacted, gave again, held back, gave again. An illustrative log for the veterinary charity after two quarters:

QuarterGroupFlaggedContactedGave againHeld backGave again
Q1A (failed payment)383823nonen/a
Q1B (overdue)19017153194
Q1D (single gift)18716815192
Q2A (failed payment)292918nonen/a
Q2B (overdue)16414844163

Read it group by group, and remember the held-back groups are small, so treat one quarter as a hint rather than proof. Group A has no held-back comparison by design, and doesn't need one: 41 of 67 restarted their gifts after a two-line message. Group B returns about 30% against roughly 20% held back, a real but modest lift. Group D barely moves either way (about 9% against 11%), which suggests the "here's what your first gift did" email isn't changing much, so the next quarter tries a different message rather than dropping the group. After three quarters you'll know which groups respond and can tune the thresholds from your own evidence rather than someone else's rule of thumb.

When a CRM feature or specialist tool is worth paying for

Some donor CRMs build this in. Bloomerang shows an engagement level for each supporter based on their activity, Blackbaud's Raiser's Edge NXT makes recommendations that include supporters at risk of lapsing, and specialist services such as Dataro sell machine-learning models that give every regular giver a churn score between 0 and 1. These use more signals than a spreadsheet can: age of the relationship, contact history, channel, and patterns learned across many donors.

My rule of thumb: with a few thousand donors and one part-time fundraiser, the method above gets you most of the value for the cost of an AI plan you may already have (charity discounts can make it cheaper). With tens of thousands of regular givers, or a team whose time costs more than the software, a built-in score is worth trialling. Either way, the parts that make the difference stay the same: clean flags, a person checking the list, a message that thanks before it asks, and a held-back group so you can see whether any of it worked.

Questions charities ask about lapse flags

How many donors does a charity need before this analysis is worth doing?

Once you have more donors than one person can remember, roughly a few hundred, a spreadsheet method starts paying back. Below that, a monthly glance at who gave last year but not this year does the same job. The method in this tutorial works up to several thousand donors; beyond that, especially with large regular-giving programmes, a CRM feature or specialist prediction tool usually earns its cost.

Can I paste donor names and addresses into ChatGPT or Claude?

Don't. Replace names and contact details with the donor ID your CRM already uses before any file leaves it, and use a business plan that doesn't train on your content. The analysis only needs dates, amounts, payment type and appeal codes. Keeping the ID-to-name lookup inside your CRM means a leaked file reveals giving patterns, not identities.

Do we need to tell donors that we analyse their giving history?

Check your privacy notice. Many charities already say they use giving history to decide how and when to contact supporters, which covers this kind of analysis. If yours doesn't, or if you plan to add outside data such as wealth screening, ask your data-protection adviser before you start. Tell supporters plainly, and honour every opt-out.

What should happen when a regular gift fails because a card expired?

Treat it as the most urgent flag you have, and the easiest to fix. Send a short, warm message within a few days explaining that the payment didn't go through and giving a one-click way to update details. Many of these donors never meant to stop; the gift simply broke. Waiting for the next quarterly review loses them.

Further reads

Sources: Bloomerang nonprofit glossary on lapsed donors; Blackbaud Raiser's Edge NXT product page; Dataro product pages on donor predictions and churn models; OpenAI and Anthropic business plan privacy pages.

Want lapse flags built into your donor routine?

On a 1:1 call we'll look at what your CRM exports, set the thresholds that suit your donors, and decide whether a spreadsheet method or a built-in CRM feature fits your team.

Book a 1:1 call with me