US Nonprofit Financials
Every US tax-exempt organisation's core financials in one tidy table - total revenue, expenses, assets, liabilities, net assets, contributions & grants, program-service revenue and investment income - keyed by EIN and tax year, with the org's name, state, NTEE code and IRC subsection attached. The IRS makes this public but the usable form is buried: the clean route is the Statistics of Income (SOI) Annual Extracts (one tabular CSV per year per form), NOT the ~1.5M-filing raw 990 XML corpus - but the three form types (990, 990-EZ, 990-PF) each ship a DIFFERENT column schema, the money fields are space-padded strings, the EZ zip is renamed between years, and none of the extracts carry the org name/state/classification (those live in a separate file, the Exempt Organizations Business Master File). We map all three forms onto ONE common financial schema, join the EO BMF for identity, and drop the in-care-of person and street-address fields. Cleaning IS the product. Six recent processing years (2019-2024). Public domain (U.S. IRS).
- Source
- IRS990
- Licence
- Redistributable open data
- Quality
- QC clean · 0 failures
- Format
- Apache Parquet + dictionary
Safe to train on
Built only from a named, redistributable official source under a documented open licence - not scraped web data. No copyright grey zone, no personal data. Ships machine-readable Croissant metadata (ML Commons - loads in Hugging Face / Kaggle / Google), an AI training-licence manifest documenting source, licence and provenance for your model's data governance, and a machine-readable data dictionary (drop it into an agent / RAG prompt so the model knows every column) - all inspectable before you buy.
What's included
- Every US nonprofit's financials - 3.3M filings, 990 + 990-EZ + 990-PF, 2018-2024 tax years
- One common schema across all three form types: revenue, expenses, assets, liabilities, net assets, contributions & grants, program-service revenue, investment income
- Org name, city, state, NTEE code, IRC 501(c) subsection & ruling year joined from the EO BMF
- Money fields parsed from space-padded strings to real USD; keyed by EIN x tax period x form
- The clean SOI-extract route, not the 1.5M-file raw 990 XML corpus - the tedious join, done
- Org-level financial facts only - in-care-of person & street address dropped, no personal data
- Public domain (U.S. IRS, 17 U.S.C. 105) - free commercial reuse & resale; cleaned/derived
- Source: U.S. Internal Revenue Service - SOI Tax-Exempt Org financial extracts + EO BMF
Schema
| Column | Type | Description | Filled | Distinct |
|---|---|---|---|---|
| ein | str | Employer Identification Number, 9-digit zero-padded (with tax_period+form_type, the PK) | 100.0% | 775,862 |
| org_name | str | Organisation legal name (from the EO BMF; null if no longer in the current BMF) | 94.7% | 647,891 |
| city | str | Organisation city (EO BMF) | 94.7% | 17,254 |
| state | str | US state / territory, 2-letter (EO BMF) | 94.6% | 60 |
| ntee_code | str | National Taxonomy of Exempt Entities classification code (EO BMF) | 68.1% | 4,731 |
| subsection_code | str | IRC 501(c) subsection code (e.g. 03 = 501(c)(3)); extract, BMF fallback | 100.0% | 27 |
| ruling_year | int | Year the IRS granted tax-exempt ruling (EO BMF) | 93.9% | 126 |
| tax_year | int | Tax year (calendar year of the tax period end) | 100.0% | 25 |
| tax_period | str | Tax period end, YYYYMM (part of the PK) | 100.0% | 213 |
| form_type | str | Return type: 990, 990EZ or 990PF (part of the PK) | 100.0% | 3 |
| total_revenue | float | Total revenue, USD | 100.0% | 1,359,185 |
| total_expenses | float | Total expenses (functional/per-books), USD | 100.0% | 1,288,479 |
| total_assets | float | Total assets, end of year, USD | 100.0% | 1,709,121 |
| total_liabilities | float | Total liabilities, end of year, USD | 100.0% | 756,722 |
| net_assets | float | Net assets / fund balances, end of year, USD | 100.0% | 1,691,618 |
| contributions_grants | float | Contributions, gifts & grants received, USD | 100.0% | 890,509 |
| program_service_revenue | float | Program-service revenue, USD (null for 990-PF) | 83.0% | 775,328 |
| investment_income | float | Investment income, USD (null for 990-PF) | 83.0% | 265,355 |
Sample & preview
Every purchase ships as Apache Parquet with a data dictionary and the full QC report. A free sample (first rows + schema) is downloadable here - confirm fit before you buy. Source: IRS990 (redistributable open data; attribution passes through - see our Licence).
Don't trust screenshots - drop the sample into your notebook right now.
import pandas as pd df = pd.read_parquet("us-nonprofit-financials_sample.parquet") df.info() # typed columns, gap-aware, ready to join⬇ Download free Parquet sample or CSV for Excel
Related datasets
Commitments of Traders (COT) Historical Archive
Weekly CFTC Commitments of Traders positioning across every futures market - open interest, commercial (hedger) and non-commercial (speculator) long/short, in contracts. The raw CFTC drops are messy flat files; this is one clean, continuous, per-market Parquet.
COT Extreme Crowding Alerts Database
Every instance where speculators reached an extreme in a futures market - net-positioning z-score beyond ±2 vs its 3-year baseline. The crowded-trade reversal watchlist, pre-filtered from the full COT history so you don't have to compute it.
CFTC Disaggregated COT
The CFTC Disaggregated Commitments of Traders report - the trader-category breakdown professionals actually buy COT for. Weekly long and short positions for Producer/Merchant (hedgers), Swap Dealers, Managed Money (CTAs/funds) and Other Reportables across every physical-commodity futures market (energy, metals, grains, softs), plus total open interest, in contracts. The raw CFTC drops are messy flat files; this is one clean, continuous, per-market Parquet back to the report's 2006 inception.