Impact ledger

Every decision and its outcome, in order. Each entry carries a SHA-256 hash of the entry before it, so changing any past entry breaks the chain. This page checks the chain each time it loads.

Synthetic data — no Blackbaud, donor or card data is used.
How the chain works

Each entry’s fields are written in a fixed order. Its hash is SHA-256 of the previous entry’s hash, a line break, and those fields. The first entry starts from 64 zeros. The server hashes the backtest with node:crypto; your browser re-checks it, and hashes its own decisions, with Web Crypto.

Decisions this session

Plans a person approved or rejected in the console. Kept in this browser only.

Verifying chain…

Reading this browser’s ledger…

Backtest ledger · smart policy

Every simulated failed gift in the twelve-month backtest (35,992 entries, seed 20260929), the action the policy took and what happened. Recovered total reconciles with the backtest dashboard ✓ ($1,035,410).

Verifying chain…

Entries

35,992

one per failed gift

Recovered

$1,035,410

21,437 gifts · 59.2% of $1.75M failed

Attempts

50,404

1.40 per failed gift

Attempt fees

$5,040.40

at $0.10 per authorisation attempt

Do-not-retry violations

0

No retries on do-not-retry codes or past the cap ✓

Backtest ledger entries 20101 to 20150 of 35992
#GiftOrganisationDeclineActionAttemptsOutcomeRecoveredFeesHash
20101FG-30331Dec 25Riverbend05Do not honorRetry schedule1Recovered$5$0.1069d5512f…2181
20102FG-30332Jun 26Riverbend02Do not honorRetry schedule3Recovered$5$0.3019e722ea…d02b
20103FG-30333Aug 26Riverbend19Issuer unavailableRetry schedule1Recovered$60$0.10c5d7e95e…c7aa
20104FG-30334Jan 26Riverbend65Insufficient fundsRetry schedule3Recovered$10$0.307472d7f6…9fe0
20105FG-30335Dec 25Northgate33Expired cardDonor outreach1Recovered$70$0.10a237b8ca…2991
20106FG-30336Sep 26Northgate51Insufficient fundsRetry schedule4Recovered$60$0.40861c8511…4f66
20107FG-30337Mar 26Northgate65Insufficient fundsRetry schedule1Recovered$60$0.10ffdd067f…e5d8
20108FG-30338Sep 26Northgate33Expired cardCard updater, then retry1Recovered$60$0.100f547793…4ceb
20109FG-30339Dec 25Riverbend51Insufficient fundsRetry schedule2Stopped—$0.20f22362a5…8e01
20110FG-30340May 26Riverbend91Issuer unavailableRetry schedule1Recovered$5$0.10a23f1c84…866d
20111FG-30341Jul 26Cedar ValleyR09ACH R01 fundsRetry schedule1Recovered$15$0.10d86e42b7…906f
20112FG-30342Mar 26Northgate54Expired cardDonor outreach1Recovered$35$0.10c836c84c…093a
20113FG-30343Oct 25Lumen ArtsR01ACH R01 fundsRetry schedule1Recovered$40$0.108a9ae860…3670
20114FG-30344Mar 26Lumen ArtsR01ACH R01 fundsRetry schedule1Recovered$40$0.10e184631e…de7c
20115FG-30345Jun 26Lumen ArtsR01ACH R01 fundsRetry schedule2Recovered$40$0.208734e361…81f3
20116FG-30346Sep 26Harbor Light51Insufficient fundsRetry schedule1Recovered$50$0.1075c1ad30…70c3
20117FG-30347Dec 25Cedar Valley51Insufficient fundsRetry schedule2Not recovered—$0.2056e79274…1c4b
20118FG-30348Jan 26Cedar Valley05Do not honorRetry schedule2Recovered$20$0.2092d67c18…8ea9
20119FG-30349Mar 26Riverbend61Insufficient fundsRetry schedule2Recovered$45$0.2070a71706…546e
20120FG-30350May 26Riverbend63Suspected fraudDonor outreach0Stopped—$0.00f41c4b71…b1d7
20121FG-30351Jul 26Riverbend51Insufficient fundsRetry schedule2Stopped—$0.2086e9de0f…d1e6
20122FG-30352Mar 26Cedar Valley65Insufficient fundsRetry schedule2Recovered$180$0.2064f87c04…fbec
20123FG-30353Feb 26Cedar Valley54Expired cardDonor outreach0Stopped—$0.00c1e67882…248f
20124FG-30354Feb 26Northgate05Do not honorRetry schedule3Stopped—$0.30475a1f62…de1e
20125FG-30355May 26Northgate54Expired cardDonor outreach1Recovered$100$0.1058825b9b…e301
20126FG-30356Oct 25Northgate54Expired cardDonor outreach1Recovered$60$0.10f31ddd7b…c227
20127FG-30357Oct 25Cedar Valley91Issuer unavailableRetry schedule1Recovered$10$0.10e2a80af0…71ca
20128FG-30358Jul 26Cedar Valley65Insufficient fundsRetry schedule2Recovered$10$0.204c509a53…a079
20129FG-30359May 26Riverbend51Insufficient fundsRetry schedule1Recovered$160$0.1087366fc2…e56c
20130FG-30360Oct 25Riverbend63Suspected fraudDonor outreach0Stopped—$0.005bea0328…8775
20131FG-30361Dec 25Riverbend43Lost or stolenDonor outreach0Stopped—$0.00bbe179b8…0306
20132FG-30362Oct 25Riverbend02Do not honorRetry schedule2Recovered$20$0.20a6f61989…86ad
20133FG-30363Jan 26Riverbend61Insufficient fundsRetry schedule1Recovered$20$0.10a5767714…6325
20134FG-30364Aug 26Riverbend51Insufficient fundsRetry schedule1Recovered$20$0.106d916dd1…7a10
20135FG-30365Sep 26Riverbend62Account closedDonor outreach0Stopped—$0.00b69a234d…8d1f
20136FG-30366Jun 26RiverbendR02ACH R02 closedDonor outreach1Recovered$10$0.108666a902…c49f
20137FG-30367Sep 26RiverbendR09ACH R01 fundsRetry schedule2Recovered$10$0.20eb812570…569c
20138FG-30368Mar 26Riverbend61Insufficient fundsRetry schedule4Recovered$70$0.408c7136c0…7609
20139FG-30369May 26Riverbend05Do not honorRetry schedule1Recovered$70$0.10adfa8e55…9fa2
20140FG-30370Jan 26Northgate02Do not honorRetry schedule4Recovered$50$0.40f4382911…0995
20141FG-30371Apr 26Northgate51Insufficient fundsRetry schedule1Recovered$100$0.104f51497b…3207
20142FG-30372Mar 26RiverbendR03ACH R03 no acctDonor outreach0Stopped—$0.000132e43f…d190
20143FG-30373Dec 25Northgate14Invalid cardDonor outreach0Stopped—$0.00581332b4…d38d
20144FG-30374Feb 26Northgate01Do not honorRetry schedule3Not recovered—$0.301bd8ce37…7152
20145FG-30375Mar 26Northgate51Insufficient fundsRetry schedule2Not recovered—$0.20c5aac02c…5934
20146FG-30376Jun 26Northgate51Insufficient fundsRetry schedule1Recovered$25$0.1061eb1f56…6b62
20147FG-30377Aug 26Northgate62Account closedDonor outreach0Stopped—$0.003748e7e3…d4ce
20148FG-30378Sep 26Riverbend91Issuer unavailableRetry schedule4Recovered$15$0.407feff86c…d277
20149FG-30379Nov 25Riverbend61Insufficient fundsRetry schedule3Stopped—$0.30cbcf7ccc…ea39
20150FG-30380Feb 26Riverbend51Insufficient fundsRetry schedule1Recovered$25$0.10f6ae2d49…a2c4

Outcomes: Recovered — won back within the recovery window. Not recovered — not won back; the monthly gift continues. Stopped — not won back, and the monthly gift lapsed. Head of chain 7377059a…56e0: one hash that commits to every entry.