v1 panel-review draft · last updated 2026-05-01
Methodology
How StateSubsidies.com finds programs, decides what counts, verifies sources, and publishes corrections. This page is permanent. Linkable by section: every heading is a fragment URL.
What we are
StateSubsidies.com is an independent directory of public funding programs available to people, households, students, farmers, nonprofits, schools, governments, and businesses in the United States. We are not a government website, not affiliated with any federal or state agency, and not compensated by any program we list.
The directory is operated by StateSubsidies.com (operating entity TBD), Mailing address pending — see contact email. Questions, corrections, and press: corrections@statesubsidies.com. Our methodology is public and versioned at https://github.com/jaredisaacs22/state-subsidies.
What we promise (and don't)
We will show you every public program for which you plausibly qualify, across every state, agency, and level of government, updated on a cadence we publish (see Sources), with source links, free forever.
We will not hide a program from you because of commercial interest; we do not take commercial interest. We will not guarantee you get the money — no responsible source can. We do guarantee we won't hide a program from you.
Sources
The directory is currently composed of 617 active programs ingested from the sources below. Live ingest cadence per source is published transparently; programs out of date past their deadline are auto-marked closed.
Most-recent successful scrape: 2026-05-01.
| Source | Active programs |
|---|---|
| state_scraper | 467 |
| grants_gov_api | 65 |
| city_scraper | 22 |
| federal_usda_scraper | 14 |
| carb_scraper | 7 |
| federal_sba_scraper | 7 |
| federal_doe_scraper | 6 |
| federal_irs_scraper | 5 |
| federal_scraper | 3 |
| federal_epa_scraper | 3 |
| utility_scraper | 2 |
| federal_hud_scraper | 2 |
| federal_dot_scraper | 2 |
| federal_hhs_scraper | 1 |
| federal_cdfi_scraper | 1 |
| federal_fema_scraper | 1 |
| federal_treasury_scraper | 1 |
| federal_ntia_scraper | 1 |
| federal_nsf_scraper | 1 |
| federal_eda_scraper | 1 |
| federal_mbda_scraper | 1 |
| federal_fcc_scraper | 1 |
| federal_fhwa_scraper | 1 |
| federal_nps_scraper | 1 |
| federal_nea_scraper | 1 |
How we verify
Each row carries a parse-confidence label (planned: HIGH / MEDIUM / LOW per SS-003). HIGH means our parser matched every required field on the source page. MEDIUM means at least one field was inferred. LOW means a real gap; we tell you what was inferred and link straight to the source.
Source-agnostic gates reject any row whose title begins with boilerplate like “Federal grant opportunity:”, whose summary is shorter than the legibility threshold (~120 characters), whose funding amount is missing, or whose category vector is empty. These gates run in CI on every parser change (see tests/test_grants_gov_parser.py).
Human review is the second line of defense. A row is marked “verified” only when a reviewer has confirmed the listing within the last 180 days.
How we count
Every headline number on the home page resolves here.
- “Active programs” means
status = ACTIVEand (the application deadline is in the future, or the deadline is null/rolling). Computed at query time, cached 5 minutes. - “.gov sources” means the count of distinct managing-agency strings whose
sourceUrlcontains.gov. This undercounts state quasi-government agencies on.comdomains; we err on the side of strict. - “Updated X ago” in the Trust Ribbon is the finish time of the most recent successful scrape run across all sources (status SUCCESS in the
ScrapeRunlog).
Corrections
Found a mistake? Tell us at corrections@statesubsidies.com. We acknowledge corrections within two business days and either correct, dispute (with reasoning), or escalate within seven.
Public incident log:
- 2026-04-20 — Grants.gov boilerplate row incident. 21 rows with the title prefix “Federal grant opportunity:” were ingested before our boilerplate-prefix filter existed. Contained same day; gate now in CI. Full incident write-up at
docs/scope/experiments/SS-002-scraper-incidents.md.
AI advisor
The chat assistant is Anthropic’s Claude Sonnet 4.6, accessed via the @ai-sdk/anthropic SDK. It searches our directory by calling a single tool, search_incentives, against the same data the public site sees. Every program it cites in a response is a row in the directory — it cannot invent programs.
The assistant does not give legal, tax, or financial advice. It does not file your application. It does not know your finances. If you ask it a question outside its scope (e.g., “will I be approved?”), it is instructed to decline and suggest the source of authority.
Quality is measured against a 200-persona eval set with ground-truth expected programs (planned per SS-012); accuracy and safety thresholds gate every model or prompt change. The current eval is a 10-persona scaffold (evals/personas/); SME labeling is in progress.
Privacy & independence
We collect anonymous page-view counts and search queries to improve the directory (Vercel Analytics + a PageView table in our PostgreSQL database). We do not use third-party ad trackers, do not sell or share data, and do not tie usage to user identity. There is no login.
Funding for this site comes from {funding_source — TBD; Jared/Okonkwo to fill}. We take no money from any program we list. We take no government sponsorship. We have no affiliate revenue. If that changes, we will say so here, dated.