← Hearth
Hearth Scoring Updated May 18, 2026

Heat

Annual giving rate normalized to your org's ceiling. Measures lifetime relationship value, not just this year.


Heat measures how valuable a contact’s giving has been over the full length of the relationship, expressed as a percentage of your organization’s top-of-portfolio benchmark. A contact who gives at your ceiling every year scores 100. A contact who has given modestly over many years might score 15 — not worthless, just not a major gift prospect.

Formula

years      = (today − first_gift_date) / 365.25
annualRate = lifetime_giving / years
heat       = ROUND(MIN(100,
  annualRate / maxAnnualRate × 100))

maxAnnualRate is set in the Config tab. It should reflect the annual giving rate of your strongest donor relationship — the ceiling against which everyone else is measured.

Setting maxAnnualRate

This is the most important configuration decision in Hearth. Set it too low and everyone clusters near 100. Set it too high and most contacts score in single digits.

A reasonable starting point: look at your top 5 donors by total lifetime giving, calculate their average annual rate, and set maxAnnualRate to that number. Adjust after your first run.

What it tells you

  • Heat = 80–100: Major gift territory. This contact gives at a rate close to your best relationships.
  • Heat = 40–79: Mid-level. Consistent, meaningful givers worth personal cultivation.
  • Heat < 40: Lower-level giving rate. Broad acquisition and stewardship, not major gift outreach.

Why it’s different from lifetime giving

Two contacts can have identical lifetime giving totals but very different Heat scores if one gave it all over 2 years and the other over 20. Heat rewards sustained, high-rate giving — not just large lump sums.

Edge cases

If first_gift_date is missing or in the future, Heat returns 0. If years computes to ≤ 0 (gift date is today), Heat returns 0. If maxAnnualRate is 0 or negative, Heat returns 0.