๐Ÿงพ 501(c) Foundation Tracker

IRS 990-PF ยท Grant Networks ยท Transparency

Overview

The 501(c) Tracker is an open-source tool that parses IRS Form 990-PF filings from the IRS bulk data archive and loads them into a graph database (Memgraph) for analysis. It surfaces who is funding whom, how foundation assets change over time, and which networks of organizations share common funders.

What It Tracks

  • Private Foundation Financials โ€” assets, contributions, payout ratios, and expense breakdowns from 990-PF returns
  • Grant Networks โ€” who gave to whom, how much, and for what stated purpose
  • Co-funding Patterns โ€” which funders share recipients, revealing influence clusters
  • Sector Analysis โ€” aggregated asset trends by NTEE code (education, health, civic, etc.)

Sample Data (2023 Example Filing)

Sample Grants โ€” Example Foundation (EIN 12-3456789)
Tax Year Recipient City, State Amount Purpose
2023 Community Empowerment Network Chicago, IL $150,000 Voter education initiative
2023 Youth Civic Alliance Atlanta, GA $100,000 Civic leadership training
2023 Access to Democracy Phoenix, AZ $80,000 Community outreach and research
Sample Financials โ€” Example Foundation
Tax Year Total Revenue Program Services Mgmt & General Fundraising
2023 $2,500,000 $1,700,000 $300,000 $200,000

Data Pipeline

  1. Download โ€” IRS 990-PF XML filings from the AWS S3 public dataset or IRS bulk download
  2. Parse โ€” Extract financials and grant schedules from each XML filing
  3. Enrich โ€” Match EINs against the IRS Business Master File (BMF) for NTEE codes and organization names
  4. Load โ€” Insert Foundation, PFReturn, and Recipient nodes + FILED/GRANT edges into Memgraph
  5. Visualize โ€” Streamlit dashboard with bar charts, line charts, and a pyvis co-funding network graph

Access the Full Dashboard

The interactive dashboard requires a running Memgraph instance with IRS data loaded. To run it locally:

# 1. Start Memgraph (Docker)
docker run -p 7687:7687 -p 7690:7690 memgraph/memgraph

# 2. Install dependencies
pip install streamlit pandas gqlalchemy pyvis

# 3. Run the ETL pipeline
python src/cli.py --xml-dir samples/

# 4. Launch the dashboard
streamlit run app.py

Full source code and documentation: github.com/civicresilience/501c-tracker