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 6001 to 6050 of 35992
#GiftOrganisationDeclineActionAttemptsOutcomeRecoveredFeesHash
6001FG-16231Jul 26Cedar Valley33Expired cardDonor outreach0Stopped—$0.00e1f33545…4670
6002FG-16232Jan 26Cedar Valley65Insufficient fundsRetry schedule2Stopped—$0.209444fe8d…87e2
6003FG-16233Oct 25Lumen Arts01Do not honorRetry schedule3Not recovered—$0.30be4f9e76…e4d2
6004FG-16234Nov 25Lumen Arts62Account closedDonor outreach0Stopped—$0.00155386fe…53f2
6005FG-16235Dec 25Lumen Arts54Expired cardDonor outreach0Stopped—$0.00d393f2be…0577
6006FG-16236May 26Lumen Arts51Insufficient fundsRetry schedule1Recovered$140$0.10a7b774eb…541f
6007FG-16237Feb 26Lumen Arts54Expired cardCard updater, then retry2Recovered$40$0.2047a009ba…a9e5
6008FG-16238Feb 26Riverbend91Issuer unavailableRetry schedule3Stopped—$0.30e1617864…2113
6009FG-16239Jun 26Riverbend65Insufficient fundsRetry schedule1Recovered$45$0.103cfb17c3…d1d1
6010FG-16240Apr 26Northgate51Insufficient fundsRetry schedule2Recovered$130$0.202dd50df6…d422
6011FG-16241Apr 26Riverbend54Expired cardCard updater, then retry1Recovered$80$0.10be1106f1…668b
6012FG-16242Jun 26Riverbend51Insufficient fundsRetry schedule2Recovered$80$0.20ddbe3e9d…fc24
6013FG-16243Nov 25Harbor Light05Do not honorRetry schedule2Recovered$30$0.20384c8766…41ee
6014FG-16244Aug 26NorthgateR01ACH R01 fundsRetry schedule1Stopped—$0.10cd6de164…4ffb
6015FG-16245May 26Cedar ValleyR02ACH R02 closedDonor outreach0Stopped—$0.002a7688b7…1589
6016FG-16246Sep 26Cedar ValleyR09ACH R01 fundsRetry schedule1Recovered$40$0.109e7c41aa…6af1
6017FG-16247Sep 26Cedar Valley59Suspected fraudDonor outreach0Not recovered—$0.000f6048e6…fd0d
6018FG-16248Jul 26Riverbend63Suspected fraudDonor outreach0Stopped—$0.0004b107c7…046c
6019FG-16249Mar 26Cedar Valley05Do not honorRetry schedule3Recovered$70$0.308d3ac7a5…343d
6020FG-16250Apr 26Cedar Valley65Insufficient fundsRetry schedule1Recovered$70$0.10286ff895…fc80
6021FG-16251Jan 26Harbor Light61Insufficient fundsRetry schedule4Recovered$40$0.4021b5d074…627c
6022FG-16252Mar 26Harbor Light63Suspected fraudDonor outreach1Recovered$40$0.108fbbac6b…9ab8
6023FG-16253Jul 26Harbor Light65Insufficient fundsRetry schedule3Stopped—$0.308fa84983…b2ad
6024FG-16254Jan 26Riverbend51Insufficient fundsRetry schedule1Recovered$35$0.10199d5632…c18c
6025FG-16255Oct 25Harbor Light05Do not honorRetry schedule1Recovered$160$0.10ac5e6ada…1a82
6026FG-16256Mar 26Harbor Light33Expired cardDonor outreach0Stopped—$0.005e5d8f60…3adc
6027FG-16257Aug 26Harbor Light54Expired cardCard updater, then retry1Recovered$160$0.1039bf5f5a…04f7
6028FG-16258Dec 25Harbor Light65Insufficient fundsRetry schedule3Stopped—$0.3004d827e9…819a
6029FG-16259Apr 26Harbor Light51Insufficient fundsRetry schedule3Stopped—$0.3094ef0a0c…1730
6030FG-16260Mar 26Riverbend05Do not honorRetry schedule4Recovered$40$0.40f584c2fb…a92e
6031FG-16261Oct 25Lumen Arts51Insufficient fundsRetry schedule2Not recovered—$0.20f0e9b37b…1d5c
6032FG-16262Nov 25Lumen Arts61Insufficient fundsRetry schedule2Recovered$45$0.206c4f8ce2…e15b
6033FG-16263Apr 26Lumen Arts51Insufficient fundsRetry schedule1Recovered$45$0.10d6e80393…8c5d
6034FG-16264Aug 26Riverbend91Issuer unavailableRetry schedule1Recovered$15$0.1045e552fb…c143
6035FG-16265Nov 25Riverbend54Expired cardCard updater, then retry1Recovered$35$0.1093ab5912…67b8
6036FG-16266Mar 26Riverbend33Expired cardDonor outreach0Stopped—$0.0048920138…7bb5
6037FG-16267Apr 26Harbor Light51Insufficient fundsRetry schedule2Recovered$50$0.209da67b3e…3516
6038FG-16268Dec 25NorthgateR01ACH R01 fundsRetry schedule1Recovered$45$0.10ca011a1c…bd0b
6039FG-16269Mar 26NorthgateR09ACH R01 fundsRetry schedule2Recovered$45$0.2019786707…272a
6040FG-16270Jun 26Riverbend96Issuer unavailableRetry schedule1Recovered$30$0.10e1e2b9b1…28d2
6041FG-16271May 26Riverbend01Do not honorRetry schedule2Recovered$5$0.20373593c4…cda5
6042FG-16272Sep 26Riverbend05Do not honorRetry schedule1Recovered$5$0.10cd09f806…8d2d
6043FG-16273May 26Riverbend05Do not honorRetry schedule3Stopped—$0.305ec6e0ad…81f2
6044FG-16274Jun 26Riverbend51Insufficient fundsRetry schedule3Not recovered—$0.301beaae4b…d4d7
6045FG-16275Aug 26Riverbend54Expired cardCard updater, then retry1Recovered$25$0.10dac407f6…004a
6046FG-16276Sep 26Cedar ValleyR03ACH R03 no acctDonor outreach0Stopped—$0.0058e24380…4eac
6047FG-16277Nov 25Northgate54Expired cardDonor outreach0Stopped—$0.008d4a3b00…a78e
6048FG-16278Jan 26Northgate05Do not honorRetry schedule3Not recovered—$0.30fd81ff5d…52cb
6049FG-16279Feb 26Northgate54Expired cardCard updater, then retry1Recovered$20$0.10041d355d…6f06
6050FG-16280Mar 26Northgate61Insufficient fundsRetry schedule1Recovered$20$0.10edd8ed44…a7dc

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.