💵 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_ |
string | yes | 2-digit state FIPS code (FK to geo.state_ref) |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
zip_ |
string | no | 5-digit ZIP (00000 = state total) |
agi_ |
string | no | SOI AGI size class (agi_stub 1-6) |
num_ |
long | yes | Number of returns (N1) ~ households |
num_ |
long | yes | Number of individuals / exemptions (N2) ~ population |
num_ |
long | yes | Single returns (mars1) |
num_ |
long | yes | Joint returns (MARS2) |
num_ |
long | yes | Head-of-household returns (MARS4) |
num_ |
long | yes | Returns with elderly (65+) taxpayers (ELDERLY) |
adjusted_ |
double | yes | Adjusted gross income, $1000s (A00100) |
total_ |
double | yes | Total income, $1000s (A02650) |
salaries_ |
double | yes | Salaries and wages amount, $1000s (A00200) |
taxable_ |
double | yes | Taxable interest amount, $1000s (A00300) |
ordinary_ |
double | yes | Ordinary dividends amount, $1000s (A00600) |
business_ |
double | yes | Business/professional net income, $1000s (A00900) |
net_ |
double | yes | Net capital gain amount, $1000s (A01000) |
taxable_ |
double | yes | Taxable pensions and annuities, $1000s (A01700) |
unemployment_ |
double | yes | Unemployment compensation, $1000s (A02300) |
taxable_ |
double | yes | Taxable Social Security benefits, $1000s (A02500) |
total_ |
double | yes | Total itemized deductions, $1000s (A04470) |
taxable_ |
double | yes | Taxable income, $1000s (A04800) |
income_ |
double | yes | Income tax before credits, $1000s (A05800) |
total_ |
double | yes | Total income tax, $1000s (A06500) |
total_ |
double | yes | Total tax liability, $1000s (A10300) |
eitc_ |
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_ |
string | yes | 2-digit state FIPS code (FK to geo.state_ref) |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
county_ |
string | no | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | County name (000 rows carry the state name) |
agi_ |
string | no | SOI AGI size class (agi_stub 1-6) |
num_ |
long | yes | Number of returns (N1) |
num_ |
long | yes | Number of individuals / exemptions (N2) |
adjusted_ |
double | yes | Adjusted gross income, $1000s (A00100) |
total_ |
double | yes | Total income, $1000s (A02650) |
salaries_ |
double | yes | Salaries and wages amount, $1000s (A00200) |
business_ |
double | yes | Business/professional net income, $1000s (A00900) |
net_ |
double | yes | Net capital gain amount, $1000s (A01000) |
taxable_ |
double | yes | Taxable income, $1000s (A04800) |
total_ |
double | yes | Total income tax, $1000s (A06500) |
total_ |
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_ |
string | no | Origin state FIPS (Y1; FK to geo.state_ref) |
origin_ |
string | no | 5-digit origin county FIPS (Y1; FK to geo.counties) |
dest_ |
string | no | Destination state FIPS (Y2; FK to geo.state_ref) |
dest_ |
string | no | 5-digit destination county FIPS (Y2; FK to geo.counties) |
dest_ |
string | yes | Destination county name |
num_ |
long | yes | Returns (households) that moved (n1) |
num_ |
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_ |
string | yes | Legal name |
street |
string | yes | Street address |
city |
string | yes | City |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
zip_ |
string | yes | ZIP code |
subsection_ |
string | yes | IRC 501(c) subsection (03 = 501(c)(3)) |
classification_ |
string | yes | Classification refinement code |
ruling_ |
string | yes | IRS ruling date (YYYYMM) |
deductibility_ |
string | yes | Contribution deductibility (1=deductible, 2=not, 4=by treaty) |
foundation_ |
string | yes | Foundation status code |
organization_ |
string | yes | Organization type (1=corp, 2=trust, 3=coop, 4=partnership, 5=assoc) |
exempt_ |
string | yes | Exemption status (01 = unconditional) |
tax_ |
string | yes | Latest return tax period (YYYYMM) |
asset_ |
double | yes | Total assets (USD) |
income_ |
double | yes | Computed income (USD, signed) |
revenue_ |
double | yes | Form 990 Part I total revenue (USD, signed) |
ntee_ |
string | yes | NTEE taxonomy code (first char A-Z = major group) |
sort_ |
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_ |
string | yes | Organization name (BusinessNameLine1) |
return_ |
string | yes | Form type (990 / 990EZ / 990PF) |
tax_ |
string | yes | Tax period end date (YYYY-MM-DD) |
tax_ |
integer | yes | Tax year of the return |
total_ |
double | yes | Total revenue (Part I / current year) |
total_ |
double | yes | Total expenses (Part I / current year) |
total_ |
double | yes | Total assets, end of year (Part X) |
object_ |
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_ |
string | yes | Awarding agency code (Treasury AGENCY code) |
agency_ |
string | no | Awarding agency name |
obligated_ |
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_ |
string | no | 2-letter USPS state code (FK to geo.state_ref) |
state_ |
string | yes | State name |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD) |
population |
long | yes | State population (USAspending reference) |
per_ |
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_ |
string | yes | Borrower business name (join to ref entity bridge) |
borrower_ |
string | yes | Borrower city |
borrower_ |
string | yes | Borrower state (USPS abbr; FK to geo.state_ref) |
borrower_ |
string | yes | Borrower ZIP |
gross_ |
double | yes | Gross approved amount (USD) |
sba_ |
double | yes | SBA-guaranteed portion (USD) |
approval_ |
string | yes | Approval date |
year |
integer | yes | Approval fiscal year (ApprovalFiscalYear) |
delivery_ |
string | yes | SBA delivery method / loan program subtype |
subprogram |
string | yes | Subprogram description (subpgmdesc) |
naics_ |
string | yes | Borrower NAICS industry code |
naics_ |
string | yes | NAICS industry description |
project_ |
string | yes | Project county name |
project_ |
string | yes | Project state (USPS abbr) |
business_ |
string | yes | Business type (corporation / individual / partnership) |
loan_ |
string | yes | Loan status (approved / paid in full / charged off / ...) |
jobs_ |
integer | yes | Reported jobs supported |
lender_ |
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_ |
string | no | 2-digit state FIPS code (FK to geo.state_ref) |
state_ |
string | yes | State name (from the workbook tab) |
county_ |
string | no | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | County name |
program |
string | no | OASDI (Old-Age/Survivors/Disability) or SSI |
beneficiary_ |
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_ |
long | yes | Number of beneficiaries in current-payment status (December) |
total_ |
double | yes | Total December monthly benefits, USD (null for SSI non-total types) |
avg_ |
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_ |
string | no | 2-digit state FIPS (FK to geo.state_ref) |
county_ |
string | no | 5-digit county FIPS (FK to geo.counties) |
county_ |
string | yes | County name (ACS NAME field) |
total_ |
long | yes | Total households (ACS B19055_001E) |
households_ |
long | yes | Households with Social Security income (ACS B19055_002E) |
households_ |
long | yes | Households with Supplemental Security Income (ACS B19056_002E) |
aggregate_ |
double | yes | Aggregate Social Security income, USD (ACS B19065_001E) |
aggregate_ |
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.