Method · tax year 2023 · built 2026-10-25
How the grant graph is built, and where it fails
Form 990 Schedule I records a grantee's EIN. Form 990-PF Part XV, filed by every private foundation, doesn't. A foundation grant in the public record is a name and a mailing address: a string, not an edge. WHOFUNDS turns those strings into edges, and publishes its miss rate next to them.
Inputs
- 123,403 Form 990-PF returns for tax year 2023, one per foundation (the latest submission when a return was amended), from the GivingTuesday 990 Data Lake's index of IRS e-file XML.
- The IRS Business Master File (all ~1.98 million registered exempt organizations), plus the names each organization files its own returns under (tax years 2022–2024), which fixes cases where the BMF carries a parent system's name.
What gets matched
By grant line
- Matched to a recipient EIN 1,242,857 61.6%
- US organization, no confident match 472,472 23.4%
- Individuals (never shown) 274,512 13.6%
- Outside the US 19,185 1.0%
- Not itemized on the filing 8,565 0.4%
By dollar
- Matched to a recipient EIN $63B 51.4%
- US organization, no confident match $15.8B 12.9%
- Individuals (never shown) $30.3B 24.7%
- Outside the US $6.67B 5.4%
- Not itemized on the filing $6.94B 5.7%
The two numbers differ, and quoting only the flattering one is how this field fools itself. The largest out-of-scope dollars are pharmaceutical patient-assistance foundations, whose payees are individual patients, and international grantmakers, whose payees have no US EIN. A US-EIN resolver can't resolve those in principle, so they're counted apart from genuine misses. Future-year commitments (Part XV line 3b) are parsed but excluded from every total: 51,042 lines, $20.9B.
How each match was found
| Strategy | Edges | Share | Meaning |
|---|---|---|---|
| Same address | 799,193 | 64.3% | Filed street or PO box and ZIP match the IRS record exactly. |
| Same ZIP | 132,237 | 10.6% | Same 5-digit ZIP code; name matched closely. |
| Same city | 103,899 | 8.4% | Same city and state; name matched very closely. |
| Exact name | 101,288 | 8.1% | Exact, nationally unique name; address on the filing did not match. |
| Same street | 59,585 | 4.8% | Same house number and street in the same ZIP; suite or unit differ. |
| Known alias | 45,722 | 3.7% | Filed name is a documented common name for this organization. |
| Distinctive name | 751 | 0.1% | Near-exact distinctive name, nationally unique; address did not match. |
| EIN on filing | 182 | 0.0% | The foundation wrote this organization's EIN on the grant line itself. |
Every candidate gets an IDF-weighted name similarity that tolerates one-letter typos, plurals and split words ("Music Works" vs "MusicWorks"). Acronyms are checked against initials. A match is accepted only above a threshold that rises as address evidence weakens, and only with a lead over the runner-up EIN that grows as the name match gets weaker. When unsure, the line is recorded as unmatched instead of guessed.
| Which name matched | Edges | Share |
|---|---|---|
| IRS Business Master File name | 1,145,133 | 92.1% |
| Name on the organization's own e-filed return | 50,558 | 4.1% |
| Curated alias (pipeline/aliases.csv) | 45,722 | 3.7% |
| Part of a BMF name (e.g. before a dash) | 1,262 | 0.1% |
| EIN the foundation wrote on the grant line | 182 | 0.0% |
Rules that cost recall on purpose
- An organization isn't its foundation. “Oakland University” and “Oakland University Foundation” share a campus and most of a name, but they file different returns. If one side carries FOUNDATION, FRIENDS, ALUMNI, AUXILIARY, BOOSTERS, PTA, ACTION, VOTES and the like and the other doesn't, the pair is vetoed.
- Numbers must agree. PTA 12 isn't PTA 21. Post 123 isn't Post 132.
- A shared address isn't enough. A campus can host a dozen organizations. A weak name match at a shared address needs a large margin over every other organization at that address.
- A national name match needs a distinctive, nationally unique name. It also needs either the same state or a large national organization behind it.
- Duplicate names defer to the dominant entity. When dozens of BMF records share a name (a university and the trusts it administers), the one with at least ten times the revenue stands for the name.
Privacy
Part XV can name individuals: scholarship students, patients, people in hardship. WHOFUNDS never publishes them. Payees filed as persons lose their name and street address at extraction. Lines that name a person inside a business-name field (“Jane Doe - Dean College”, “Curry College FBO …”) are classified as individual and dropped. An unmatched payee name is shown only when no part of it could be a person's name. Purposes that identify a beneficiary are withheld. Foundation contact persons and officers aren't republished.
The query that couldn't be run before
Largest recipients of private-foundation money
| Received | Funders | Organization | EIN |
|---|---|---|---|
| $6.71B | 2 | Gates Foundation | 56-2618866 |
| $738M | 1 | Adam R Scripps Foundation | 85-4241768 |
| $625M | 201 | Donor Advised Charitable Giving | 31-1640316 |
| $496M | 351 | Fidelity Investments Charitable Gift Fund | 11-0303001 |
| $483M | 181 | National Philanthropic Trust | 23-7825575 |
| $476M | 270 | Johns Hopkins University | 52-0595110 |
| $446M | 560 | The Board of Trustees of the Leland Stanford Junior University | 94-1156365 |
| $358M | 1 | Wk Kellogg Foundation | 38-1359264 |
| $341M | 831 | President and Fellows of Harvard College | 04-2103580 |
| $301M | 75 | American Online Giving Foundation | 81-0739440 |
| $267M | 150 | Rockefeller Philanthropy Advisors | 13-3615533 |
| $241M | 192 | New Venture Fund | 20-5806345 |
| $229M | 120 | United States Fund for UNICEF | 13-1760110 |
| $221M | 176 | University of California San Francisco Foundation | 94-2829914 |
| $201M | 107 | Vanguard Charitable Endowment Program | 23-2888152 |
Fiscal sponsors and donor-advised-fund sponsors rank high because they're pass-throughs. The edge into them is real. The edge out of them isn't on any 990-PF, which is a structural limit of this record, not of this implementation.
Most widely funded, by number of distinct foundations
| Funders | Received | Organization | EIN |
|---|---|---|---|
| 2,566 | $48.1M | St Jude Children's Research Hospital | 62-0646012 |
| 2,434 | $79.9M | American National Red Cross & Its Constituent Chapters and Branches | 53-0196605 |
| 2,370 | $51M | Medecins Sans Frontieres USA | 13-3433452 |
| 2,079 | $40.9M | American Cancer Society | 13-1788491 |
| 1,588 | $22.3M | Alzheimer's Disease & Related Disorders Association | 13-3039601 |
| 1,583 | $81.5M | American Heart Association | 13-5613797 |
| 1,285 | $14.6M | Stephen Siller Tunnel to Towers Foundation | 02-0554654 |
| 1,261 | $110M | The Nature Conservancy | 53-0242652 |
| 1,107 | $30.3M | The Salvation Army a Georgia Corporation | 58-0660607 |
| 1,099 | $31.5M | World Central Kitchen | 27-3521132 |
| 1,076 | $6.61M | Wounded Warrior Project | 20-2370934 |
| 1,008 | $20.3M | Blood Cancer United | 13-5644916 |
| 988 | $24.1M | Shriners Hospitals for Children | 36-2193608 |
| 969 | $17.1M | The Salvation Army | 13-5562351 |
| 918 | $27.9M | Anti-Defamation League | 13-1818723 |
Largest grantmakers, and how much of each is resolvable
| Paid | Matched | Foundation | EIN |
|---|---|---|---|
| $6.71B | 100.0% | Bill & Melinda Gates Foundation Trust | 91-1663695 |
| $6.23B | 41.3% | Bill & Melinda Gates Foundation | 56-2618866 |
| $4.39B | 0.0% | Bristol-Myers Squibb Patient Assistance Foundation | 22-3622487 |
| $3.53B | 0.0% | Genentech Patient Foundation | 46-0500266 |
| $2.97B | 0.0% | Sanofi Cares North America | 43-1614543 |
| $2.87B | 0.0% | Novartis Patient Assistance Foundation | 26-2502555 |
| $2.3B | 0.0% | Johnson & Johnson Patient Assistance Foundation | 31-1520982 |
| $2.04B | 0.0% | Pfizer Patient Assistance Foundation | 26-1437283 |
| $1.95B | 0.0% | Merck Patient Assistance Program | 01-0575520 |
| $1.53B | 87.5% | Lilly Endowment | 35-0868122 |
| $1.29B | 0.0% | Boehringer Ingelheim Cares Foundation | 31-1810072 |
| $1.01B | 90.6% | The Bloomberg Family Foundation | 20-5602483 |
| $915M | 0.0% | Bayer US Patient Assistance Foundation | 90-0918808 |
| $882M | 0.0% | GlaxoSmithKline Patient Access Programs Foundation | 20-0031992 |
| $759M | 48.1% | Foundation to Promote Open Society | 26-3753801 |
Where the resolver still refuses
These are published so someone else can fix them. Most are national organizations with many legally separate local EINs, or common names that appear with an address matching none of them. Help resolve them.
| Lines | Dollars | Name as filed (normalized) | State |
|---|---|---|---|
| 364 | $86.5K | PTA UTAH CONGRESS | UT |
| 336 | $5.3M | HABITAT FOR HUMANITY | GA |
| 323 | $7.4M | JEWISH NATIONAL FUND | NY |
| 297 | $4.09M | SALVATION ARMY | VA |
| 291 | $66.8M | UNIVERSITY OF TEXAS AT AUSTIN | TX |
| 244 | $20.1M | PENNSYLVANIA STATE UNIVERSITY | PA |
| 232 | $10.4M | UNICEF USA | NY |
| 231 | $12.3M | MD ANDERSON CANCER CENTER | TX |
| 222 | $6.86M | UNICEF | NY |
| 206 | $10.7M | OHIO STATE UNIVERSITY | OH |
| 189 | $47.8K | PTA CALIFORNIA CONGRESS OF PARENTS TEACHERS AND STUDENTS | CA |
| 188 | $19.2M | UNIVERSITY OF VIRGINIA | VA |
| 181 | $42.5K | PTA TEXAS CONGRESS | TX |
| 179 | $11M | HABITAT FOR HUMANITY INTERNATIONAL | GA |
| 167 | $7.3M | UNIVERSITY OF WISCONSIN MADISON | WI |
Known limits
- Part XV names a payee, not always a legal entity. Filers write a school within a university, a program name or a fiscal sponsor. Where no registered entity was named, no correct match exists.
- One tax year is one snapshot. Foundations file on staggered fiscal years, so a 2023 cross-section spans about eighteen months of period-end dates.
- The BMF lists only currently registered organizations. Grantees that have since dissolved, merged or lost exemption can't be matched.
- Government payees aren't in the BMF. Public school districts, cities and many public universities are therefore usually unmatched.
- The source is degrading. In September 2025 comments to the IRS, fourteen organizations and scholars reported thousands of 990 and 990-PF filings with missing or partial grants data in the XML. A grant that never reaches the XML can't be recovered by any method.
Why facts and not ratings
Effectiveness standards for philanthropy keep failing at the same step: they need the measured party to submit something. The grant graph needs nothing from anyone, because the IRS already compels the filing. So this ledger carries filed facts and their provenance, and no verdicts. Scores, rankings and recommendations are worth arguing about, which is exactly why they shouldn't live in the ledger.
Re-derive it yourself
python3 pipeline/sources.py download --year 2023 # IRS BMF + data lake indexes python3 pipeline/extract_pf_grants.py data/work/pf_index_2023.csv 300000 data/work/run/pf_grants.csv.gz python3 pipeline/resolve_eins.py data/work/run/pf_grants.csv.gz data/work/run/pf_grants_resolved.csv.gz python3 pipeline/build_site.py data/work/run --year 2023
Both inputs are free and public with no API key, deliberately so. The one complete commercial grant dataset is sold under a licence that forbids redistribution and machine learning.