Better.AI - Numbers behind recommendations
Every recommendation Better.AI raises is arithmetic over your own records. No opinion, no model guessing: a nightly pass counts what is in your account, compares it to a set of thresholds, and writes a card for anything that crosses one. This article is the reference for those thresholds. It says what each of the 28 checks looks for, what number it uses, which three of those numbers you maintain yourself, and how the score on a suggested action is worked out.
For the shorter version of what the checks do, read What recommendations look for. This one is the numbers.
The two numbers on a suggested action
A row in Today's Suggested Actions shows one number, its score, and opens to show the four terms behind it. Two of those terms confuse people the first time, so here they are in full.
Severity is dollars, not a mark out of 100
Severity is what the check says is at stake, expressed in dollars wherever it can be. That is deliberate. It is what lets a $40,000 lapsed donor outrank a soft engagement signal without anyone having to reorder the list by hand every morning. It is also why the figure looks large: it is money, not a percentage.
Some checks weight that money by how bad the situation has become, and the weighting sits inside severity rather than beside it. Three worth knowing:
| CHECK | SEVERITY IS | SO A CARD CAN READ |
|---|---|---|
| Gift not acknowledged | The gift amount, plainly | 5,000 |
| Major donor lapse | Lifetime giving, multiplied by years since their last gift, capped at 3 times | 120,000 ($40,000 lifetime, gone 2 years) |
| Second gift window | The first gift, multiplied by 1 to 2 as the window closes | 480 ($250 first gift, 3 weeks left) |
A recurring gift is valued at a year of it, because a lapsed monthly donor takes every future month with them. Where a check has no dollar figure available at all, severity falls back to points, and those cards sit lower for it.
The score is severity, adjusted three ways
score = severity x opportunity x urgency x staleness
The three multipliers are small on purpose. They reorder rows within a band. They are not allowed to lift a minor finding above a large one.
| TERM | RANGE | WHERE IT COMES FROM |
|---|---|---|
| Opportunity | 0.75 to 1.25 | The opportunity score already on the contact record. No score on file means this term is 1.0. |
| Urgency | 1.0 to 2.0 | Days left in a closing window: 2.0 inside a week, 1.6 inside two, 1.3 inside a month, 1.0 beyond that. No deadline means 1.0. |
| Staleness | 1.0 to 1.5 | Days since anyone was in touch, capped at six months. Past that, more silence stops meaning anything. |
So a $2,500 gift sitting unthanked, on a contact scoring 78 for opportunity, with 180 days of silence behind it, works out at 2,500 x 1.14 x 1.0 x 1.5, which is 4,275. Click why this rank on any row and you get exactly that breakdown, with the value of each term and where it came from.
What you can change
Three settings are yours, on the Better.AI panel behind the gear icon. They are the three that decide whether the rest of the numbers are any use to you, because they are the ones that differ most from one organization to the next. Everything else in the tables below is a platform default that holds for every account.
| SETTING | DEFAULT | WHAT IT DOES |
|---|---|---|
| Which checks run | All 28 on | Switch off any check that is not how your team works. A check that is off finds nothing and costs nothing. This is the setting to reach for when a check is technically right and practically noise, which is usually the acknowledgment one. |
| Major gift level | $1,000 | Lifetime giving at or above this makes a donor major. One number for your whole account, used by the major donor lapse check. This is the single most important number on the page: "major donor" means something different at a $500,000 organization than at a $50 million one, and the default is wrong for most accounts in one direction or the other. |
| Cards a night | 5 | How many findings become cards each night, taken as the most severe across every check. Raise it if your team works through the queue and wants more of it; leave it if five is already more than gets actioned. |
Changes apply to that night's check. Switching a check off takes effect immediately: its existing cards stay on the board until they age out or you dismiss them, and no new ones are found.
The acknowledgment minimum, currently $250, is the other threshold that varies with the size of a typical gift, and it is not on that screen yet. Email support@betterunite.com and we will set it for your account.
Values outside a setting's allowed range are pulled back to the nearest end of it rather than rejected, so a mistyped number produces a conservative check rather than an account whose recommendations quietly stop. For any other threshold below, tell us what is not working and we will look at whether the default is wrong for everybody rather than only for you. That is usually the more useful conversation.
Donors, gifts and pledges
| CHECK | WHAT HAS TO BE TRUE | THE NUMBERS IT USES | SEVERITY |
|---|---|---|---|
Major donor lapsemajor_donor_lapse |
Lifetime giving at or above your major gift level, and no gift inside the lapse window. | Major gift level $1,000, yours to set (0 to 10,000,000)lapse_months 15 months (3 to 120) |
Lifetime giving, weighted by years gone, to 3 times |
Second gift windowsecond_gift_window |
Exactly one gift on record, at or above the minimum, made inside the window. | window_days 90 days (14 to 365)min_first_gift $25 (0 to 100,000) |
First gift, rising as the window closes |
Gift not acknowledgedacknowledgment_gap |
A gift still marked not acknowledged, above the minimum, older than the overdue point and younger than the cutoff. Refunds and split payments are skipped. | min_amount $250, yours to set (0 to 1,000,000)overdue_days 7 days (1 to 365)max_age_days 90 days (14 to 730) |
The gift amount |
Upgrade candidateupgrade_candidate |
Gives often, averages small, and has given recently. | min_gifts 4 gifts (2 to 100)max_average_gift $250 (1 to 100,000)recent_months 18 months (1 to 120) |
Room between their average and your ceiling, times their gift count, to 12 |
Giving less than they used togift_downgrade |
Latest gift falls this far below their own prior average. | drop_percent 40% (10 to 90)min_prior_gifts 3 gifts (2 to 50)min_prior_average $100 (0 to 1,000,000)window_months 12 months (1 to 60) |
The size of the drop |
Gives at this time every yeargiving_anniversary |
Gifts in the same calendar month across several different years, that month is approaching, and nothing has come in yet this year. | min_years 3 years (2 to 20)lead_days 30 days (0 to 120)min_average $100 (0 to 1,000,000) |
Their average gift in that month |
Giving well below capacitycapacity_gap |
Wealth screening shows a high composite score and a much larger gift made elsewhere than anything given here. | min_capacity_score 70 points (0 to 100)gap_multiple 4 times (2 to 100)min_gift_elsewhere $5,000 (0 to 10,000,000) |
The gap, capped at $250,000 |
High-opportunity contact going untouchedportfolio_neglect |
Opportunity score above your floor and no logged activity for this long. | score_floor 60 points (0 to 100)silent_days 90 days (7 to 730) |
Lifetime giving, scaled by their opportunity score |
Pledge slippingpledge_slippage |
An open pledge with money still to come, past its end date or silent this long. | silent_days 60 days (7 to 730)min_outstanding $100 (0 to 10,000,000) |
The amount outstanding |
Two records for the same personduplicate_contacts |
Contacts sharing an email address, with giving history split between them. | min_combined_giving $100 (0 to 1,000,000) |
Their combined giving |
Revenue concentrated in few donorsdonor_concentration |
Your largest donors account for more than this share of recent giving. | top_donor_count 10 donors (3 to 100)concentration_percent 50% (10 to 95)window_months 12 months (3 to 60) |
Giving above the concentration line |
Prospect stalled in a stagepipeline_stalled |
An open pipeline contact has not moved stage in this long. | stale_days 90 days (14 to 730)min_amount $0 (0 to 10,000,000) |
Opportunity amount, weighted by the stage's probability |
Recurring gifts and memberships
| CHECK | WHAT HAS TO BE TRUE | THE NUMBERS IT USES | SEVERITY |
|---|---|---|---|
Recurring gift at riskrecurring_at_risk |
A recurring gift has stopped billing, or its next payment is this far overdue. | overdue_days 7 days (1 to 180)min_amount $0 per cycle (0 to 1,000,000) |
A year of the gift |
Recurring gift card expiringcard_expiring |
The card behind an active recurring gift expires inside the warning window. | warn_days 45 days (7 to 180)min_amount $0 per cycle (0 to 1,000,000) |
A year of the gift |
Recurring gift ended with no follow-uprecurring_cancelled_silent |
A recurring gift was canceled or failed recently and nothing has been logged with that donor since. | since_days 120 days (14 to 730)settle_days 7 days (0 to 90)min_amount $10 per cycle (0 to 1,000,000) |
A year of the gift |
Membership expiringmembership_expiring |
A subscription term ends inside the warning window and has not been renewed. Kept on the board through the grace period. | warn_days 45 days (7 to 180)grace_days 30 days (0 to 365) |
The term amount, times years held |
Events and peer-to-peer
| CHECK | WHAT HAS TO BE TRUE | THE NUMBERS IT USES | SEVERITY |
|---|---|---|---|
Event pacing behind last timeevent_pacing |
An upcoming event has fewer registrations than its matching previous event had at the same number of days out. | days_out_max 90 days (7 to 365)days_out_min 7 days (0 to 60)behind_percent 20% (5 to 90) |
The revenue shortfall, weighted by how close the event is |
Last year's attendees have not registeredattendee_non_return |
People who came to the matching previous event have not registered for this one. | days_out_max 60 days (7 to 365)min_missing 10 people (1 to 10,000) |
Missing people, times what an attendee was worth last time |
Event guest never followed upattendee_never_solicited |
Attended an event, has never given, and nothing has been logged since the event settled. | since_days 365 days (30 to 1,825)settle_days 30 days (0 to 365) |
Their opportunity score, in points |
Fundraiser has raised nothing yetp2p_fundraiser_stalled |
Registered to fundraise for a live campaign, past the settling period, with no donations taken. | settle_days 14 days (1 to 180)within_days 120 days (7 to 365) |
Their own giving history |
Volunteers
| CHECK | WHAT HAS TO BE TRUE | THE NUMBERS IT USES | SEVERITY |
|---|---|---|---|
Volunteer shift short of peoplevolunteer_shift_unstaffed |
A shift is coming up with this much of it still unfilled, and time left to recruit. | days_out_max 21 days (2 to 120)days_out_min 1 day (0 to 14)short_percent 25% (5 to 100) |
Places unfilled, weighted by how close the shift is |
Regular volunteer has stoppedvolunteer_lapsed |
Served this many times, and not since. | min_shifts 4 shifts (2 to 50)silent_days 180 days (30 to 1,095)lookback_days 1,095 days (180 to 3,650) |
Hours they have given |
Committed volunteer who has never givenvolunteer_never_asked |
Substantial hours served, still active, and no gift on record. | min_hours 20 hours (2 to 500)lookback_days 730 days (90 to 3,650)active_days 270 days (30 to 1,095) |
Hours they have given |
Volunteer hours waiting to be sorted outvolunteer_hours_unreviewed |
Time entries flagged for review or never checked out, sitting this long, this many on one campaign. | stale_days 7 days (1 to 90)min_entries 5 entries (1 to 100) |
The number of stuck entries |
Grants
| CHECK | WHAT HAS TO BE TRUE | THE NUMBERS IT USES | SEVERITY |
|---|---|---|---|
Grant deadline approachinggrant_deadline_approaching |
A letter of intent, proposal or submission deadline is inside the warning window and nothing has been submitted. Kept on the board briefly after a missed date. | warn_days 30 days (3 to 180)overdue_days 7 days (0 to 90) |
The amount at stake |
Grant submitted with no answergrant_awaiting_decision |
Submitted this long ago with no decision recorded. | silent_days 120 days (30 to 730) |
The amount applied for |
Grant report duegrant_report_due |
A reporting milestone on an awarded grant is due inside the window and still open. | warn_days 30 days (3 to 180)overdue_days 60 days (0 to 365) |
The amount awarded |
Awarded grant with money outstandinggrant_funds_not_received |
Funds expected date has passed with less received than awarded. | overdue_days 30 days (0 to 365)min_outstanding $100 (1 to 100,000) |
The shortfall |
How "not acknowledged" is decided
This one catches people out, so it is worth stating plainly. The acknowledgment check reads the Acknowledged flag on the gift and nothing else. That flag is set when somebody marks the gift acknowledged in the donations list, and it is the only thing that sets it.
In particular, none of these change the flag:
- The checkout confirmation or receipt email the donor gets automatically.
- Generating or sending a donor statement or a thank-you letter.
- An email sent to that donor from a campaign or an email blast.
So if your thank-you process happens outside the donations list, the check will flag gifts you have in fact thanked. Three ways to make it useful instead:
- Mark gifts acknowledged as part of your thank-you routine, which is what the flag is for and what makes the check accurate.
- Raise
min_amountso it only speaks up about the gifts where a personal thank-you is expected. Ask support for now; this is the one threshold on its way to the settings screen. - Switch the check off on the Better.AI settings panel, if the flag is not something your team maintains. This is the case that switch exists for.
Why you are not seeing all of these
The checks run over your whole account every night, but not everything found is put on the board. Four limits, in the order they apply:
- Each check caps its own findings before ranking, usually at 50.
- The night keeps the most severe. Everything found across all 28 checks is ranked by severity and the top few are written as cards. The default is 5 a night, and it is yours to change on the Better.AI settings panel, up to 20. A bigger database gets better-selected cards, not more of them.
- A card stays live for a week. A problem that persists is the same card tonight as last night, so it is kept rather than rewritten. Once you action or dismiss it, it does not come back.
- Plan limits apply to the writing, not the finding. On the monthly sample, five cards a month get a written sentence and Today shows your top three actions with the count of what is ranked below. The figures behind every card are there either way. The Better.AI add-on lifts both.
If a card you expected is missing and none of that explains it, a threshold is usually the answer, and the two most likely are the two you can set yourself. An account whose typical major gift is $10,000 will find the $1,000 default flags far more donors than anyone can call. An account whose gifts average $40 will find the $250 acknowledgment floor flags almost nothing. Set both to your own figures before concluding a check does not work.