🚀 Live demo: fed-grants-explorer-paul.streamlit.app
A focused dashboard for exploring federal grant data — built for grants teams, program officers, and analysts who want to ask specific questions without navigating USAspending's full query interface.
USAspending.gov is the canonical source for U.S. federal spending data, but it's built for power users running broad queries. Nonprofit grants teams, federal program officers, and grants consultants often want to answer narrower questions — "where does this agency's grant money actually flow?" or "what does this recipient's federal funding history look like?" — without wading through a complex multi-screen query interface.
Drawing on my experience in federal grants management at the U.S. Department of Health and Human Services, this project puts focused, audience-specific views on top of USAspending's data. It's not trying to replace USAspending — it's trying to be the right tool when you have a specific question.
The dashboard answers two questions:
📊 By Agency: "For agency X in fiscal year Y, where does the grant money go?" Pick any federal agency and fiscal year to see total awarded, the largest individual grants, and the breakdown across sub-agencies.
🏢 By Recipient: "What is this organization's federal funding history?" Enter a recipient name (full or partial) and a range of fiscal years to see total funding, the breakdown across awarding agencies, and the full list of individual grants. Fuzzy matching means University of California catches every UC campus; American Red Cross catches all their federal lines.
Both views share the same data-cleaning layer — including a function that auto-detects and flips USAspending's quirky inverted naming format (e.g., HEALTH CARE SERVICES, CALIFORNIA DEPARTMENT OF → CALIFORNIA DEPARTMENT OF HEALTH CARE SERVICES).
Built entirely on free public APIs — no authentication, no API keys, no costs.
- Python 3.12 with
uvfor dependency management requestswith retries and exponential backoff for resilient HTTP calls to the USAspending APIpandasfor tabular data handlingstreamlitfor the interactive dashboardplotlyfor charts- Deployed on Streamlit Community Cloud
Prerequisites: Python 3.12+, uv, Git.
git clone https://github.com/taxmanp/fed-grants-explorer.git
cd fed-grants-explorer
uv sync
# Run the command-line version:
uv run python main.py
# Or launch the dashboard locally:
uv run streamlit run app.py- Fetch federal grant data from USAspending API
- Clean up USAspending's inverted recipient name format
- Format dollar amounts as readable currency
- Sub-agency breakdown using pandas groupby
- Interactive Streamlit dashboard with sidebar filters
- Deploy to Streamlit Community Cloud
- Resilient HTTP layer with retries + graceful error handling
- Recipient lookup: see all federal awards for a single recipient across agencies and years
- Auto-surfaced insights: detect funding concentration patterns and explain them in plain English (next up)
- Multi-year time series: track an agency's grant trajectory across fiscal years
- State + congressional district views: geographic breakdowns with map visualization
- CFDA / Assistance Listing program breakdowns
- Unit tests for the data-cleaning functions
- USAspending API documentation
- 2 CFR Part 200 — Uniform Guidance for federal grants
- DATA Act of 2014 — the law that makes this data public
Built by Paul Rodriguez — finance and analytics professional with a background in federal grants management, Big Four tax, and international finance consulting. LinkedIn · GitHub

