Skip to content

💵 fiscal

U.S. federal fiscal data: the revenue side (IRS Statistics of Income — income, deductions and tax by ZIP, county, and taxpayer class; county-to-county migration of returns; the roster and financials of tax-exempt organizations) and the outlay side (USAspending obligations by awarding agency and by recipient state; SBA 7(a) and 504 loan approvals). Each row is a geography-and-period or entity-and-period observation joinable to geo (states/counties) and, for nonprofits and borrowers, by EIN/name. Together they show where federal money comes from and where it goes, comparable per county against population and income.

13 datasets · 120 columns

soi_income_by_zip · table

IRS Statistics of Income individual income tax statistics aggregated by ZIP x AGI size class (agi_stub) x tax year. The finest-grained revenue table; joins to geo ZIP crosswalks for county/CBSA rollups and to census ACS income. All dollar amounts are in THOUSANDS of dollars and may be negative. agi_stub brackets: 1=$1-25k, 2=$25-50k, 3=$50-75k, 4=$75-100k, 5=$100-200k, 6=$200k+. zip_code = 00000 rows are the state total for that state (kept; exclude in views that sum ZIPs). Source (per year): irs.gov/pub/irs-soi/{YY}zpallagi.csv.

Column Type Null Description
state_fips string yes 2-digit state FIPS code (FK to geo.state_ref)
state_abbr string yes 2-letter USPS state code (FK to geo.state_ref)
zip_code string no 5-digit ZIP (00000 = state total)
agi_bracket string no SOI AGI size class (agi_stub 1-6)
num_returns long yes Number of returns (N1) ~ households
num_individuals long yes Number of individuals / exemptions (N2) ~ population
num_single_returns long yes Single returns (mars1)
num_joint_returns long yes Joint returns (MARS2)
num_hoh_returns long yes Head-of-household returns (MARS4)
num_elderly_returns long yes Returns with elderly (65+) taxpayers (ELDERLY)
adjusted_gross_income double yes Adjusted gross income, $1000s (A00100)
total_income_amount double yes Total income, $1000s (A02650)
salaries_wages double yes Salaries and wages amount, $1000s (A00200)
taxable_interest double yes Taxable interest amount, $1000s (A00300)
ordinary_dividends double yes Ordinary dividends amount, $1000s (A00600)
business_net_income double yes Business/professional net income, $1000s (A00900)
net_capital_gain double yes Net capital gain amount, $1000s (A01000)
taxable_pensions double yes Taxable pensions and annuities, $1000s (A01700)
unemployment_comp double yes Unemployment compensation, $1000s (A02300)
taxable_social_security double yes Taxable Social Security benefits, $1000s (A02500)
total_itemized_deductions double yes Total itemized deductions, $1000s (A04470)
taxable_income double yes Taxable income, $1000s (A04800)
income_tax_before_credits double yes Income tax before credits, $1000s (A05800)
total_income_tax double yes Total income tax, $1000s (A06500)
total_tax_liability double yes Total tax liability, $1000s (A10300)
eitc_amount double yes Earned income tax credit amount, $1000s (A59660)

soi_income_by_county · table

IRS SOI individual income tax statistics at county grain x AGI size class x tax year (coarser than ZIP, longer history). Joins directly to geo.counties via county_fips. Amounts in $1000s. county_fips ending in 000 (COUNTYFIPS = 000) is the state total (kept; exclude in views that sum counties). Source: irs.gov/pub/irs-soi/{YY}incyallagi.csv.

Column Type Null Description
state_fips string yes 2-digit state FIPS code (FK to geo.state_ref)
state_abbr string yes 2-letter USPS state code (FK to geo.state_ref)
county_fips string no 5-digit county FIPS code (FK to geo.counties)
county_name string yes County name (000 rows carry the state name)
agi_bracket string no SOI AGI size class (agi_stub 1-6)
num_returns long yes Number of returns (N1)
num_individuals long yes Number of individuals / exemptions (N2)
adjusted_gross_income double yes Adjusted gross income, $1000s (A00100)
total_income_amount double yes Total income, $1000s (A02650)
salaries_wages double yes Salaries and wages amount, $1000s (A00200)
business_net_income double yes Business/professional net income, $1000s (A00900)
net_capital_gain double yes Net capital gain amount, $1000s (A01000)
taxable_income double yes Taxable income, $1000s (A04800)
total_income_tax double yes Total income tax, $1000s (A06500)
total_tax_liability double yes Total tax liability, $1000s (A10300)

county_migration_flows · table

IRS SOI county-to-county migration derived from year-over-year address changes on returns. One row per origin->destination county for the filing year (from the OUTFLOW file: Y1 = origin, Y2 = destination). Summary/foreign buckets (state FIPS >= 57; county 000) and non-migrant same-county rows are filtered out; suppressed cells (n1 < 0) dropped. Both endpoints join to geo.counties. agi in $1000s. Source: irs.gov/pub/irs-soi/countyoutflow{YYZZ}.csv.

Column Type Null Description
origin_state_fips string no Origin state FIPS (Y1; FK to geo.state_ref)
origin_county_fips string no 5-digit origin county FIPS (Y1; FK to geo.counties)
dest_state_fips string no Destination state FIPS (Y2; FK to geo.state_ref)
dest_county_fips string no 5-digit destination county FIPS (Y2; FK to geo.counties)
dest_county_name string yes Destination county name
num_returns long yes Returns (households) that moved (n1)
num_individuals long yes Individuals (exemptions) that moved (n2)
agi double yes Aggregate AGI of movers, $1000s

exempt_org_master · table

IRS Exempt Organizations Business Master File — the roster of all registered tax-exempt entities (EIN, name, location, subsection, deductibility, NTEE, latest financials). Cumulative monthly snapshot sharded across four regional files (eo1..eo4), fetched and concatenated in one pass. subsection_code 03 = 501(c)(3); ruling_date/tax_period are YYYYMM. Anchors exempt_org_990 on EIN. Dollar amounts fold the sign into the value. Source: irs.gov/pub/irs-soi/eo{1..4}.csv.

Column Type Null Description
ein string no Employer Identification Number (9-digit) — PK
org_name string yes Legal name
street string yes Street address
city string yes City
state_abbr string yes 2-letter USPS state code (FK to geo.state_ref)
zip_code string yes ZIP code
subsection_code string yes IRC 501(c) subsection (03 = 501(c)(3))
classification_code string yes Classification refinement code
ruling_date string yes IRS ruling date (YYYYMM)
deductibility_code string yes Contribution deductibility (1=deductible, 2=not, 4=by treaty)
foundation_code string yes Foundation status code
organization_code string yes Organization type (1=corp, 2=trust, 3=coop, 4=partnership, 5=assoc)
exempt_status string yes Exemption status (01 = unconditional)
tax_period string yes Latest return tax period (YYYYMM)
asset_amount double yes Total assets (USD)
income_amount double yes Computed income (USD, signed)
revenue_amount double yes Form 990 Part I total revenue (USD, signed)
ntee_code string yes NTEE taxonomy code (first char A-Z = major group)
sort_name string yes Secondary / DBA name line

exempt_org_990 · table

Nonprofit/tax-exempt financials from IRS Form 990 e-file XML — one row per filing (OBJECT_ID) for the IRS receipt year. The provider reads the per-year index CSV, then streams each TEOS XML zip, extracting header identity and Part I summary financials with version-defensive local-name matching across 990 / 990-EZ / 990-PF. NTEE is not in the XML — join to exempt_org_master on ein. Joins to ref/EIN. Source: apps.irs.gov/pub/epostcard/990/xml/{YEAR}/.

Column Type Null Description
ein string yes Filer EIN (9-digit; FK to exempt_org_master.ein)
org_name string yes Organization name (BusinessNameLine1)
return_type string yes Form type (990 / 990EZ / 990PF)
tax_period_end string yes Tax period end date (YYYY-MM-DD)
tax_year integer yes Tax year of the return
total_revenue double yes Total revenue (Part I / current year)
total_expenses double yes Total expenses (Part I / current year)
total_assets double yes Total assets, end of year (Part X)
object_id string no IRS filing object id — PK

usaspending_by_agency · table

Federal obligations summarized by awarding agency x fiscal year, from the USAspending Spending Explorer (type=agency, period=12 == full FY through Sep). Amounts are cumulative obligations. Joins semantically to fedregister.agencies by name. Source: api.usaspending.gov/api/v2/spending/.

Column Type Null Description
agency_code string yes Awarding agency code (Treasury AGENCY code)
agency_name string no Awarding agency name
obligated_amount double yes Total obligations for the fiscal year (USD)

usaspending_by_state · table

Federal spending summarized by place-of-performance state x fiscal year, the spatial counterpart to the SOI revenue tables. From USAspending spending_by_geography (geo_layer=state, all award types, FY expressed as Oct-Sep). Joins to geo.state_ref via state_abbr. Source: api.usaspending.gov/api/v2/search/spending_by_geography/.

Column Type Null Description
state_abbr string no 2-letter USPS state code (FK to geo.state_ref)
state_name string yes State name
obligated_amount double yes Aggregated obligations for the fiscal year (USD)
population long yes State population (USAspending reference)
per_capita double yes Spending per capita (USD)

sba_loan_approvals · table

Small Business Administration 7(a) and 504 loan approvals (FOIA public data), one row per approved loan — federal credit activity by borrower geography, industry, lender, and approval fiscal year. Fanned out by program; each CSV covers many years (year is a data column, not a partition). Reissued quarterly, so the whole program partition is overwritten each run. Joins to geo.state_ref via borrower_state and to ref by borrower name/EIN. Source: data.sba.gov 7(a)-504 FOIA.

Column Type Null Description
borrower_name string yes Borrower business name (join to ref entity bridge)
borrower_city string yes Borrower city
borrower_state string yes Borrower state (USPS abbr; FK to geo.state_ref)
borrower_zip string yes Borrower ZIP
gross_approval double yes Gross approved amount (USD)
sba_guaranteed double yes SBA-guaranteed portion (USD)
approval_date string yes Approval date
year integer yes Approval fiscal year (ApprovalFiscalYear)
delivery_method string yes SBA delivery method / loan program subtype
subprogram string yes Subprogram description (subpgmdesc)
naics_code string yes Borrower NAICS industry code
naics_description string yes NAICS industry description
project_county string yes Project county name
project_state string yes Project state (USPS abbr)
business_type string yes Business type (corporation / individual / partnership)
loan_status string yes Loan status (approved / paid in full / charged off / ...)
jobs_supported integer yes Reported jobs supported
lender_name string yes Approving lender (bank for 7(a); third-party lender for 504)

ssa_benefits_by_geography · table

SSA OASDI and SSI beneficiary counts and total benefit dollars by county x program x benefit type x year — the largest federal mandatory-spending stream, geo-keyed and comparable per county against soi_income_by_county and usaspending_by_state. SSA publishes only multi-sheet XLSX reports on a WAF-protected host that 403s non-browser clients, so the provider fetches the Wayback-archived workbook (oasdi_sc / ssi_sc) and parses the per-state county tables (Table 4 counts + Table 5 dollars for OASDI; Table 3 for SSI). The ANSI Code column carries the county FIPS directly. beneficiary_type is a mutually-exclusive published category (OASDI leaves sum to 'total'). Amounts are the December total monthly benefits, in whole USD; avg_monthly is per beneficiary. SSI per-category dollars are not published (only the total).

Column Type Null Description
state_fips string no 2-digit state FIPS code (FK to geo.state_ref)
state_name string yes State name (from the workbook tab)
county_fips string no 5-digit county FIPS code (FK to geo.counties)
county_name string yes County name
program string no OASDI (Old-Age/Survivors/Disability) or SSI
beneficiary_type string no Published category — OASDI: total, retired_workers, retired_spouses, retired_children, survivors_widows_parents, survivors_children, disabled_workers, disabled_spouses, disabled_children (leaves sum to total); SSI: total, aged, blind_and_disabled
num_beneficiaries long yes Number of beneficiaries in current-payment status (December)
total_benefits_usd double yes Total December monthly benefits, USD (null for SSI non-total types)
avg_monthly_benefit_usd double yes Average monthly benefit per beneficiary, USD (derived)

ssa_benefits_by_geography_acs · table

County-level Social Security and SSI recipiency and dollars DERIVED from the Census ACS 5-year estimates — a fully open-API, WAF-free complement to the Wayback-sourced ssa_benefits_by_geography (which alone carries the SSA administrative beneficiary-type/program detail). One row per county x ACS vintage. These are SURVEY ESTIMATES on a HOUSEHOLD basis (not SSA administrative person counts): they cannot split OASI vs DI or beneficiary type, but give the geographic distribution of Social Security / SSI receipt and aggregate dollars with no archive.org dependency. Aggregate-dollar figures are survey-reported and run below SSA administrative totals. Source: api.census.gov/data/{year}/acs/acs5 (B19055/B19056/B19065/B19066).

Column Type Null Description
state_fips string no 2-digit state FIPS (FK to geo.state_ref)
county_fips string no 5-digit county FIPS (FK to geo.counties)
county_name string yes County name (ACS NAME field)
total_households long yes Total households (ACS B19055_001E)
households_with_social_security long yes Households with Social Security income (ACS B19055_002E)
households_with_ssi long yes Households with Supplemental Security Income (ACS B19056_002E)
aggregate_social_security_usd double yes Aggregate Social Security income, USD (ACS B19065_001E)
aggregate_ssi_usd double yes Aggregate Supplemental Security Income, USD (ACS B19066_001E)

soi_income_by_county_year · view

County-level revenue rollup: returns, AGI, and total income tax by county and tax year, summed across AGI brackets (excludes the state-total 000 rows).

View — columns are resolved by the query engine at runtime.

federal_money_by_state_year · view

Both sides of the ledger per state and fiscal/tax year: SOI total income tax collected (from county rollup) beside USAspending obligations. A direct revenue-vs-outlay comparison keyed on geo.state_ref.

View — columns are resolved by the query engine at runtime.

nonprofit_financials · view

Form 990 filings enriched with the exempt-org roster: financials from exempt_org_990 joined to name/state/NTEE/subsection from exempt_org_master on EIN — the nonprofit sector view.

View — columns are resolved by the query engine at runtime.