Donor scoring that runs in your browser.
How to use Hearth
- Prepare your CSV Export contacts from your CRM. The only required column is
key_id. Addlifetime_giving,first_gift_date,last_gift_date, andlast_gift_amountfor full scoring. Event history and email engagement columns are optional but improve accuracy. - Drop it in Drag your CSV onto the calculator or click Upload. Multiple files can be merged — drop donors first, then events, then CRM exports.
- Map columns if prompted If your export uses non-standard headers, the column mapper opens. Nine common fields auto-detect; anything ambiguous defaults to "— ignore —" until you assign it.
- Tune the config Optional.
maxAnnualRatedefaults work for most orgs — adjust it if your major gift threshold is unusually high or low. - Run Results appear instantly, sorted by quadrant. No data leaves your browser.
- Act on the flags
▲▲ ALL SENDS— prime engagement targets.$ ASK— ready for a direct ask.⚙ MANUAL— needs human review before outreach. - Export Download a scored CSV for your team. Bring it back in later to compare against a fresh pull — Hearth will show you what moved.
Need a custom integration, have a question about the scoring model, or want to talk about your org's data? I'm one email away.
Drop CSV files here
Donor records · Event logs · Hearth exports — any combination
↳ Paste CSV text instead
Drop at least one donor record file to begin.
Data never leaves this tab — no server, no requests until you register.
No PII is stored — your data never leaves this tab.
RELATED CONSTELLATIONS
Hearth Scoring 6
- Burn Mailing pressure score. Sends accumulate it; clicks, opens, and time drain it. No ceiling.→
- Recovery Gift recency window. Spikes on donation receipt, decays daily. High recovery suppresses ask sends.→
- Velocity This-year giving as a percentage of lifetime total. Measures how alive the relationship is right now.→
- Heat Annual giving rate normalized to your org's ceiling. Measures lifetime relationship value, not just this year.→
- Quadrant 2×2 grid placing every contact by Velocity (y) and Heat (x). The primary segmentation output.→
- Source Code The actual scoring functions. No abstraction, no build step. Read it in the Source tab or here.→