Data quality
How good is the funding graph?
How much of the funding graph is connected, where those connections come from, and how often our matching is right. Every figure here is computed from the same published data the API serves, so you can check them yourself. How the matching itself works is on the matching page.
19,815,119
grants
FY2017–2026, $1.82 trillion
210,881
grantmakers
every US filer that itemized a grant
955,465
US organizations resolved
1,016,588 more recipient names not linked to a US organization
What is actually connected
A grant joins the graph when we can attach its recipient to a specific organization. We show rows and dollars separately because unresolved grants tend to be small ones, so the row share understates how much money is connected.
76.0%
of grants link to a US organization
15,052,279 of 19,815,119
80.7%
of dollars link to a US organization
$1.47 trillion of $1.82 trillion
A grant with no recipient EIN is still published — the amount, the recipient name and the funder are all there. What is missing is the link to a US organization, so it does not appear in the EIN-keyed graph. Foreign NGOs, governments and individuals have no US EIN at all; those are clustered separately into entities with their own pages, rather than left as loose text.
What could be connected, at best
Some of these grants name a recipient that has no US nonprofit EIN to find: a person, an overseas body, or a line where the filer wrote a cross-reference instead of a name. Those cannot be connected by us or by anyone working from these filings. The figures below split the rest into what is already connected and what is reachable but not yet reached.
Grants19,815,119 total
Connected76.0% · 15,052,279No US EIN exists to find1.2% · 235,820Reachable, not yet reached22.9% · 4,527,020
Dollars$1.82 trillion total
Connected80.7% · $1.47 trillionNo US EIN exists to find6.1% · $110.2bnReachable, not yet reached13.2% · $240.1bn
76.9%
of the reachable grants are connected
the reachable maximum is 98.8% of all rows, not 100%
85.9%
of the reachable dollars are connected
6.1% of all grant dollars name a recipient with no US EIN
The cap follows from what the IRS collects, so it applies to every dataset built from these filings. A coverage figure quoted without its denominator is not comparable to this one: it may be counting a different universe, or claiming recipients that cannot be identified from the source. We publish the denominator so the comparison is possible at all, and we set the boundary against ourselves, counting a grant as unreachable only where the filing shows why. Every grant row without a recipient EIN is classified by the FIRST reason it cannot be keyed, against the same candidate index the resolver uses. A row is counted against the structural cap only where the filing itself shows why it is unresolvable; anything merely ambiguous is counted as reachable, so the achievement rate is a floor rather than a flattering estimate.
Every reason a grant is not connected
Name matches no registered organizationreachable
3,852,777 grants · $222.5bn · 13 schools, 3 churches
The name matches no organization in the IRS Business Master File or the e-filing universe, in any state. Part of this is permanent: churches need never apply for recognition (IRC 508(c)(1)(A)) and many government bodies appear in no exempt-organization file, so no public identifier exists to find. The rest is ours — an organization registered under a legal name no funder uses. Counted as reachable because we cannot yet tell the two apart.
Name is registered, but in another statereachable
519,646 grants · $11.2bn · 53 churches, 31 schools
The name is registered, but in a different state from the one the funder wrote down.
Recipient is outside the USno EIN to find
160,533 grants · $40.7bn · 5 schools, 4 churches
The recipient is outside the US and has no US nonprofit EIN.
Several organizations share the name in that statereachable
128,472 grants · $4.9bn · 7 churches
Several registered organizations share this exact name in this state and the filing gives nothing that separates them. We decline rather than pick the likeliest.
No recipient named in the filingno EIN to find
45,209 grants · $67.6bn
The filing names no recipient — the field holds a cross-reference or a placeholder, so there is no organization to identify.
Recipient name too short to identifyno EIN to find
30,065 grants · $1.8bn · 10 schools
The recipient name is too short to identify an organization by.
No recipient state on the grant linereachable
14,517 grants · $683m · 2 churches, 2 schools
The grant line carries no recipient state, so the state-keyed rules cannot run.
Declined despite a unique candidatereachable
11,608 grants · $818m
A unique candidate exists and we did not take it — a self-funding exclusion, a do-not-map EIN, or a defect. Should be near zero.
Recipient is a person, not an organizationno EIN to find
13 grants · $39m
The recipient is a person or a class of people. Individuals have no EIN.
Kind labels (church / school / government) come from name patterns and are indicative only — they describe a band, they never decide one. Form 990-PF asks filers to state each recipient's foundation status directly; carrying that field into the warehouse would replace this inference with the filer's own answer. Separately, 3 grants (0.0% of all rows) name what reads as a church or a government body that appears in no register. Those are almost certainly unreachable as well, but estimated from names rather than shown by the filing, so it is left out of the figures above.
How much of this did we work out ourselves?
990 filers give the recipient’s EIN on Schedule I. 990-PF filers, private foundations and most of the corpus, give a name and address and no EIN, so those connections are ones we worked out. That is why the accuracy figures below matter.
| Origin | Grants | Share |
|---|
| Stated by the filer (990 Schedule I) | 6,235,659 | 31.5% |
| Matched by us: unique name within the recipient's state | 7,100,622 | 35.8% |
| Matched by us: the name other funders file for this EIN | 797,520 | 4.0% |
| Matched by us: one EIN takes almost every grant filed under this name | 298,432 | 1.5% |
| Matched by us: a calibrated model ranked the candidates and cleared its threshold | 187,555 | 0.9% |
| Matched by us: near-identical name, with nothing else in contention | 163,229 | 0.8% |
| Matched by us: the recipient's address matched a registered organization | 138,937 | 0.7% |
| Matched by us: name ambiguous, resolved by ZIP | 116,453 | 0.6% |
| Corrected by us: the filer's EIN was a typo we could resolve with confidence | 13,872 | 0.1% |
| Left unresolved: no confident match | 4,762,840 | 24.0% |
Recorded per grant at parse time, so this split is exact.
How often is our matching right?
Filers who do supply an EIN give us an answer key. We hide it, run the same matching rules, and compare what comes back.
These figures score two of the eight passes above: the unique-name rule and the ZIP tie-break. They are the oldest and most conservative, and they are the only two the harness re-runs, so the reach below does not move when a newer pass adds coverage. Read them as the accuracy of that part of the matching, not of all of it.
97.3%
precision, on the two rules it scores
of the 304,340 matches those rules ventured across 500,000 held-out grants, the share that hit the EIN the filer stated
76.9%
of addressable grants are linked
the resolver's actual reach, measured on the whole corpus rather than a sample, every pass included
What this does not cover. The registry, model, fuzzy and address passes resolved 1,599,545 grants that this measurement never scores , 18.1% of everything we matched ourselves. They are the newer and less conservative passes, so they are the ones a sceptical reader would most want measured. Extending the harness to re-run every pass is outstanding work, and until it lands the figures above describe 81.9% of our matching.
Precision on its own is easy to inflate, since a matcher that rarely answers can be right almost every time. Reach and the declined share are here so you can see both. Where a name is ambiguous we leave it unresolved rather than picking the most likely match. That lowers coverage on purpose.
Caveat. Ground truth comes from 990 Schedule I, whose recipients skew larger and more formally registered than the 990-PF recipients the resolver actually runs on. Treat this as an estimate on a related population; the true figure on 990-PF names is likely lower.
Every layer that infers something
The figures above cover one step: attaching a grant to a US organization. Several other layers do their own matching, and each one moves the numbers you see elsewhere on the site. Each reports what it attempted, what it resolved, and what it declined, plus which way it fails, because the consequences are not the same. A layer that merges too eagerly invents connections; one that merges too cautiously just splits a thing in two.
Directors → the same person across filings24.2%
1,363,090 of 5,637,320 resolved · 4,274,230 declined · errs toward false links
How. Tight canonical name key — given (nickname-expanded) + middle + surname, suffixes stripped. Corporate trustees are excluded from person dedup. 'Resolved' means names appearing at more than one organization, i.e. candidate interlocks — not a claim that each is one person. Same-state matches are geo-corroborated; cross-state ones are the likeliest false links. The loose surname+initial key is kept only to quantify what this avoids.
990-PF grant lines → US organization64.9%
8,802,748 of 13,565,588 resolved · 4,762,840 declined · errs toward missing links
How. unique normalised name within the recipient's state; then a ZIP tie-break, then a street+ZIP tie-break, for names that are ambiguous in that state; then, where the ZIP already agrees exactly, a typo tolerance of 1 edits on names of at least 12 characters; then, for names no rule above matched at all, the recipient ADDRESS as a key — an exact state+ZIP+street whose organisation also filed a name within 2 edits of the one written; then a registry of (name, state) → EIN pairs learned from what other funders filed on Schedule I, requiring at least 2 independent funders to agree 990-PF grant lines carry a name and address but no EIN. Ambiguous names are left unresolved rather than assigned to the likeliest candidate; EINs known to over-collapse the graph are excluded outright; and recipients with no US EIN at all — foreign bodies, individuals, unregistered churches — are counted in the denominator but cannot be resolved by anyone. An inferred match is then withdrawn if the grant dwarfs the recipient's largest reported year, which is a size the organisation could not have received.
Investment positions → issuer type100.0%
4,285 of 4,285 resolved · 0 declined · errs toward missing links
How. LLM classification of the position description as filed, against a fixed label set, cached per distinct string. 990-PF Part II lists holdings as free text with no identifier. A position the model will not label confidently is left unclassified rather than guessed, so asset-mix figures describe the classified subset.
Non-EIN recipients → entity80.7%
61,945 of 76,749 resolved · 14,804 declined · errs toward missing links
How. within one country, names sharing a normalised form or near-identical by Jaro-Winkler are merged; the largest clusters are LLM-reviewed Foreign NGOs, governments and individuals have no US EIN. 'Resolved' counts distinct entities, so a rate below 100% means variants merged. Deliberately under-merged: MSF and Doctors Without Borders stay apart without a curated alias, so an entity is a lower bound on an organisation.
Grant purpose text → a place (by dollars)7.6%
$103.8bn of $1.36 trillion resolved · $1.26 trillion declined · errs toward missing links
How. Scan the purpose line for an unambiguous US state name, DC, or a curated set of unambiguous major cities; the largest unresolved out-of-area buckets are escalated to an LLM tier. Measured in dollars, not rows. A purpose line naming no place at all — a project name, a program, a person — stays unresolved rather than being attributed to the recipient's address, which is the conflation this layer exists to separate.
State checkbook payees → a US nonprofit1.0%
37,257 of 3,704,433 resolved · 3,667,176 declined · errs toward missing links
How. BMF name+state match on the payee string as the state publishes it Read the denominator before the rate: a state checkbook lists EVERY payee — contractors, utilities, individuals, other agencies — and the BMF match IS the nonprofit filter, so most non-matches were never nonprofits. This is the share of all payees that turned out to be a nonprofit we hold, not the share of nonprofits we found. State checkbooks publish a payee name and nothing else — no EIN, often no address. Coverage varies by state because the name formats do. An unmatched payee is dropped, so state totals per org are a floor.
Federal award dollars → a US nonprofit (by dollars)48.7%
$898.1bn of $1.84 trillion resolved · $945.5bn declined · errs toward missing links
How. The recipient's UEI against the resolve cache; then its registered name, normalized, against the IRS Business Master File and the 990 e-filers: unique within state; the central organization where the IRS affiliation code separates it from same-named subordinates; unique within ZIP; unique within state once a governance wrapper (Trustees of, Regents of) is stripped from both sides; unique in the country; a unique street address with the name as a check. The last three fire only when the organization's own filed revenue could carry the dollars. The same recipients, weighted by what they were obligated. Read beside the count: the two disagree whenever the unmatched are the largest recipients, which is what an unweighted rate hides.
Federal award recipients → a US nonprofit74.0%
160,852 of 217,406 resolved · 56,554 declined · errs toward missing links
How. The recipient's UEI against the resolve cache; then its registered name, normalized, against the IRS Business Master File and the 990 e-filers: unique within state; the central organization where the IRS affiliation code separates it from same-named subordinates; unique within ZIP; unique within state once a governance wrapper (Trustees of, Regents of) is stripped from both sides; unique in the country; a unique street address with the name as a check. The last three fire only when the organization's own filed revenue could carry the dollars. The denominator is recipients whose SAM registration flags them as a nonprofit, tax-exempt entity, private university or hospital. Companies and government bodies in the extract are not counted, and the flag is loose enough that a state agency can carry it, so treat the rate as a floor. An ambiguous name is declined unless the IRS's own affiliation codes say which same-named entry is the central organization; a group return is never a target. Most of what remains unmatched is state universities, national-laboratory operators and agencies, which file no 990 and so have nothing here to match. Per-org totals are a floor.
Coverage by fiscal year
Recent fiscal years are still filling up. The IRS releases e-file data 12-24 months after the activity, so the latest years are floors that rise with each monthly release, not final totals.
FY20171,372,27673%
FY20181,483,75073%
FY20191,700,22574%
FY20202,696,19177%
FY20212,772,65576%
FY20222,888,50277%
FY20232,947,60378%
FY20242,587,52277%partial
FY20251,354,93776%partial
FY202611,45854%partial
Bars are grant counts; the right-hand figure is the share with a resolved recipient. Grey bars are fiscal years still arriving, so treat them as floors rather than totals.
Check it yourself
The grant data behind these figures is queryable through the API: a free key covers the grant endpoints, and analytical SQL (POST /api/v1/sql) comes with the paid tiers. The resolver measurements are the exception: precision is scored against held-out filer-supplied EINs, which the API does not expose as a separate set, so those figures are ours to justify rather than yours to recompute. The methodology explains how the filings become rows in the first place.
Measured 2026-08-25 against IRS Form 990, 990-EZ and 990-PF e-file filings (public domain). Recomputed on every universe refresh.