Donor Retention Sankey Diagram: Editable Template

Show how last year's donors by gift tier were retained, upgraded, downgraded or lost, and how new and returning donors rebuild the base. Editable template, invented figures.

A donor retention Sankey tracks people, not money: who gave last year, what happened to their giving, and which tier each donor sits in this year.

The example charity had 1,500 donors last year in four tiers, from small to major. Each tier splits into retained at the same level, upgraded, downgraded or lapsed, while donors who did not give last year arrive as new or reactivated. The outcomes then feed this year's tiers.

The columns are ordered so the diagram has no loops: last year's tier, then the outcome, then this year's tier. Counting donors rather than gift value is deliberate and the unit is donors; a major donor and a small donor are one each. The counts are invented. For where the money goes once it is given see /sankey/grant-funding-flow and /sankey/department-budget-allocation.

How to read this diagram

  • 444 of last year's 1,500 donors lapsed, so retention is 70.4%.
  • Small donors lapse most: 300 of 800 (37.5%) against 4 of 40 (10%) for major donors.
  • 350 new and reactivated donors replace only part of the loss, so the base shrinks from 1,500 to 1,406 donors.
  • 186 donors changed tier (110 up, 76 down), so upgrades outnumber downgrades by 34.
  • The regular tier is the same size, 500, both years, but only 300 of those are the same people.

The data behind it

Invented donor counts for one fictional charity and year. Not data about any real organisation. Gift value is not shown.

Donor Retention Sankey Diagram: Editable Template (donors)
FromToAmount (donors)
Major (last year)Retained, same tier30
Major (last year)Downgraded6
Major (last year)Lapsed4
Mid-level (last year)Retained, same tier100
Mid-level (last year)Upgraded10
Mid-level (last year)Downgraded20
Mid-level (last year)Lapsed30
Regular (last year)Retained, same tier300
Regular (last year)Upgraded40
Regular (last year)Downgraded50
Regular (last year)Lapsed110
Small (last year)Retained, same tier440
Small (last year)Upgraded60
Small (last year)Lapsed300
Did not give last yearNew donors250
Did not give last yearReactivated100
Retained, same tierMajor (this year)30
Retained, same tierMid-level (this year)100
Retained, same tierRegular (this year)300
Retained, same tierSmall (this year)440
UpgradedMajor (this year)10
UpgradedMid-level (this year)40
UpgradedRegular (this year)60
DowngradedMid-level (this year)6
DowngradedRegular (this year)20
DowngradedSmall (this year)50
New donorsMid-level (this year)10
New donorsRegular (this year)90
New donorsSmall (this year)150
ReactivatedRegular (this year)30
ReactivatedSmall (this year)70

The same data as CSV

source,target,value
Major (last year),"Retained, same tier",30
Major (last year),Downgraded,6
Major (last year),Lapsed,4
Mid-level (last year),"Retained, same tier",100
Mid-level (last year),Upgraded,10
Mid-level (last year),Downgraded,20
Mid-level (last year),Lapsed,30
Regular (last year),"Retained, same tier",300
Regular (last year),Upgraded,40
Regular (last year),Downgraded,50
Regular (last year),Lapsed,110
Small (last year),"Retained, same tier",440
Small (last year),Upgraded,60
Small (last year),Lapsed,300
Did not give last year,New donors,250
Did not give last year,Reactivated,100
"Retained, same tier",Major (this year),30
"Retained, same tier",Mid-level (this year),100
"Retained, same tier",Regular (this year),300
"Retained, same tier",Small (this year),440
Upgraded,Major (this year),10
Upgraded,Mid-level (this year),40
Upgraded,Regular (this year),60
Downgraded,Mid-level (this year),6
Downgraded,Regular (this year),20
Downgraded,Small (this year),50
New donors,Mid-level (this year),10
New donors,Regular (this year),90
New donors,Small (this year),150
Reactivated,Regular (this year),30
Reactivated,Small (this year),70

How it works

  1. Define the tiers

    Set gift-size bands and use the same ones for last year and this year.

  2. Classify every last-year donor

    Send each last-year tier to retained, upgraded, downgraded or lapsed. Put people who did not give last year into new or reactivated.

  3. Place outcomes into this year's tiers

    Send each outcome to the tiers donors now sit in. A downgraded donor cannot land above their old tier.

  4. Check the balance

    Each outcome node should send out as many donors as it receives, apart from lapsed, which ends.

Frequently asked questions

Why is there no loop from this year back to last year?

A Sankey flows one way. Keep last year's tiers on the left and this year's on the right as separate nodes, so people move forward through an outcome step.

Can I use gift amounts instead of counts?

You can change the unit to a currency and enter totals, but keep one unit per diagram. Counts of donors and amounts of money answer different questions, so make two charts.

Edit this donor Sankey

Open the template as your own chart and enter your tiers, outcomes and donor counts.

Edit this donor Sankey

More in Sankey diagrams