Skip to main content Link Menu Expand (external link) Document Search Copy Copied

US based nonprofits must file IRS 990 tax forms, even though they may not pay taxes. ProPublica’s Nonprofit Explorer makes it simple to report on annual tax-reported income, expenses, and more for US based foundations, giving us a reliable way to compare finances for some organizations.

Basic Tax Data: ProPublica 990 JSONs

Data is stored per US recognized 501C* nonprofit as a single ein.json file in _data/p990. We store this data for convenience, and in case ProPublica’s datastore ends. These 990 JSON data files are generated by ProPublica based on official IRS data dumps of actual processed tax filings. Data includes IRS-defined metadata about a nonprofit in the organization object, and then a list of actual 990 tax filings. Full details are in ProPublica’s API reference.

990 filings provide a consistent way to see total revenue, expenses, and assets for any US nonprofit. They also provide some level of detail within those numbers, in terms of amount of contributions (voluntary donations) versus program expenses or other types of income.

990 Data Notes

  • Time Lag Nonprofits often file taxes late; it also takes a long time for the IRS to publish them, and then ProPublica or other aggregators to parse and quantify them.
  • Data Errors I have seen a few figures in ProPublica’s rolled-up organization object that were wrong, likely due to scanning or importing errors in their process.
  • Categorization We need to create a guide showing exactly what 990 field values mean in FOSS Foundation contexts. “Contributions, gifts, grants, and similar amounts received” is a fairly clear number that can be (almost) compared between 990 and 990-EZ forms. But it’s not always clear to a reader what “Program Service Revenue” means for the typical foundation.
  • US Only Making direct comparisons from 990 forms to other country tax (or similar) forms will be challenging.


Current Tooling

  • foundation_reporter reads foundation records for EINs, then finds and caches ProPublica 990 JSONs.

Data is typically output as .json into the _data/p990 directory. Note that Jekyll doesn’t always like subdirectories that start with digits.

Roadmap / Contributions Wanted

ProPublica’s JSON only shows a subset of 990 filings, and rarely has data bugs (i.e. numbers scanned wrong). There are many other ways to programmatically scan 990 forms; the best (coming soon!) toolset seems to be the Giving Tuesday 990 Infrastructure Project.

  • Build charting/reporting by year/org for key finances.
  • Linting and error checking.
  • Explore IRSx and other all-990-data parsing tools.
  • Automation to update 990s from ProPublica (or wherever) periodically, to find when orgs file new tax years.
  • Build visualizations of contributions vs. sponsorship model income; especially comparing c3 to c6 orgs.

Charitable Tax Lookups By Country

  • EU wide
  • UK Detailed reports available
  • BE Fairly detailed reports available
  • NL Various reports available for a fee
  • DE or - includes various downloads, but no obvious finances
  • AT Searches cost a fee

Notes on some EU Charities

Eclipse Foundation 0760.624.114 Includes official list of directors “legal functions” also finds Eclipse basic record table#toonfctie tr, then three tds = director/principal officer title, name, date

Eclipse bank record link: Includes links to download detailed finances, in French; offers PDF, CSV, or XBRL format downloads

Eclipse Foundation Europe Gmbh 0804.570.458