💵 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.
38 datasets · 776 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) |
elf |
long | yes | IRS SOI field ELF, as published |
cprep |
long | yes | IRS SOI field CPREP, as published |
prep |
long | yes | IRS SOI field PREP, as published |
dir_ |
long | yes | IRS SOI field DIR_DEP, as published |
vrtcrind |
long | yes | IRS SOI field VRTCRIND, as published |
total_ |
long | yes | IRS SOI field TOTAL_VITA, as published |
vita |
long | yes | IRS SOI field VITA, as published |
tce |
long | yes | IRS SOI field TCE, as published |
vita_ |
long | yes | IRS SOI field VITA_EIC, as published |
rac |
long | yes | IRS SOI field RAC, as published |
n02650 |
long | yes | IRS SOI field N02650, as published |
n00200 |
long | yes | IRS SOI field N00200, as published |
n00300 |
long | yes | IRS SOI field N00300, as published |
n00400 |
long | yes | IRS SOI field N00400, as published |
a00400 |
double | yes | IRS SOI field A00400, as published |
n00600 |
long | yes | IRS SOI field N00600, as published |
n00650 |
long | yes | IRS SOI field N00650, as published |
a00650 |
double | yes | IRS SOI field A00650, as published |
n00700 |
long | yes | IRS SOI field N00700, as published |
a00700 |
double | yes | IRS SOI field A00700, as published |
n00900 |
long | yes | IRS SOI field N00900, as published |
n01000 |
long | yes | IRS SOI field N01000, as published |
n01400 |
long | yes | IRS SOI field N01400, as published |
a01400 |
double | yes | IRS SOI field A01400, as published |
n01700 |
long | yes | IRS SOI field N01700, as published |
schf |
long | yes | IRS SOI field SCHF, as published |
n02300 |
long | yes | IRS SOI field N02300, as published |
n02500 |
long | yes | IRS SOI field N02500, as published |
n26270 |
long | yes | IRS SOI field N26270, as published |
a26270 |
double | yes | IRS SOI field A26270, as published |
n25870 |
long | yes | IRS SOI field N25870, as published |
a25870 |
double | yes | IRS SOI field A25870, as published |
n02900 |
long | yes | IRS SOI field N02900, as published |
a02900 |
double | yes | IRS SOI field A02900, as published |
n03220 |
long | yes | IRS SOI field N03220, as published |
a03220 |
double | yes | IRS SOI field A03220, as published |
n03300 |
long | yes | IRS SOI field N03300, as published |
a03300 |
double | yes | IRS SOI field A03300, as published |
n03270 |
long | yes | IRS SOI field N03270, as published |
a03270 |
double | yes | IRS SOI field A03270, as published |
n03150 |
long | yes | IRS SOI field N03150, as published |
a03150 |
double | yes | IRS SOI field A03150, as published |
n03210 |
long | yes | IRS SOI field N03210, as published |
a03210 |
double | yes | IRS SOI field A03210, as published |
n04450 |
long | yes | IRS SOI field N04450, as published |
a04450 |
double | yes | IRS SOI field A04450, as published |
n04100 |
long | yes | IRS SOI field N04100, as published |
a04100 |
double | yes | IRS SOI field A04100, as published |
n04200 |
long | yes | IRS SOI field N04200, as published |
a04200 |
double | yes | IRS SOI field A04200, as published |
n04470 |
long | yes | IRS SOI field N04470, as published |
a00101 |
double | yes | IRS SOI field A00101, as published |
n17000 |
long | yes | IRS SOI field N17000, as published |
a17000 |
double | yes | IRS SOI field A17000, as published |
n18425 |
long | yes | IRS SOI field N18425, as published |
a18425 |
double | yes | IRS SOI field A18425, as published |
n18450 |
long | yes | IRS SOI field N18450, as published |
a18450 |
double | yes | IRS SOI field A18450, as published |
n18500 |
long | yes | IRS SOI field N18500, as published |
a18500 |
double | yes | IRS SOI field A18500, as published |
n18800 |
long | yes | IRS SOI field N18800, as published |
a18800 |
double | yes | IRS SOI field A18800, as published |
n18460 |
long | yes | IRS SOI field N18460, as published |
a18460 |
double | yes | IRS SOI field A18460, as published |
n18300 |
long | yes | IRS SOI field N18300, as published |
a18300 |
double | yes | IRS SOI field A18300, as published |
n19300 |
long | yes | IRS SOI field N19300, as published |
a19300 |
double | yes | IRS SOI field A19300, as published |
n19500 |
long | yes | IRS SOI field N19500, as published |
a19500 |
double | yes | IRS SOI field A19500, as published |
n19530 |
long | yes | IRS SOI field N19530, as published |
a19530 |
double | yes | IRS SOI field A19530, as published |
n19570 |
long | yes | IRS SOI field N19570, as published |
a19570 |
double | yes | IRS SOI field A19570, as published |
n19700 |
long | yes | IRS SOI field N19700, as published |
a19700 |
double | yes | IRS SOI field A19700, as published |
n20950 |
long | yes | IRS SOI field N20950, as published |
a20950 |
double | yes | IRS SOI field A20950, as published |
n04475 |
long | yes | IRS SOI field N04475, as published |
a04475 |
double | yes | IRS SOI field A04475, as published |
n04800 |
long | yes | IRS SOI field N04800, as published |
n05800 |
long | yes | IRS SOI field N05800, as published |
n09600 |
long | yes | IRS SOI field N09600, as published |
a09600 |
double | yes | IRS SOI field A09600, as published |
n05780 |
long | yes | IRS SOI field N05780, as published |
a05780 |
double | yes | IRS SOI field A05780, as published |
n07100 |
long | yes | IRS SOI field N07100, as published |
a07100 |
double | yes | IRS SOI field A07100, as published |
n07300 |
long | yes | IRS SOI field N07300, as published |
a07300 |
double | yes | IRS SOI field A07300, as published |
n07180 |
long | yes | IRS SOI field N07180, as published |
a07180 |
double | yes | IRS SOI field A07180, as published |
n07230 |
long | yes | IRS SOI field N07230, as published |
a07230 |
double | yes | IRS SOI field A07230, as published |
n07240 |
long | yes | IRS SOI field N07240, as published |
a07240 |
double | yes | IRS SOI field A07240, as published |
n07225 |
long | yes | IRS SOI field N07225, as published |
a07225 |
double | yes | IRS SOI field A07225, as published |
n07260 |
long | yes | IRS SOI field N07260, as published |
a07260 |
double | yes | IRS SOI field A07260, as published |
n09400 |
long | yes | IRS SOI field N09400, as published |
a09400 |
double | yes | IRS SOI field A09400, as published |
n85770 |
long | yes | IRS SOI field N85770, as published |
a85770 |
double | yes | IRS SOI field A85770, as published |
n85775 |
long | yes | IRS SOI field N85775, as published |
a85775 |
double | yes | IRS SOI field A85775, as published |
n10600 |
long | yes | IRS SOI field N10600, as published |
a10600 |
double | yes | IRS SOI field A10600, as published |
n59660 |
long | yes | IRS SOI field N59660, as published |
n59661 |
long | yes | IRS SOI field N59661, as published |
a59661 |
double | yes | IRS SOI field A59661, as published |
n59662 |
long | yes | IRS SOI field N59662, as published |
a59662 |
double | yes | IRS SOI field A59662, as published |
n59663 |
long | yes | IRS SOI field N59663, as published |
a59663 |
double | yes | IRS SOI field A59663, as published |
n59664 |
long | yes | IRS SOI field N59664, as published |
a59664 |
double | yes | IRS SOI field A59664, as published |
n59720 |
long | yes | IRS SOI field N59720, as published |
a59720 |
double | yes | IRS SOI field A59720, as published |
n11070 |
long | yes | IRS SOI field N11070, as published |
a11070 |
double | yes | IRS SOI field A11070, as published |
n10960 |
long | yes | IRS SOI field N10960, as published |
a10960 |
double | yes | IRS SOI field A10960, as published |
n11560 |
long | yes | IRS SOI field N11560, as published |
a11560 |
double | yes | IRS SOI field A11560, as published |
n06500 |
long | yes | IRS SOI field N06500, as published |
n10300 |
long | yes | IRS SOI field N10300, as published |
n85530 |
long | yes | IRS SOI field N85530, as published |
a85530 |
double | yes | IRS SOI field A85530, as published |
n85300 |
long | yes | IRS SOI field N85300, as published |
a85300 |
double | yes | IRS SOI field A85300, as published |
n11901 |
long | yes | IRS SOI field N11901, as published |
a11901 |
double | yes | IRS SOI field A11901, as published |
n11900 |
long | yes | IRS SOI field N11900, as published |
a11900 |
double | yes | IRS SOI field A11900, as published |
n11902 |
long | yes | IRS SOI field N11902, as published |
a11902 |
double | yes | IRS SOI field A11902, as published |
n12000 |
long | yes | IRS SOI field N12000, as published |
a12000 |
double | yes | IRS SOI field A12000, as published |
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) |
mars1 |
long | yes | IRS SOI field mars1, as published |
mars2 |
long | yes | IRS SOI field MARS2, as published |
mars4 |
long | yes | IRS SOI field MARS4, as published |
elf |
long | yes | IRS SOI field ELF, as published |
cprep |
long | yes | IRS SOI field CPREP, as published |
prep |
long | yes | IRS SOI field PREP, as published |
dir_ |
long | yes | IRS SOI field DIR_DEP, as published |
vrtcrind |
long | yes | IRS SOI field VRTCRIND, as published |
total_ |
long | yes | IRS SOI field TOTAL_VITA, as published |
vita |
long | yes | IRS SOI field VITA, as published |
tce |
long | yes | IRS SOI field TCE, as published |
vita_ |
long | yes | IRS SOI field VITA_EIC, as published |
rac |
long | yes | IRS SOI field RAC, as published |
elderly |
long | yes | IRS SOI field ELDERLY, as published |
n02650 |
long | yes | IRS SOI field N02650, as published |
n00200 |
long | yes | IRS SOI field N00200, as published |
n00300 |
long | yes | IRS SOI field N00300, as published |
a00300 |
double | yes | IRS SOI field A00300, as published |
n00400 |
long | yes | IRS SOI field N00400, as published |
a00400 |
double | yes | IRS SOI field A00400, as published |
n00600 |
long | yes | IRS SOI field N00600, as published |
a00600 |
double | yes | IRS SOI field A00600, as published |
n00650 |
long | yes | IRS SOI field N00650, as published |
a00650 |
double | yes | IRS SOI field A00650, as published |
n00700 |
long | yes | IRS SOI field N00700, as published |
a00700 |
double | yes | IRS SOI field A00700, as published |
n00900 |
long | yes | IRS SOI field N00900, as published |
n01000 |
long | yes | IRS SOI field N01000, as published |
n01400 |
long | yes | IRS SOI field N01400, as published |
a01400 |
double | yes | IRS SOI field A01400, as published |
n01700 |
long | yes | IRS SOI field N01700, as published |
a01700 |
double | yes | IRS SOI field A01700, as published |
schf |
long | yes | IRS SOI field SCHF, as published |
n02300 |
long | yes | IRS SOI field N02300, as published |
a02300 |
double | yes | IRS SOI field A02300, as published |
n02500 |
long | yes | IRS SOI field N02500, as published |
a02500 |
double | yes | IRS SOI field A02500, as published |
n26270 |
long | yes | IRS SOI field N26270, as published |
a26270 |
double | yes | IRS SOI field A26270, as published |
n25870 |
long | yes | IRS SOI field N25870, as published |
a25870 |
double | yes | IRS SOI field A25870, as published |
n02900 |
long | yes | IRS SOI field N02900, as published |
a02900 |
double | yes | IRS SOI field A02900, as published |
n03220 |
long | yes | IRS SOI field N03220, as published |
a03220 |
double | yes | IRS SOI field A03220, as published |
n03300 |
long | yes | IRS SOI field N03300, as published |
a03300 |
double | yes | IRS SOI field A03300, as published |
n03270 |
long | yes | IRS SOI field N03270, as published |
a03270 |
double | yes | IRS SOI field A03270, as published |
n03150 |
long | yes | IRS SOI field N03150, as published |
a03150 |
double | yes | IRS SOI field A03150, as published |
n03210 |
long | yes | IRS SOI field N03210, as published |
a03210 |
double | yes | IRS SOI field A03210, as published |
n04450 |
long | yes | IRS SOI field N04450, as published |
a04450 |
double | yes | IRS SOI field A04450, as published |
n04100 |
long | yes | IRS SOI field N04100, as published |
a04100 |
double | yes | IRS SOI field A04100, as published |
n04200 |
long | yes | IRS SOI field N04200, as published |
a04200 |
double | yes | IRS SOI field A04200, as published |
n04470 |
long | yes | IRS SOI field N04470, as published |
a04470 |
double | yes | IRS SOI field A04470, as published |
a00101 |
double | yes | IRS SOI field A00101, as published |
n17000 |
long | yes | IRS SOI field N17000, as published |
a17000 |
double | yes | IRS SOI field A17000, as published |
n18425 |
long | yes | IRS SOI field N18425, as published |
a18425 |
double | yes | IRS SOI field A18425, as published |
n18450 |
long | yes | IRS SOI field N18450, as published |
a18450 |
double | yes | IRS SOI field A18450, as published |
n18500 |
long | yes | IRS SOI field N18500, as published |
a18500 |
double | yes | IRS SOI field A18500, as published |
n18800 |
long | yes | IRS SOI field N18800, as published |
a18800 |
double | yes | IRS SOI field A18800, as published |
n18460 |
long | yes | IRS SOI field N18460, as published |
a18460 |
double | yes | IRS SOI field A18460, as published |
n18300 |
long | yes | IRS SOI field N18300, as published |
a18300 |
double | yes | IRS SOI field A18300, as published |
n19300 |
long | yes | IRS SOI field N19300, as published |
a19300 |
double | yes | IRS SOI field A19300, as published |
n19500 |
long | yes | IRS SOI field N19500, as published |
a19500 |
double | yes | IRS SOI field A19500, as published |
n19530 |
long | yes | IRS SOI field N19530, as published |
a19530 |
double | yes | IRS SOI field A19530, as published |
n19570 |
long | yes | IRS SOI field N19570, as published |
a19570 |
double | yes | IRS SOI field A19570, as published |
n19700 |
long | yes | IRS SOI field N19700, as published |
a19700 |
double | yes | IRS SOI field A19700, as published |
n20950 |
long | yes | IRS SOI field N20950, as published |
a20950 |
double | yes | IRS SOI field A20950, as published |
n04475 |
long | yes | IRS SOI field N04475, as published |
a04475 |
double | yes | IRS SOI field A04475, as published |
n04800 |
long | yes | IRS SOI field N04800, as published |
n05800 |
long | yes | IRS SOI field N05800, as published |
a05800 |
double | yes | IRS SOI field A05800, as published |
n09600 |
long | yes | IRS SOI field N09600, as published |
a09600 |
double | yes | IRS SOI field A09600, as published |
n05780 |
long | yes | IRS SOI field N05780, as published |
a05780 |
double | yes | IRS SOI field A05780, as published |
n07100 |
long | yes | IRS SOI field N07100, as published |
a07100 |
double | yes | IRS SOI field A07100, as published |
n07300 |
long | yes | IRS SOI field N07300, as published |
a07300 |
double | yes | IRS SOI field A07300, as published |
n07180 |
long | yes | IRS SOI field N07180, as published |
a07180 |
double | yes | IRS SOI field A07180, as published |
n07230 |
long | yes | IRS SOI field N07230, as published |
a07230 |
double | yes | IRS SOI field A07230, as published |
n07240 |
long | yes | IRS SOI field N07240, as published |
a07240 |
double | yes | IRS SOI field A07240, as published |
n07225 |
long | yes | IRS SOI field N07225, as published |
a07225 |
double | yes | IRS SOI field A07225, as published |
n07260 |
long | yes | IRS SOI field N07260, as published |
a07260 |
double | yes | IRS SOI field A07260, as published |
n09400 |
long | yes | IRS SOI field N09400, as published |
a09400 |
double | yes | IRS SOI field A09400, as published |
n85770 |
long | yes | IRS SOI field N85770, as published |
a85770 |
double | yes | IRS SOI field A85770, as published |
n85775 |
long | yes | IRS SOI field N85775, as published |
a85775 |
double | yes | IRS SOI field A85775, as published |
n10600 |
long | yes | IRS SOI field N10600, as published |
a10600 |
double | yes | IRS SOI field A10600, as published |
n59660 |
long | yes | IRS SOI field N59660, as published |
a59660 |
double | yes | IRS SOI field A59660, as published |
n59661 |
long | yes | IRS SOI field N59661, as published |
a59661 |
double | yes | IRS SOI field A59661, as published |
n59662 |
long | yes | IRS SOI field N59662, as published |
a59662 |
double | yes | IRS SOI field A59662, as published |
n59663 |
long | yes | IRS SOI field N59663, as published |
a59663 |
double | yes | IRS SOI field A59663, as published |
n59664 |
long | yes | IRS SOI field N59664, as published |
a59664 |
double | yes | IRS SOI field A59664, as published |
n59720 |
long | yes | IRS SOI field N59720, as published |
a59720 |
double | yes | IRS SOI field A59720, as published |
n11070 |
long | yes | IRS SOI field N11070, as published |
a11070 |
double | yes | IRS SOI field A11070, as published |
n10960 |
long | yes | IRS SOI field N10960, as published |
a10960 |
double | yes | IRS SOI field A10960, as published |
n11560 |
long | yes | IRS SOI field N11560, as published |
a11560 |
double | yes | IRS SOI field A11560, as published |
n06500 |
long | yes | IRS SOI field N06500, as published |
n10300 |
long | yes | IRS SOI field N10300, as published |
n85530 |
long | yes | IRS SOI field N85530, as published |
a85530 |
double | yes | IRS SOI field A85530, as published |
n85300 |
long | yes | IRS SOI field N85300, as published |
a85300 |
double | yes | IRS SOI field A85300, as published |
n11901 |
long | yes | IRS SOI field N11901, as published |
a11901 |
double | yes | IRS SOI field A11901, as published |
n11900 |
long | yes | IRS SOI field N11900, as published |
a11900 |
double | yes | IRS SOI field A11900, as published |
n11902 |
long | yes | IRS SOI field N11902, as published |
a11902 |
double | yes | IRS SOI field A11902, as published |
n12000 |
long | yes | IRS SOI field N12000, as published |
a12000 |
double | yes | IRS SOI field A12000, as published |
irs_gross_collections_by_state_year · table¶
IRS SOI Table 1-5, "Gross Collections, by Type of Tax and State" — one row per state/area per fiscal year, wide across the 11 tax-collection measures the table publishes. Sourced to close the gap federal_spending_vs_income_tax_by_state_year documents explicitly: that table carries individual income tax only, so a balance-of-payments computation built from it alone makes every state look net-positive (confirmed against the NY State Comptroller's official FFY2023 report, whose Rockefeller/OMB methodology finds NJ/MA/WA as real net donors). business_income_taxes (corporate) and excise_taxes here close the biggest part of that gap. Structural IRS limitation — cannot be fixed at ETL time: IRS combines FICA with individual income tax withheld (individual_withheld_and_fica_tax), and SECA with individual income tax payments (individual_payments_and_seca_tax), in this state-level report. A clean payroll/FICA-only-by-state figure is not obtainable from any IRS SOI state-grain publication — this is the same reason federal_spending_vs_income_tax_by_state_year never carried it. The combined columns are still the correct denominator for a balance-of-payments computation (each captures both components), just not separable into payroll-tax-alone. Non-state rows are kept, not dropped, matching soi_income_by_county's kept county-total convention: 'United States, total' (the national aggregate) and three non-state buckets IRS reports separately ('U.S. Armed Service members overseas and Territories other than Puerto Rico', 'Puerto Rico', 'International', 'Undistributed') all get state_abbr NULL — filter WHERE state_abbr IS NOT NULL for a clean 50+DC sum. Source: irs.gov/pub/irs-soi/{YY}dbs01t05co.xlsx (FY2019-2024 combined tax-type workbook; sheet name and filename convention both changed for FY2025 — see the source block). Scoped to FY2019+ (this modern combined-workbook format) rather than IRS's full history back to the 1990s — pre-2019 files are the legacy .xls binary format with a plausibly different layout, unverified and out of scope here.
| Column | Type | Null | Description |
|---|---|---|---|
state_ |
string | no | State/area name exactly as published (e.g. 'United States, total', 'Puerto Rico') |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
fiscal_ |
integer | no | Federal fiscal year |
total_ |
double | yes | Total Internal Revenue collections, $1000s (includes penalties and interest) |
business_ |
double | yes | Corporation income tax (Form 1120 series) + tax-exempt unrelated business income (Form 990-T), $1000s |
individual_ |
double | yes | Subtotal of individual income tax, employment taxes, and estate/trust income tax, $1000s |
individual_ |
double | yes | Individual income tax withheld COMBINED with FICA payroll tax — IRS does not report these separately by state, $1000s |
individual_ |
double | yes | Individual income tax payments COMBINED with SECA self-employment tax — IRS does not report these separately by state, $1000s |
unemployment_ |
double | yes | Federal unemployment insurance tax (FUTA), $1000s |
railroad_ |
double | yes | Railroad retirement tax, $1000s |
estate_ |
double | yes | Estate and trust income tax, $1000s |
estate_ |
double | yes | Estate (inheritance) tax, $1000s |
gift_ |
double | yes | Gift tax, $1000s |
excise_ |
double | yes | Federal excise taxes, $1000s |
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. Years 2008 onward (2008 = the 2007-2008 file). Coverage is not uniform: IRS lists a county pair only above a disclosure threshold, 10 returns for 2008-2013 (about 78,000-91,000 pairs a year) and about 20 returns from 2014 (about 36,000-60,000 pairs a year), so pair counts and summed flows from 2014 on are not comparable with 2008-2013 and a pre/post comparison of small flows needs the threshold applied to both sides. 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. To reach this org's cross-schema identity FROM another schema rather than by name, join ref.canonical_org_entity on exempt_org_ein = ein — EIN is a second exact-match hub key alongside GLEIF's LEI (sec.filing_metadata.irs_number matches it directly), so the join is exact. Matching org_name as text finds the wrong entities and misses orgs filing under a differently-worded name.
| 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. For full Form 990 returns (return_type 990) it also carries Part I line 15 (salaries, other compensation, employee benefits) and line 16b (fundraising expenses), the Part IX line 25 functional-expense columns (A total, B program service, C management and general, D fundraising), Part IX line 5 officer compensation, and the Part VII Section A compensation columns D/E/F summed over the listed persons; these are null on 990-EZ, 990-PF and 990-T returns, which do not report those parts. Overhead ratio is functional_expenses_mgmt_general + functional_expenses_fundraising over functional_expenses_total. 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}/. Two indexed receipt-2023 filings, 202313409349100901 (Aurora Care Foundation Inc, 990-PF) and 202301929339300110 (Northwestern Memorial Hospital, 990-T), are in no published IRS zip and are absent from the table; the load logs and counts each as known absent and fails on any other indexed filing it cannot find.
| 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) |
salaries_ |
double | yes | Form 990 Part I line 15, current year: salaries, other compensation, employee benefits (US dollars). Null for 990-EZ, 990-PF and 990-T returns, which have no Part I line 15 |
fundraising_ |
double | yes | Form 990 Part I line 16b, current year: total fundraising expenses (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
functional_ |
double | yes | Form 990 Part IX line 25 column (A): total functional expenses (US dollars); equals the sum of the three columns below and total_expenses. Null for 990-EZ, 990-PF and 990-T returns |
functional_ |
double | yes | Form 990 Part IX line 25 column (B): program service expenses (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
functional_ |
double | yes | Form 990 Part IX line 25 column (C): management and general expenses (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
functional_ |
double | yes | Form 990 Part IX line 25 column (D): fundraising expenses (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
officer_ |
double | yes | Form 990 Part IX line 5 column (A): compensation of current officers, directors, trustees and key employees (US dollars); the filer-reported officer pay total. Null for 990-EZ, 990-PF and 990-T returns |
part_ |
integer | yes | Form 990 Part VII Section A: number of officers, directors, trustees, key employees and highest-compensated employees listed (continuation-sheet persons included as the XML carries them). Null for 990-EZ, 990-PF and 990-T returns |
part_ |
double | yes | Form 990 Part VII Section A column (D) summed over the listed persons: reportable compensation from the organization (W-2 box 5 / 1099-MISC, US dollars). Summed here because the XML has no total element; null when any listed person lacks the amount. Null for 990-EZ, 990-PF and 990-T returns |
part_ |
double | yes | Form 990 Part VII Section A column (E) summed over the listed persons: reportable compensation from related organizations (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
part_ |
double | yes | Form 990 Part VII Section A column (F) summed over the listed persons: estimated amount of other compensation from the organization and related organizations (US dollars). Null for 990-EZ, 990-PF and 990-T returns |
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 and one level up from the county-grain usaspending_by_county. Carries obligated_amount (all award types) alongside obligated_amount_excl_loans, which drops award types '07'/'08' (loans): loans report face value at the lender/servicer's place of performance rather than the borrower's, which inflates place-of-performance totals for states with large loan servicers. CMS-funded awards are likewise attributed to the Medicare Administrative Contractor's state (North Dakota, Minnesota and Indiana host contractors paying Medicare claims for beneficiaries nationwide), so obligated_amount and obligated_amount_excl_loans are not a measure of spending landing in the state and must not be divided by population to rank states; use obligated_amount_excl_loans_excl_cms_admin for that. For per-capita, join census.acs_population rather than a stored figure here. 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), all award types, by place of performance. Includes loan face value and CMS-funded awards booked at the Medicare Administrative Contractor's state, so it overstates spending received in states hosting large loan servicers or Medicare contractors (ND, MN, IN); for per-capita or cross-state comparison use obligated_amount_excl_loans_excl_cms_admin. |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD), excluding loan award types '07' (direct loans) and '08' (guaranteed/insured loans). Loans report face value at the lender/servicer's place of performance rather than the borrower's, which inflates obligated_amount for states with large loan servicers; this figure is a truer measure of spending actually landing in the state. Under the Federal Credit Reform Act, a loan award's obligated amount is its estimated subsidy cost, re-estimated annually, and a downward reestimate or negative subsidy can make a state/year's net loan-type obligation negative; when that happens, this figure is arithmetically larger than obligated_amount, since excluding a negative-valued subset raises the total rather than lowering it. |
obligated_ |
double | yes | obligated_amount_excl_loans further excluding CMS (Centers for Medicare and Medicaid Services) funded awards. CMS-funded awards report place of performance at the Medicare Administrative Contractor's location, not the beneficiary's — e.g. Noridian Healthcare Solutions (Fargo, ND) processes Medicare fee-for-service claims nationwide, but every claim geocodes to ND. Confirmed nationwide, not an ND-specific anomaly (other MAC-hosting states show the same effect at FY2023 scale, e.g. Minnesota $165.8B and Indiana $133.4B in CMS-funded place-of-performance alone, both exceeding California's total obligated_amount despite a fraction of the population). This is the truest measure of spending actually landing in the state for states with a large Medicare Administrative Contractor presence. |
usaspending_by_county · table¶
Federal spending summarized by place-of-performance county x fiscal year — the county-grain counterpart to usaspending_by_state and the outlay side of soi_income_by_county. From USAspending spending_by_geography (geo_layer=county, all award types, FY expressed as Oct-Sep); ~2,800 counties per year. Joins to geo.counties via county_fips. Award types span contracts, IDVs, grants, direct payments and loans, so totals are wider than a contracts-only USAspending screen — filter in SQL if you need the A/B/C/D contract slice alone. Carries obligated_amount_excl_loans alongside obligated_amount because loans (award types '07'/'08') report face value at the lender/servicer's place of performance rather than the borrower's. For per-capita, join census.acs_population rather than using USAspending's own population reference, which is 2020 decennial. Source: api.usaspending.gov/api/v2/search/spending_by_geography/.
| Column | Type | Null | Description |
|---|---|---|---|
county_ |
string | no | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | County name as reported by USAspending (no state qualifier) |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD), all award types |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD), excluding loan award types '07' (direct loans) and '08' (guaranteed/insured loans). Loans report face value at the lender/servicer's place of performance rather than the borrower's, which inflates obligated_amount for counties with large loan servicers; this figure is a truer measure of spending actually landing in the county. Under the Federal Credit Reform Act, a loan award's obligated amount is its estimated subsidy cost, re-estimated annually, and a downward reestimate or negative subsidy can make a county/year's net loan-type obligation negative; when that happens, this figure is arithmetically larger than obligated_amount, since excluding a negative-valued subset raises the total rather than lowering it. |
obligated_ |
double | yes | obligated_amount_excl_loans further excluding CMS (Centers for Medicare and Medicaid Services) funded awards — matches usaspending_by_state's column of the same name; see that table's comment for the nationwide evidence. CMS-funded awards report place of performance at the Medicare Administrative Contractor's location, not the beneficiary's, which concentrates Medicare claims spending into the specific counties hosting MAC contractors' offices. |
usaspending_by_district · table¶
Federal spending summarized by place-of-performance congressional district x fiscal year — the district-grain counterpart to usaspending_by_state and usaspending_by_county. From USAspending spending_by_geography (geo_layer=district, all award types, FY expressed as Oct-Sep); one call per fiscal year returns all 442 districts in a single unpaginated response (435 numbered districts, at-large single-district states as district "00", and non-voting delegate districts for DC/PR/GU/VI/AS/MP as district "98"). Carries obligated_amount (all award types) alongside obligated_amount_excl_loans and obligated_amount_excl_loans_excl_cms_admin for the same reasons as usaspending_by_state/usaspending_by_county — see those tables' comments for the nationwide evidence. obligated_amount_contracts isolates procurement contract/IDV awards specifically (D-278), since obligated_amount alone mixes contracts with grants, loans, and direct payments indistinguishably. cd_fips matches geo.congressional_districts.cd_fips exactly (state FIPS + district number), no crosswalk needed. Does NOT carry a recipient/contractor-name dimension — USAspending's award-level search (spending_by_award, already used by UsaSpendingAwardSearchProvider for the broadband_*_awards tables) is paginated per-award rather than pre-aggregated, so a full recipient-concentration table across all 442 districts is a materially heavier build, deliberately left as a separate follow-up rather than folded into this one. For per-capita, join census.acs_population rather than a stored figure here. Joins to geo.congressional_districts via cd_fips. Source: api.usaspending.gov/api/v2/search/spending_by_geography/.
| Column | Type | Null | Description |
|---|---|---|---|
cd_ |
string | no | 4-digit congressional district code (state FIPS + district number), matches geo.congressional_districts.cd_fips |
state_ |
string | yes | 2-letter USPS state abbreviation, decoded from USAspending's display_name |
district_ |
string | yes | District number as text (e.g. "04"); "00" means an at-large single-district state, "98" means a non-voting delegate district (DC, Puerto Rico, Guam, U.S. Virgin Islands, American Samoa, Northern Mariana Islands) |
cd_ |
string | yes | USAspending's own district label, e.g. "PA-04" |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD), all award types |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD), excluding loan award types '07' (direct loans) and '08' (guaranteed/insured loans). Loans report face value at the lender/servicer's place of performance rather than the borrower's, which inflates obligated_amount for districts with large loan servicers; this figure is a truer measure of spending actually landing in the district. Under the Federal Credit Reform Act, a loan award's obligated amount is its estimated subsidy cost, re-estimated annually, and a downward reestimate or negative subsidy can make a district/year's net loan-type obligation negative; when that happens, this figure is arithmetically larger than obligated_amount, since excluding a negative-valued subset raises the total rather than lowering it. |
obligated_ |
double | yes | obligated_amount_excl_loans further excluding CMS (Centers for Medicare and Medicaid Services) funded awards — matches usaspending_by_state/ usaspending_by_county's column of the same name; see those tables' comments for the nationwide evidence. CMS-funded awards report place of performance at the Medicare Administrative Contractor's location, not the beneficiary's, which concentrates Medicare claims spending into whichever district hosts a MAC contractor's office. |
obligated_ |
double | yes | Obligations from procurement contract/IDV award types only (codes A, B, C, D, IDV_A-E) — the actual "federal contract spending" figure (D-278). obligated_amount above is ALL award types combined (contracts + grants + loans + direct payments + other assistance) and is not a contract-spending figure by itself; a caller who specifically means contracts should use this column, not filter/derive from obligated_amount. |
usaspending_recipients_by_district · table¶
Top 100 recipients by obligated dollar amount for each place-of-performance congressional district x fiscal year — the recipient/contractor-name counterpart to usaspending_by_district, deferred from that table's build as "materially heavier" until a cheaper mechanism was confirmed live: USAspending's spending_by_category/recipient endpoint accepts a place_of_performance_locations filter shaped {country, state, district_current} and returns a server-side pre-aggregated, pre-ranked (descending by amount) recipient list in a single unpaginated call per district/year -- no per-award pagination needed, unlike UsaSpendingAwardSearchProvider's mechanism for the broadband_*_awards tables. SCOPE: exactly the top 100 recipients per district per year, matching the API's own page-size ceiling (limit=100 is the max; 500 is rejected as "above max '100'") -- not an attempt at every recipient in a district. A district with concentrated spending is fully captured; one with many small, dispersed recipients below the 100th rank is not. An aggregate "MULTIPLE RECIPIENTS" row (null recipient_id/uei/duns) appears in most districts for sub-reporting- threshold transactions USAspending itself buckets together, and is kept as a real ranked row. recipient_duns is the endpoint's "code" field (9-digit legacy DUNS-shaped identifier); recipient_uei is USAspending's own UEI when known; recipient_id is USAspending's internal recipient hash (present even when DUNS/UEI are not, except for the MULTIPLE RECIPIENTS aggregate). cd_fips matches geo.congressional_districts.cd_fips exactly, decoded the same way as usaspending_by_district. YEAR SCOPE: defaults to the 2 most recent complete fiscal years (usaspending_recipient_district_year_range), narrower than usaspending_by_district's 2018-present default -- this table makes one API call per (year, district) versus that table's 3 calls per year total, so a full 2018-present backfill is ~442x heavier; GOVDATA_START_YEAR overrides for a wider backfill when wanted. Joins to geo.congressional_districts via cd_fips. Source: api.usaspending.gov/api/v2/search/spending_by_category/recipient/ (plus one spending_by_geography call per year to enumerate current districts, matching usaspending_by_district's own district list rather than a hard-coded one).
| Column | Type | Null | Description |
|---|---|---|---|
cd_ |
string | no | 4-digit congressional district code (state FIPS + district number), matches geo.congressional_districts.cd_fips |
state_ |
string | yes | 2-letter USPS state abbreviation, decoded from USAspending's display_name |
district_ |
string | yes | District number as text (e.g. "04"); "00" means an at-large single-district state, "98" means a non-voting delegate district (DC, Puerto Rico, Guam, U.S. Virgin Islands, American Samoa, Northern Mariana Islands) |
rank |
integer | no | Position (1-100) in USAspending's own descending-by-amount recipient ranking for this district/year |
recipient_ |
string | yes | Recipient/contractor name as reported by USAspending; "MULTIPLE RECIPIENTS" is USAspending's own aggregate bucket for sub-reporting-threshold transactions. Check is_aggregate_recipient rather than string-matching this column directly (D-280) — a naive ORDER BY obligated_amount DESC per district otherwise returns this bucket at rank 1 for the largest-total districts, reading as a single dominant contractor when it is really an aggregation artifact. |
recipient_ |
string | yes | USAspending's internal recipient hash identifier (e.g. "edc402f7-...-C"); null for the MULTIPLE RECIPIENTS aggregate |
recipient_ |
string | yes | SAM.gov Unique Entity Identifier (12-character alphanumeric), when known |
recipient_ |
string | yes | Legacy 9-digit DUNS-shaped identifier (USAspending's "code" field), when known |
is_ |
boolean | no | True when recipient_name is USAspending's "MULTIPLE RECIPIENTS" aggregate bucket rather than a real, individually-identified recipient (D-280). Filter this out (or handle separately) before ranking recipients by obligated_amount. |
obligated_ |
double | yes | Aggregated obligations for this recipient in this district/fiscal year (USD), all award types |
usaspending_contract_recipients_by_district · table¶
Top 100 procurement-contract recipients by obligated dollar amount for each place-of-performance congressional district x fiscal year — the contracts-only counterpart to usaspending_recipients_by_district. The ranking is computed server-side by USAspending's spending_by_category/recipient endpoint over contract and IDV award types only (award_type_codes A, B, C, D, IDV_A-IDV_E; the same set as usaspending_by_district.obligated_amount_contracts), so grant, direct-payment and loan recipients never occupy a rank. Use this table, not usaspending_recipients_by_district, for "which contractors dominate a district" questions; the all-award-types table ranks universities, health systems and benefit administrators alongside contractors. Same columns, same request shape and same top-100 ceiling (the API's page-size maximum) as usaspending_recipients_by_district: a district with concentrated contract spending is fully captured, one with many small dispersed contractors below the 100th rank is not. An aggregate "MULTIPLE RECIPIENTS" row (null recipient_id/uei/duns) is USAspending's own bucket for sub-reporting-threshold transactions; it is kept as a ranked row and flagged by is_aggregate_recipient. recipient_duns is the endpoint's "code" field (9-digit legacy DUNS-shaped identifier); recipient_uei is USAspending's own UEI when known; recipient_id is USAspending's internal recipient hash. cd_fips matches geo.congressional_districts.cd_fips exactly. A district's obligated_amount here is not bounded by usaspending_by_district.obligated_amount_contracts for that district/year: the district total nets every recipient's transactions, including large downward de-obligations from recipients outside this table's top 100, while each row here is one recipient's own gross positive sum. YEAR SCOPE: defaults to the 2 most recent complete fiscal years (usaspending_recipient_district_year_range); one API call per (year, district), so GOVDATA_START_YEAR widens it at ~8 minutes per added year. Joins to geo.congressional_districts via cd_fips. Source: api.usaspending.gov/api/v2/search/spending_by_category/recipient/ (plus one spending_by_geography call per year to enumerate current districts).
| Column | Type | Null | Description |
|---|---|---|---|
cd_ |
string | no | 4-digit congressional district code (state FIPS + district number), matches geo.congressional_districts.cd_fips |
state_ |
string | yes | 2-letter USPS state abbreviation, decoded from USAspending's display_name |
district_ |
string | yes | District number as text (e.g. "04"); "00" means an at-large single-district state, "98" means a non-voting delegate district (DC, Puerto Rico, Guam, U.S. Virgin Islands, American Samoa, Northern Mariana Islands) |
rank |
integer | no | Position (1-100) in USAspending's own descending-by-amount contracts-only recipient ranking for this district/year |
recipient_ |
string | yes | Recipient/contractor name as reported by USAspending; "MULTIPLE RECIPIENTS" is USAspending's own aggregate bucket for sub-reporting-threshold transactions. Check is_aggregate_recipient rather than string-matching this column directly (D-280) — a naive ORDER BY obligated_amount DESC per district otherwise returns this bucket at rank 1 for the largest-total districts, reading as a single dominant contractor when it is really an aggregation artifact. |
recipient_ |
string | yes | USAspending's internal recipient hash identifier (e.g. "edc402f7-...-C"); null for the MULTIPLE RECIPIENTS aggregate |
recipient_ |
string | yes | SAM.gov Unique Entity Identifier (12-character alphanumeric), when known |
recipient_ |
string | yes | Legacy 9-digit DUNS-shaped identifier (USAspending's "code" field), when known |
is_ |
boolean | no | True when recipient_name is USAspending's "MULTIPLE RECIPIENTS" aggregate bucket rather than a real, individually-identified recipient (D-280). Filter this out (or handle separately) before ranking recipients by obligated_amount. |
obligated_ |
double | yes | Aggregated obligations for this recipient in this district/fiscal year (USD), contract and IDV award types only |
entitlement_spending_by_state · table¶
Social Security and Medicare spending by place-of-performance state x fiscal year, isolated by CFDA/assistance-listing number rather than derived from usaspending_by_state's award-type totals — the entitlement-program counterpart to that table and to ssa_benefits_by_geography (which carries SSA's own county-grain administrative beneficiary/program detail but lags further due to its Wayback-archive dependency). One row per state x program x fiscal year: social_security_retirement (CFDA 96.002, SSA Old-Age and Survivors Insurance), medicare_hospital_insurance (CFDA 93.773, Medicare Part A), medicare_supplementary_medical_insurance (CFDA 93.774, Medicare Part B) — one POST per program per fiscal year against filters.program_numbers, same endpoint and geo_layer=state scope as usaspending_by_state. Social Security's per-state totals reflect the beneficiary's actual state. The two Medicare programs inherit the same place-of-performance distortion documented on usaspending_by_state's obligated_amount_excl_loans_excl_cms_admin column: CMS-funded awards report place of performance at the Medicare Administrative Contractor's location, not the beneficiary's, so states hosting a MAC (e.g. ND/Noridian, MN, IN, KY, PA, SC, CT) show implausibly large totals relative to population — confirmed live at FY2025 scale for both Medicare programs here. Not an import defect; use ssa_benefits_by_geography or a per-capita/population -normalized read for a beneficiary-state view of Medicare spending. 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 |
program |
string | no | social_security_retirement (CFDA 96.002), medicare_hospital_insurance (CFDA 93.773), or medicare_supplementary_medical_insurance (CFDA 93.774) |
cfda_ |
string | no | CFDA / assistance-listing number the row's program_numbers filter used |
obligated_ |
double | yes | Aggregated obligations for the fiscal year (USD) for this program, place of performance. See table comment for the Medicare Administrative Contractor place-of-performance caveat. |
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 program is split across several year-range CSVs on the source site (year is a data column, not a partition), all streamed and concatenated by SbaLoansProvider. Reissued quarterly, so the whole program partition is overwritten each run. Joins to geo.state_ref via borrower_state. Source: data.sba.gov 7(a)-504 FOIA. borrower_name and lender_name are unstructured — this table carries no EIN column, so there is no exact hub-key join. ref.canonical_org_entity carries each as an already-resolved identity (sba_borrower_name, sba_lender_name, each with an LEI when matched); join there on the name rather than re-running a fuzzy match against gleif_entities.legal_name by hand.
| Column | Type | Null | Description |
|---|---|---|---|
borrower_ |
string | yes | Borrower business name — resolved identity at ref.canonical_org_entity.sba_borrower_name |
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 (ApprovalFY) |
delivery_ |
string | yes | SBA delivery/processing method (ProcessingMethod) |
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) |
broadband_reconnect_awards · table¶
USDA ReConnect (CFDA 10.752) award-level broadband infrastructure grants and loan-grant combinations — one row per award, with recipient, dollar amount, performance period, and recipient location (county-grain via county_fips). A full crawl each run (not year-partitioned): the award-search endpoint has no reliable date-filter parameter that matches how award records are dated (obligation vs. performance-start vary by award), and the whole result set is small enough (low hundreds of awards) that a full refresh is cheap. Closes the ReConnect third of the "federal broadband award geography" sourcing gap — BEAD is the sibling broadband_bead_state_allocations table (state-grain only); RDOF/CAF-II are FCC/USAC-administered, not CFDA awards, so they aren't reachable through this endpoint at all (CAF-II location data is instead sourced from USAC's own open-data platform, see broadband_caf_deployment_locations). Source: api.usaspending.gov/api/v2/search/spending_by_award/ (program_numbers filter, award types 02/03/04/05 — grants only, no contracts/loans in this program).
| Column | Type | Null | Description |
|---|---|---|---|
cfda_ |
string | no | CFDA/Assistance Listing number (10.752 = USDA ReConnect) |
award_ |
string | no | USAspending award identifier (PK) |
recipient_ |
string | yes | Award recipient (utility, cooperative, municipality, tribal entity, etc.) |
award_ |
double | yes | Award amount (USD) |
start_ |
string | yes | Period-of-performance start date (YYYY-MM-DD) |
end_ |
string | yes | Period-of-performance end date (YYYY-MM-DD) |
awarding_ |
string | yes | Awarding federal agency (USDA Rural Utilities Service) |
description |
string | yes | Award description as filed by the awarding agency |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
county_ |
string | yes | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | Recipient county name as reported by USAspending |
city_ |
string | yes | Recipient city |
zip5 |
string | yes | Recipient 5-digit ZIP |
broadband_arra_awards · table¶
ARRA (American Recovery and Reinvestment Act, 2009) broadband stimulus award-level grants — one row per award, with recipient, dollar amount, performance period, and recipient location (county-grain via county_fips). Covers both ARRA broadband programs: NTIA's Broadband Technology Opportunities Program (BTOP, CFDA 11.557, middle-mile/institutional/public-computing infrastructure) and RUS's Broadband Initiatives Program (BIP, CFDA 10.855, last-mile rural infrastructure). DQ-validated 2026-09-11: real awards under both programs (e.g. BTOP's EAGLE-NET ALLIANCE, $100.6M, Broomfield County CO; BIP awards to rural school districts and health clinics). Closes the ARRA third of the "federal broadband award geography" sourcing gap alongside broadband_reconnect_awards (ReConnect) and broadband_bead_state_allocations (BEAD, state-grain only); RDOF/CAF-II remain FCC/USAC-administered, not CFDA awards — see broadband_high_cost_disbursements (carrier/state grain — RDOF has no address-level source publicly available) and broadband_caf_deployment_locations. A one-time, closed-out 2009-2011 program: full crawl each run (not year-partitioned), whole result set small enough (low thousands of awards across both CFDA numbers, DQ-confirmed: 241 for 11.557 + 2,454 for 10.855) that a full refresh is cheap. Source: api.usaspending.gov/api/v2/search/spending_by_award/ (program_numbers filter, award types 02/03/04/05 — grants only, no contracts/loans in either program).
| Column | Type | Null | Description |
|---|---|---|---|
cfda_ |
string | no | CFDA/Assistance Listing number (11.557 = NTIA BTOP, 10.855 = RUS BIP) |
award_ |
string | no | USAspending award identifier (PK) |
recipient_ |
string | yes | Award recipient (utility, cooperative, municipality, tribal entity, health/education institution, etc.) |
award_ |
double | yes | Award amount (USD) |
start_ |
string | yes | Period-of-performance start date (YYYY-MM-DD) |
end_ |
string | yes | Period-of-performance end date (YYYY-MM-DD) |
awarding_ |
string | yes | Awarding federal agency (Department of Commerce/NTIA for BTOP, USDA Rural Utilities Service for BIP) |
description |
string | yes | Award description as filed by the awarding agency |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
county_ |
string | yes | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | Recipient county name as reported by USAspending |
city_ |
string | yes | Recipient city |
zip5 |
string | yes | Recipient 5-digit ZIP |
usaspending_bridge_awards · table¶
FHWA bridge-specific award-level grants from USAspending — one row per award, with recipient, dollar amount, performance period, and recipient location (county-grain via county_fips; state_abbr supports GROUP BY state totals). Covers the IIJA Bridge Formula Program (CFDA 20.263, formula funds apportioned to every state DOT for bridge replacement/rehabilitation) and the discretionary Bridge Investment Program (CFDA 20.264, competitive large -bridge awards). DQ-validated 2026-09-14: real large bridge projects (e.g. CFDA 20.263's Vincent Thomas Bridge deck replacement in Los Angeles County CA, $152.6M; CFDA 20.264's Brent Spence Bridge Corridor OH/KY, $400M). recipient_name/state_abbr/county_fips are the state DOT's registered address, not necessarily the bridge's physical location — the same convention as this table's sibling USAspending award tables (broadband_reconnect_awards, broadband_arra_awards); the award description usually names the specific bridge/corridor. Closes the program-level counterpart to usaspending_by_state (which carries only an undifferentiated per-state total with no program breakdown): filtering this table to cfda_number = '20.263' isolates Bridge Formula Program dollars per state, the gap this table was built for. A full crawl each run (not year-partitioned): the award-search endpoint has no reliable date-filter parameter that matches how award records are dated (obligation vs. performance-start vary by award), and the result set is small enough (low thousands of awards across both CFDA numbers, DQ-confirmed: 3,380 for 20.263 + 33 for 20.264) that a full refresh is cheap. The Competitive Highway Bridge Program (CFDA 20.267) and Competitive Type 3 Highway Bridge Program (20.198) exist in the CFDA catalog but had zero awarded grants as of 2026-09-14 — not included here; add them if/when they start awarding. Source: api.usaspending.gov/api/v2/search/spending_by_award/ (program_numbers filter, award types 02/03/04/05 — grants only, no contracts/loans in either program).
| Column | Type | Null | Description |
|---|---|---|---|
cfda_ |
string | no | CFDA/Assistance Listing number (20.263 = Bridge Formula Program, 20.264 = Bridge Investment Program) |
award_ |
string | no | USAspending award identifier (PK) |
recipient_ |
string | yes | Award recipient (state DOT for nearly all awards in both programs) |
award_ |
double | yes | Award amount (USD) |
start_ |
string | yes | Period-of-performance start date (YYYY-MM-DD) |
end_ |
string | yes | Period-of-performance end date (YYYY-MM-DD) |
awarding_ |
string | yes | Awarding federal agency (Department of Transportation/FHWA for both programs) |
description |
string | yes | Award description as filed by the awarding agency (typically names the specific bridge/corridor) |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
county_ |
string | yes | 5-digit county FIPS code (FK to geo.counties) |
county_ |
string | yes | Recipient county name as reported by USAspending |
city_ |
string | yes | Recipient city |
zip5 |
string | yes | Recipient 5-digit ZIP |
broadband_bead_state_allocations · table¶
NTIA Broadband Equity, Access, and Deployment program (CFDA 11.035) prime grant awards — one row per state/territory broadband office, since BEAD's federal award record is state-grain only: each state gets one lump-sum grant which it then sub-awards to individual ISPs by county/project area, and those sub-awards are not themselves federal-award records reachable from this endpoint (confirmed live: this table has on the order of 56 rows, one per state/territory/DC, not the thousands a county-level table would have). Useful for state-level BEAD allocation totals; does NOT close the county-grain half of the "federal broadband award geography" sourcing gap — see broadband_reconnect_awards and broadband_caf_deployment_locations for the two programs with real sub-state grain. Source: api.usaspending.gov/api/v2/search/spending_by_award/ (program_numbers filter, award types 02/03/04/05).
| Column | Type | Null | Description |
|---|---|---|---|
cfda_ |
string | no | CFDA/Assistance Listing number (11.035 = NTIA BEAD) |
award_ |
string | no | USAspending award identifier (PK) |
recipient_ |
string | yes | Award recipient (state/territory broadband office or commission) |
award_ |
double | yes | Award amount (USD) |
start_ |
string | yes | Period-of-performance start date (YYYY-MM-DD) |
end_ |
string | yes | Period-of-performance end date (YYYY-MM-DD) |
awarding_ |
string | yes | Awarding federal agency (NTIA) |
description |
string | yes | Award description as filed by NTIA |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
city_ |
string | yes | Recipient (state broadband office) city |
zip5 |
string | yes | Recipient 5-digit ZIP |
broadband_caf_deployment_locations · table¶
FCC Connect America Fund Phase II (CAF-II) subsidized broadband buildout — one row per deployed location (near-address grain: lat/long, street address, and 15-digit census_block, whose first 5 digits are the county FIPS), filed annually by the carrier as it completes buildout milestones. Sourced from USAC's own open-data platform (opendata.usac.org, dataset r59r-rpip — the same underlying "CAF Map" data usaspending itself can't reach, since CAF-II is an FCC/USAC Universal Service Fund disbursement, not a CFDA federal-assistance award), filtered to fund_type IN ('CAF II', 'CAF II Auc') — this dataset also carries ACAM/ACAM II/CAF-BLS/RBE/AK Plan rows for other high-cost programs, out of scope here. RDOF rows do not yet appear in this feed (RDOF winners are still mid-buildout under a 10-year plan; only carrier-level disbursement/location-count totals exist for RDOF today, not individual addresses) — closes the CAF-II third of the "federal broadband award geography" sourcing gap, not RDOF. ~4.8M rows across 2015-2025 (2016-2021 the heaviest reporting years). Joins to geo.counties by taking the first 5 digits of census_block.
| Column | Type | Null | Description |
|---|---|---|---|
fund_ |
string | yes | 'CAF II' (annual model-based support) or 'CAF II Auc' (Auction 903 support) |
study_ |
string | yes | Carrier's FCC study area code (operating territory identifier) |
holding_ |
string | yes | Parent holding company |
carrier |
string | yes | Reporting carrier/operating company name |
latitude |
double | yes | Deployed location latitude |
longitude |
double | yes | Deployed location longitude |
deployment_ |
string | yes | Street address of the deployed location |
deployment_ |
string | yes | |
deployment_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
deployment_ |
string | yes | |
deployment_ |
string | yes | Date the location was reported as built out (may be a filing-period marker, not a literal construction date) |
census_ |
string | yes | 15-digit Census block GEOID; first 5 digits are the county FIPS (FK to geo.counties) |
locations_ |
integer | yes | Location count for this row (almost always 1; occasionally >1 for a multi-unit filing) |
speed_ |
string | yes | Reported speed tier (e.g. '25 Mbps/3 Mbps') |
technology |
string | yes | |
filing_ |
integer | yes | Year the carrier filed this deployment record |
broadband_high_cost_disbursements · table¶
Federal Universal Service Fund high-cost-program disbursements at Eligible Telecommunication Carrier (ETC) x month grain, from USAC's own open-data platform (opendata.usac.org, dataset w6qn-gx72). Covers every current-generation high-cost program's dollar flows to individual carriers by month: RDOF, CAF-II (annual + Auction 903), ACAM/ACAM-II, CAF-BLS (Broadband Loop Support), the Alaska Plan, RBE (Rural Broadband Experiments), and legacy programs (HCL, HCM, ICLS, IAS, Mobility I, LSS, SNA) still paying out on prior obligations. Together with fiscal.broadband_caf_deployment_locations (CAF-II served addresses), fiscal.broadband_reconnect_awards (USDA ReConnect), and fiscal.broadband_bead_state_allocations (NTIA BEAD) this is the fourth broadband-program table — carrier/state grain, not the county/tract grain the "federal broadband award geography" gap originally asked for (RDOF has no address-level source publicly available today; winners are still mid-buildout under a 10-year plan). Joins to sibling broadband tables by study_area_code. Source: opendata.usac.org/resource/w6qn-gx72.json.
| Column | Type | Null | Description |
|---|---|---|---|
form_ |
string | yes | Carrier's USAC Form 498 filer identifier (payee identifier). NULL on genuine zero-disbursement rows for a study area with no filed Form 498 that period (amount_disbursed=0 on every such row) — study_area_code, not this column, is the identifier guaranteed present on every row. |
study_ |
string | yes | FCC study area code (join key to broadband_caf_deployment_locations.study_area_code) |
study_ |
string | yes | Study area / operating company name |
state |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
disbursement_ |
integer | yes | Calendar year of disbursement (matches partition year; kept as a real column for filtering across years) |
disbursement_ |
integer | yes | Calendar month of disbursement (1-12) |
fund_ |
string | yes | USF high-cost program code. Current-generation broadband programs: RDOF (Rural Digital Opportunity Fund), CAFII (CAF Phase II annual model-based), CAFII AUC (CAF Phase II Auction 903), ACAM / ACAMII / EACAM (Alternative Connect America Cost Model), CAF-BLS/BLS (Broadband Loop Support), AK PLAN (Alaska Plan), RBE (Rural Broadband Experiments). Legacy programs still paying out: HCL/HCM/ICC/ICLS/IAS/IS/LSS/Mobility I/SNA/SVS/FHCS/CACM. Also PR Fixed/PR Mobile/USVI Fixed/USVI Mobile for the territories. |
amount_ |
double | yes | Monthly disbursement to this carrier under this program (USD) |
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) |
snap_benefits_by_geography · table¶
SNAP (Supplemental Nutrition Assistance Program) persons/households participating and total/average monthly benefits, by state x year x month — the nutrition- assistance counterpart to ssa_benefits_by_geography's income-benefits data, both geo-keyed and comparable against usaspending_by_state. USDA FNA publishes one zip covering FY1989-present (one workbook per fiscal year inside), not a per-year URL, so this table has no year fetch dimension — the provider parses the full history from one download and materialize partitions by the year column found in each row, same as fiscal's other single-workbook bulk sources. Excludes P-EBT (Pandemic EBT) figures, which USDA reports separately. FY2019 (Oct 2018-Sep 2019) carries a source-published distortion: because of the partial federal government shutdown, most February 2019 benefits were issued in January 2019, so month 1 of FY2019 shows roughly double a normal month's total_benefits_usd and month 2 shows almost none, and the per-state fiscal-year Total row (month IS NULL) averages persons and households over those two months as published, which pulls the FY2019 average persons_participating below the surrounding months.
| Column | Type | Null | Description |
|---|---|---|---|
state_ |
string | no | 2-digit state FIPS code (FK to geo.state_ref) |
state_ |
string | yes | 2-letter USPS state code (FK to geo.state_ref) |
state_ |
string | yes | State name, exactly as the workbook's block-header row spells it |
year |
integer | no | Federal fiscal year (Oct-Sep) |
month |
integer | yes | Calendar month (1-12); null for the per-state fiscal-year Total row |
persons_ |
long | yes | Average monthly persons receiving SNAP benefits |
households_ |
long | yes | Average monthly households receiving SNAP benefits |
total_ |
double | yes | Total SNAP benefits issued, USD |
avg_ |
double | yes | Average monthly benefit per person, USD |
avg_ |
double | yes | Average monthly benefit per household, USD |
omb_apportionments · table¶
OMB-approved apportionments (SF-132 schedules) for every federal budget account, one row per schedule line of each approval iteration, by fiscal year FY2022-present. Apportionment is the step where OMB releases appropriated budget authority to an agency by quarter or by project, so this is where withheld, deferred or footnoted-away funds show up: the free-text footnote_text column carries OMB's conditions on the money, including language withholding funds pending review and proposed-rescission or deferral notices. It is the account-level counterpart to mts_outlays_by_function and federal_outlays_by_function, which stop at function totals. Key by (tafs_iteration_id, line_number, line_split); a later iteration of the same account (iteration) restates the whole schedule, so compare iterations rather than summing them. line_number is the SF-132 line (1000 = unobligated balance brought forward, 1100/1200 = appropriations, 1920 = total budgetary resources, 6001-6004 = category A apportioned by quarter, 6190 = total budgetary resources available); approved_amount is in dollars as published. begin_poa/end_poa are the period of availability years and availability_type_code is 'X' for no-year money. A footnote no line references is kept as a row with null line_number. Covers OMB apportionment actions only: GAO Impoundment Control Act decisions and the rescission packages transmitted to Congress are separate publications and are not in this table. Source: apportionment-public.max.gov, the JSON rendition of each posted apportionment.
| Column | Type | Null | Description |
|---|---|---|---|
file_ |
long | no | OMB file id of the apportionment document; several accounts can share one file |
file_ |
string | yes | Source file name, which embeds agency, bureau, TAFS, iteration and approval time |
folder |
string | yes | Agency folder the document is filed under on the site |
approval_ |
string | yes | OMB approval time as published (YYYY-MM-DD-HH.MM.SS.micros) |
approver_ |
string | yes | Title of the OMB official who approved the apportionment |
funds_ |
string | yes | The appropriation act or authority providing the funds, as published |
budget_ |
string | yes | |
budget_ |
string | yes | |
account_ |
string | yes | Treasury account title |
cgac_ |
string | yes | 3-digit CGAC agency code of the Treasury account |
cgac_ |
string | yes | 4-digit main account code of the Treasury account |
allocation_ |
string | yes | Agency code of the receiving agency when the account is an allocation |
allocation_ |
string | yes | |
begin_ |
string | yes | First year of availability (beginning period of availability) |
end_ |
string | yes | Last year of availability (ending period of availability) |
availability_ |
string | yes | 'X' for no-year (unlimited) availability; null when begin_poa/end_poa carry the period |
iteration |
string | yes | Apportionment iteration number for the account this fiscal year |
tafs_ |
long | yes | OMB id of the account-iteration; groups all lines of one schedule |
line_ |
string | yes | SF-132 line number, or a marker such as IterNo/RptCat/AdjAut; null on an unreferenced-footnote row |
line_ |
string | yes | Line qualifier (for example ME for mandatory-exempt, YES/NO flags) |
line_ |
string | yes | |
approved_ |
double | yes | Amount on the line in dollars as published; null on an unreferenced-footnote row |
footnote_ |
string | yes | Footnote reference on the line, or the footnote's own number on an unreferenced-footnote row |
footnote_ |
string | yes | OMB's full footnote text, including conditions on or withholding of the funds |
govt_finance_by_unit · table¶
State & local government finance from Census's annual "Individual Unit File" — one row per government unit x finance item code x year (long/tall layout: amount_thousands is the single fact, item_code the dimension). The landing page (census.gov/data/datasets/{year}/econ/local/public-use-datasets.html) is read by GovtFinanceProvider, which discovers and streams the actual ZIP link (filename is neither year-templatable nor stable — confirmed live: 2023_Individual_Unit_Files.zip vs 2021_Individual_Unit_File.zip, singular/plural and casing both vary), then streams the fixed-width data file inside it (records are 32 chars for 2017+ and 34 for 2012-2016, whose ID field is two characters wider). item_code follows the Census government finance classification manual (2006_classification_manual.pdf); notable codes for capital-vs-operating comparisons: E12/F12 (elementary- secondary education current operations / construction), E36/F36 (hospitals current operations / construction), E61/F61 (parks & recreation current operations / construction). Local water and sewer utilities: A91 water supply utility revenue (charges billed to customers) and A80 sewerage charges, with E91/E80 the matching operating expenditure and F91/F80 construction; A81/E81 are solid waste. These give what each city, county, township or special district collects and spends on water and sewer service per year (2022: ~20k units report A91) — dollar totals, not per-customer rates or tariffs. For a per-person comparison, divide by the local population (geo/census tables via county_fips; environment.drinking_water has population_served_count per water system but shares no key with government units). For the national trend in water/sewer prices see the CPI series CUUR0000SEHG02 in econ.inflation_metrics. There is no single item code for "Total Taxes" — T01 is Property Tax specifically (the classification manual's largest single tax category, not an aggregate); a total-taxes figure for a unit or state requires summing every T-prefixed row (T01, T09-T16, T19-T29, T40, T41, T50, T51, T53, T99) grouped by (state_fips, year), or by (state_fips, gov_type_code, year) for a level breakdown — summing T01 alone understates total tax revenue by an amount that depends entirely on how heavily that state's governments rely on property tax versus sales/income/other taxes. gov_type_code: 0=state, 1=county, 2=city, 3=township, 4=special district, 5=independent school district (3rd digit of the source ID field). unit_id is that government's unique identifier within (state_fips, gov_type_code, county_fips) — not globally unique alone. county_fips is the county OR county-type area the unit is located in; for state-level rows (gov_type_code=0) this is not a valid geo.counties FIPS. county_fips is a FIPS code for every year: the 2012-2016 files' own ID county field is a Census county sequence number, not FIPS, so GovtFinanceProvider looks up the real FIPS county per unit from the Fin_GID identifier file bundled in the same ZIP. amount_thousands is in THOUSANDS of dollars and may be negative (debt retirements, etc.). This is a stratified sample survey of government units (large governments fully enumerated, smaller ones sampled) even in Census-of-Governments years (2012/2017/2022) — a raw per-state sum over the units present in this table is not guaranteed to equal that state's true total; cross-validate a state-level dollar aggregate against Census's own state-level crosstab file (NNstatetypepu.txt, bundled in each year's ZIP) before relying on it. state_fips is a FIPS code for every year: the 2012-2016 files number states with Census's own alphabetical codes (01-51, District of Columbia 09), which GovtFinanceProvider translates. Source (per year): census.gov/data/datasets/{year}/econ/local/public-use-datasets.html.
| Column | Type | Null | Description |
|---|---|---|---|
state_ |
string | no | 2-digit state FIPS code (FK to geo.state_ref) |
gov_ |
string | no | 3rd digit of source ID (0=state,1=county,2=city,3=township,4=special district,5=school district) |
gov_ |
string | yes | Decoded gov_type_code label |
county_ |
string | no | County or county-type area FIPS the unit is located in (source ID positions 4-6 for 2017+; looked up from the same ZIP's Fin_GID file for 2012-2016, whose ID field carries a Census county sequence number instead). NOT a valid geo.counties key for state-level rows (gov_type_code=0); see the FK comment below. |
unit_ |
string | no | Government unit identifier (source ID positions 7-12), unique within (state_fips, gov_type_code, county_fips) |
item_ |
string | no | Finance item code (Census government finance classification manual), e.g. E12/F12 education, E36/F36 hospitals, E61/F61 parks & recreation |
amount_ |
long | yes | Amount for this item code, in thousands of dollars (may be negative) |
imputation_ |
string | yes | Imputation type / item data flag (source position 32) |
state_corporate_income_tax_collections · table¶
Census Bureau Annual Survey of State Government Tax Collections (STC), ITEM_CODE=T41 ("Corporation Net Income Taxes") only — do not confuse with T40 (individual income tax; confirmed live, CA 2024 T40 = $123.1B vs T41 = $41.4B). One row per state x tax year, 50 states + DC (no territories — confirmed live: for=state:72 (Puerto Rico) returns no data). collections_thousands is in THOUSANDS of dollars and is NULL (not zero) for a state with no general corporate net income tax that year — confirmed live for 2024: Texas, Nevada, Washington, and Wyoming are NULL; South Dakota has no broad corporate income tax but its financial-institution franchise tax IS captured under T41 and returns a real value ($60.7M for 2024), so "NULL" means "no T41-classified tax," not "no state tax revenue at all." Source (per state per year): api.census.gov/data/timeseries/govsstatetax — this endpoint's for=state:* wildcard is unsupported (confirmed live: every combination of ITEM_CODE filter, get= field list, and for=state:* returned HTTP 204 with no body across the published 2016-2025 range), so each state is fetched with an explicit FIPS code. GOVTYPE and AGG_DESC are requested in the URL but not materialized as columns: both are constant for this item code (GOVTYPE=002 state government, AGG_DESC=STC017) and the API silently 204s the whole query if either is dropped from get= alongside an ITEM_CODE filter (confirmed live) — they stay in the URL as required request parameters only.
| Column | Type | Null | Description |
|---|---|---|---|
state_ |
string | no | 2-digit state FIPS code (FK to geo.state_ref) |
state_ |
string | yes | State name, as published (Census STC NAME field) |
geo_ |
string | yes | Census geography identifier, e.g. 0400000US06 for California |
collections_ |
long | yes | Corporation net income tax (ITEM_CODE=T41) collections for the fiscal year, in THOUSANDS of dollars (Census STC AMOUNT field, label "Amount ($1,000)"). NULL for a state with no T41-classified tax that year (see table comment), not a missing observation. |
state_minimum_wage_history · table¶
DOL Wage and Hour Division's published "Changes in Basic Minimum Wages in Non-Farm Employment Under State Law" table (selected years, 1968 to present) — one row per jurisdiction x published year. The single page (dol.gov/agencies/whd/state/minimum-wage/history) holds six HTML tables spanning disjoint "selected years" (1968-1981, 1988-1998, then every year 2000-present); years NOT shown on the page (e.g. 1969, 1973-1975, 1982-1987) are simply absent from this table, not a gap in ETL coverage. 55 jurisdictions per year: "Federal (FLSA)" (jurisdiction_type=FEDERAL), the 50 states (STATE), District of Columbia (DISTRICT), and Guam/Puerto Rico/U.S. Virgin Islands (TERRITORY — not in geo.state_ref, so state_fips is null for these three and for the FEDERAL row). raw_wage_text preserves DOL's own cell text verbatim, including its inconsistencies ("N.A." vs "NA", inconsistent "$" prefixing, a stray source typo like "4..65(g,,j)") — wage_amount (a clean hourly USD figure) is populated ONLY for the unambiguous single-value case (value_type=SINGLE); ranges (value_type=RANGE, e.g. a tipped-vs-standard spread), dual-track values (value_type=DUAL_TRACK, e.g. the pre-1978 multi-track FLSA system or a state's two-tier law), "..." (NOT_APPLICABLE — no separate jurisdiction law that year), "N.A."/"NA" (NOT_AVAILABLE), and anything else unparseable (OTHER, e.g. a non-hourly "/day" or "/wk" rate) are left null in wage_amount by design, never guessed — see raw_wage_text for the ground truth in every case. increased_from_prior_column reflects DOL's own bolding convention (its key states: "wage rates in bold indicate an increase over the previous year's rate" — the previous YEAR SHOWN, which is not always the previous calendar year before 2000). footnote_codes carries the raw trailing footnote marker(s) from inside a SINGLE cell's "[ ]"/"( )" (DOL's own lettered key on the source page defines them; not reproduced here since the definitions are not per-row data). dol.gov 403s every direct fetch from this build environment (a domain-wide Akamai edge block, confirmed even at the site root) — the same failure mode already solved in this schema for ssa_benefits_by_geography, so StateMinWageTransformer follows that precedent and fetches the page via the Wayback Machine (FiscalHttp.fetchViaWayback) rather than dol.gov directly; source.url below is the nominal/documentary URL, not what is actually requested. DOL updates this page roughly annually (a new year column appended each January); dataset_type=snapshot re-fetches and replaces the whole table on every run since the fetch is a single small page.
| Column | Type | Null | Description |
|---|---|---|---|
year |
INTEGER | no | |
jurisdiction_ |
string | no | Raw jurisdiction label as published: "Federal (FLSA)", a state name, "District of Columbia", "Guam", "Puerto Rico", or "U.S. Virgin Islands" |
jurisdiction_ |
string | no | FEDERAL | STATE | DISTRICT | TERRITORY |
state_ |
string | yes | 2-digit Census state FIPS (FK to geo.state_ref); populated only for jurisdiction_type STATE/DISTRICT — null for FEDERAL and TERRITORY rows (Guam/Puerto Rico/U.S. Virgin Islands are not in geo.state_ref) |
raw_ |
string | no | Exact published cell text for this jurisdiction x year, verbatim (see table comment) |
wage_ |
double | yes | Parsed hourly wage in USD; populated ONLY when value_type=SINGLE — null for RANGE/DUAL_TRACK/NOT_APPLICABLE/NOT_AVAILABLE/OTHER (never a guessed or truncated number — see raw_wage_text) |
value_ |
string | no | SINGLE | RANGE | DUAL_TRACK | NOT_APPLICABLE | NOT_AVAILABLE | OTHER — classification of raw_wage_text |
increased_ |
boolean | no | True when DOL bolded this cell (its own "increase over the previous year's rate" indicator) |
footnote_ |
string | yes | Raw footnote code(s) from inside a SINGLE cell's trailing "[ ]"/"( )", verbatim (comma-separated when multiple); null otherwise. See DOL's published Key section for definitions (not reproduced here) |
usaspending_assistance · table¶
Every federal assistance transaction (grants, cooperative agreements, direct payments, loans, insurance) by federal fiscal year (Oct-Sep; year = the fiscal year of action_date), one row per award action (award x modification), from USAspending's award data archive (all-agency Assistance Full files, FY2007 onward; roughly 6-9 million rows per recent year, about 115 million in all). Carries the recipient (UEI, DUNS, parent, name, address, county and congressional district), the program (cfda_number = Assistance Listing / ALN), the awarding and funding agency, place of performance, period of performance and dollars. federal_action_obligation is additive across rows (sum it for obligations by year, recipient or program); total_obligated_amount and total_outlayed_amount_for_overall_award are cumulative per award and repeated on every row of that award, so take one row per assistance_award_unique_key (the latest action_date) before summing outlays. Outlays are only available as that cumulative per-award figure. Loan rows report the subsidy cost as the obligation and the face value in face_value_of_loan. recipient_uei joins to fac_audits.auditee_uei (Single Audit filings) and cfda_number to fac_federal_awards (see the view fac_awards_vs_usaspending); recipient_duns joins the pre-UEI FAC years; there is no EIN in USAspending, so EIN reaches it through fac_audits. Individuals' awards carry a masked recipient and no UEI. Contracts are not in this table. Source: files.usaspending.gov/award_data_archive (URL resolved through api.usaspending.gov/api/v2/bulk_download/list_monthly_files/).
| Column | Type | Null | Description |
|---|---|---|---|
assistance_ |
string | no | Transaction identifier (PK): one row per award action (award x modification) |
assistance_ |
string | yes | USAspending award identifier; many transaction rows share one award |
award_ |
string | yes | Federal Award Identification Number assigned by the awarding agency (non-aggregate awards) |
modification_ |
string | yes | Modification number of this action (0 = original award) |
award_ |
string | yes | Unique Record Identifier for aggregate (per-recipient-per-period) awards |
sai_ |
string | yes | System for Award Information number |
federal_ |
double | yes | Dollars obligated by this single action (USD); additive across rows. Negative on de-obligations. For loans this is the subsidy cost, not face value |
total_ |
double | yes | Cumulative obligation of the whole award as of the extract, repeated on every row of that award; do not sum across rows |
total_ |
double | yes | Cumulative outlays (dollars actually paid) of the whole award as of the extract, repeated on every row of that award; do not sum across rows. Source carries no per-year outlay flow |
non_ |
double | yes | Non-federal (recipient/cost-share) funding of this action (USD) |
face_ |
double | yes | Face value of the loan for loan actions (USD) |
original_ |
double | yes | Original subsidy cost of the loan (USD) |
action_ |
string | yes | Date of the action (YYYY-MM-DD); its federal fiscal year (Oct-Sep) is the year partition |
period_ |
string | yes | Award period-of-performance start (YYYY-MM-DD) |
period_ |
string | yes | Award current period-of-performance end (YYYY-MM-DD) |
awarding_ |
string | yes | Awarding top-tier agency code (Treasury CGAC) |
awarding_ |
string | yes | Awarding top-tier federal agency |
awarding_ |
string | yes | Awarding sub-tier agency code |
awarding_ |
string | yes | Awarding sub-tier agency |
awarding_ |
string | yes | Awarding office |
funding_ |
string | yes | Funding top-tier agency code |
funding_ |
string | yes | Funding top-tier federal agency (can differ from the awarding agency) |
funding_ |
string | yes | Funding sub-tier agency |
recipient_ |
string | yes | Recipient Unique Entity ID (12 characters). Join key to fac_audits.auditee_uei; USAspending backfills UEI on older records, but individuals and masked recipients have none |
recipient_ |
string | yes | Recipient DUNS number (populated FY2007-FY2021, sparse after). Join key to fac_audits_historic.duns |
recipient_ |
string | yes | Recipient legal name as normalised by USAspending (individuals appear as MULTIPLE RECIPIENTS or redacted) |
recipient_ |
string | yes | Parent organisation UEI |
recipient_ |
string | yes | Parent organisation DUNS |
recipient_ |
string | yes | Parent organisation name |
recipient_ |
string | yes | Recipient country (ISO alpha-3) |
recipient_ |
string | yes | Recipient city |
recipient_ |
string | yes | Recipient 5-digit county FIPS (FK to geo.counties) |
recipient_ |
string | yes | Recipient state (USPS abbreviation) |
recipient_ |
string | yes | Recipient 5-digit ZIP |
recipient_ |
string | yes | Recipient congressional district (current) |
pop_ |
string | yes | Place-of-performance 2-digit state FIPS |
pop_ |
string | yes | Place-of-performance state name |
pop_ |
string | yes | Place-of-performance 5-digit county FIPS (FK to geo.counties) |
pop_ |
string | yes | Place-of-performance county name |
pop_ |
string | yes | Place-of-performance city |
pop_ |
string | yes | Place-of-performance ZIP+4 |
pop_ |
string | yes | Place-of-performance congressional district (current) |
cfda_ |
string | yes | Assistance Listing (CFDA) number, e.g. 93.778; matches fac_federal_awards federal_agency_prefix || '.' || federal_award_extension |
cfda_ |
string | yes | Assistance Listing program title |
funding_ |
string | yes | Notice of funding opportunity number |
assistance_ |
string | yes | Assistance type code (02-05 grants/cooperative agreements, 06 direct payment, 07/08 loans, 09 insurance, 10 direct payment unrestricted, 11 other) |
assistance_ |
string | yes | Assistance type description |
business_ |
string | yes | Recipient business-type codes (comma separated) |
business_ |
string | yes | Recipient business types (state/local government, nonprofit, etc.) |
action_ |
string | yes | Action type code (A new, B continuation, C revision, D adjustment to completed project) |
record_ |
string | yes | Record type (1 aggregate by recipient, 2 non-aggregate, 3 individual recipient) |
transaction_ |
string | yes | Free-text description of the action as filed |
disaster_ |
string | yes | Disaster Emergency Fund codes funding the award (COVID-19, IIJA, etc.) |
usaspending_ |
string | yes | Link to the award on usaspending.gov |
last_ |
string | yes | When USAspending last changed this transaction |
fac_audits · table¶
One row per Single Audit (Uniform Guidance audit of an entity that spent $750,000 or more in federal awards; $1,000,000 from FY2025) filed with the Federal Audit Clearinghouse, audit years 2016 to date, from the FAC current-data bulk file general.csv (about 418,000 audits through October 2026; roughly 37,000-48,000 per year). Carries the auditee (name, address, EIN, UEI), the audit firm, the cognizant and oversight agencies, the opinion and internal-control findings flags and total federal dollars expended. auditee_uei is the placeholder GSA_MIGRATION for audit years 2016-2021 (filed before UEIs); auditee_ein is always present, so those years reach usaspending_assistance through the EIN-to-UEI mapping in the view fac_awards_vs_usaspending. EIN joins exempt_org_990 and ref.canonical_org_entity. Filings arrive up to 9 months after fiscal year end and are amended in place (resubmission_version, resubmission_status), and the file is a full daily extract, so each monthly run replaces the table. Contact people (names, e-mail, phone) are not loaded. Pre-2016 audits are in fac_audits_historic. Source: fac.gov/data/download (app.fac.gov/dissemination/public-data/gsa/full/general.csv).
| Column | Type | Null | Description |
|---|---|---|---|
report_ |
string | no | FAC report identifier (PK of fac_audits); for 2016-2021 filings it embeds the Census id |
auditee_ |
string | yes | Auditee UEI; the literal GSA_MIGRATION for audit years 2016-2021 (filed before UEIs), real UEI from 2022. Use auditee_ein for those years |
audit_ |
integer | yes | Audit year: the fiscal year covered by the audit |
auditee_ |
string | yes | Auditee (recipient of federal awards) name |
auditee_ |
string | yes | Auditee EIN, always present; joins exempt_org_990 and ref.canonical_org_entity |
auditee_ |
string | yes | Auditee street address |
auditee_ |
string | yes | Auditee city |
auditee_ |
string | yes | Auditee state (USPS) |
auditee_ |
string | yes | Auditee ZIP |
auditor_ |
string | yes | Audit firm |
auditor_ |
string | yes | Audit firm EIN |
auditor_ |
string | yes | Audit firm city |
auditor_ |
string | yes | Audit firm state |
auditor_ |
string | yes | Audit firm ZIP |
cognizant_ |
string | yes | Cognizant federal agency prefix (2-digit) |
oversight_ |
string | yes | Oversight federal agency prefix (2-digit) |
date_ |
string | yes | Date the submission record was created |
submitted_ |
string | yes | Date submitted |
fac_ |
string | yes | Date the FAC accepted the filing |
fy_ |
string | yes | Audited fiscal year start |
fy_ |
string | yes | Audited fiscal year end |
audit_ |
string | yes | single-audit, program-specific, or alternative-compliance-examination |
audit_ |
string | yes | annual, biennial, or other |
number_ |
string | yes | Months covered when the period is other |
gaap_ |
string | yes | Auditor opinion type(s) on the financial statements |
is_ |
string | yes | Going-concern paragraph included (Yes/No) |
is_ |
string | yes | Internal-control deficiency disclosed (Yes/No) |
is_ |
string | yes | Material weakness disclosed (Yes/No) |
is_ |
string | yes | Material noncompliance disclosed (Yes/No) |
dollar_ |
double | yes | Threshold separating Type A and Type B programs (USD) |
is_ |
string | yes | Qualified as a low-risk auditee (Yes/No) |
agencies_ |
string | yes | Agency prefixes with prior-year findings (comma separated) |
entity_ |
string | yes | Auditee type (local, state, non-profit, higher-ed, tribal, unknown) |
total_ |
double | yes | Total federal awards expended in the audit year (USD) |
type_ |
string | yes | UG uniform guidance, AL alternative compliance, ... |
is_ |
string | yes | Report is public (t/f) |
data_ |
string | yes | GSA (filed in the new system) or CENSUS (migrated) |
resubmission_ |
string | yes | Version number of this filing |
resubmission_ |
string | yes | most_recent or superseded marker |
is_ |
string | yes | Filing covers multiple EINs (Yes/No) |
is_ |
string | yes | Filing lists additional UEIs (Yes/No) |
is_ |
string | yes | Secondary auditors involved (Yes/No) |
fac_federal_awards · table¶
One row per federal program (Assistance Listing) audited in a Single Audit, audit years 2016 to date (about 7.3 million rows through October 2026; 580,000-930,000 per year), from the FAC current-data bulk file federal_awards.csv. Joins fac_audits on report_id (EIN, auditee name and state live there). The ALN is federal_agency_prefix || '.' || federal_award_extension and matches usaspending_assistance.cfda_number. amount_expended is the program's federal expenditure in the audit year. is_direct = 'Y' rows are prime awards received straight from the agency and can be matched to USAspending; is_direct = 'N' rows are pass-through funds received from a state or other entity and will not match a prime award to the same UEI. Includes cluster, major-program, loan, findings and pass-through-to-subrecipient fields. Same monthly full replacement as fac_audits. Pre-2016 awards are in fac_federal_awards_historic. Source: app.fac.gov/dissemination/public-data/gsa/full/federal_awards.csv.
| Column | Type | Null | Description |
|---|---|---|---|
report_ |
string | no | FAC report identifier (PK of fac_audits); for 2016-2021 filings it embeds the Census id |
auditee_ |
string | yes | Auditee UEI; the literal GSA_MIGRATION for audit years 2016-2021 (filed before UEIs), real UEI from 2022. Use auditee_ein for those years |
audit_ |
integer | yes | Audit year: the fiscal year covered by the audit |
fac_ |
string | yes | Date the FAC accepted the filing |
award_ |
string | no | Award line within the report (PK with report_id) |
federal_ |
string | yes | Assistance Listing agency prefix (2 digits), first part of the ALN |
federal_ |
string | yes | Assistance Listing extension (3 characters), second part of the ALN, e.g. 778 or U01 for an unnamed program |
additional_ |
string | yes | Additional award identification supplied by the auditee |
federal_ |
string | yes | Federal program name |
amount_ |
double | yes | Federal dollars expended on this program in the audit year (USD) |
cluster_ |
string | yes | Program cluster |
other_ |
string | yes | Cluster name when cluster_name is OTHER CLUSTER |
state_ |
string | yes | State cluster name |
cluster_ |
double | yes | Total expended for the cluster (USD) |
federal_ |
double | yes | Total expended for the program across its lines (USD) |
is_ |
string | yes | Audited as a major program (Y/N) |
is_ |
string | yes | Federal loan program (Y/N) |
loan_ |
string | yes | Loan balance outstanding as the auditee typed it (free text in the source: plain numbers, $ and comma formats, N/A, and the GSA_MIGRATION placeholder on migrated rows), so it is not parsed |
is_ |
string | yes | Y when received directly from the federal agency (a prime award that can match USAspending), N when passed through another entity |
audit_ |
string | yes | Auditor opinion on the program (U unmodified, Q qualified, A adverse, D disclaimer) |
findings_ |
integer | yes | Number of audit findings for the program |
is_ |
string | yes | Part of the award was passed through to subrecipients (Y/N) |
passthrough_ |
double | yes | Amount passed through (USD) |
fac_audits_historic · table¶
One row per Single Audit for audit years 1998-2015 (723,457 audits; 32,000-46,000 per year), from the Federal Audit Clearinghouse's archived Census data (ELECAUDITHEADER). Identified by (year, dbkey); year is the audit year. The Census system pre-dates UEIs, so the keys are ein (always present) and duns (blank on about 30 percent of rows); uei is empty. Carries the auditee, audit firm, cognizant and oversight agencies, opinion and internal-control flags and total federal expenditure. The files are frozen (the FAC replaced them with the GSA system for 2016 onward, see fac_audits). Contact people are not loaded. Source: app.fac.gov/dissemination/public-data/census/csv/census-
| Column | Type | Null | Description |
|---|---|---|---|
dbkey |
string | no | Census database key; unique within the audit year (PK with year) |
census_ |
string | yes | Census id (dbkey+year) |
ein |
string | yes | Auditee EIN (EIN+subcode identify the auditee) |
ein_ |
string | yes | EIN sub-code |
duns |
string | yes | Auditee DUNS number (blank on about 30 percent of rows); join key to usaspending_assistance.recipient_duns |
auditee_ |
string | yes | Auditee (recipient of federal awards) name |
street |
string | yes | Auditee street |
city |
string | yes | Auditee city |
state |
string | yes | Auditee state |
zip_ |
string | yes | Auditee ZIP |
cpa_ |
string | yes | Audit firm |
cpa_ |
string | yes | Audit firm city |
cpa_ |
string | yes | Audit firm state |
cpa_ |
string | yes | Audit firm ZIP |
auditor_ |
string | yes | Audit firm EIN |
cognizant_ |
string | yes | Cognizant federal agency prefix (2-digit) |
oversight_ |
string | yes | Oversight federal agency prefix (2-digit) |
fy_ |
string | yes | Audited fiscal year start |
fy_ |
string | yes | Audited fiscal year end |
audit_ |
string | yes | single-audit, program-specific, or alternative-compliance-examination |
period_ |
string | yes | Audit period covered (A annual, B biennial, O other) |
number_ |
string | yes | Months covered when the period is other |
report_ |
string | yes | Opinion type on the financial statements |
material_ |
string | yes | Material weakness disclosed |
material_ |
string | yes | Material noncompliance disclosed |
going_ |
string | yes | Going-concern paragraph included |
dollar_ |
double | yes | Threshold separating Type A and Type B programs (USD) |
low_ |
string | yes | Low-risk auditee flag |
total_ |
double | yes | Total federal awards expended (USD) |
entity_ |
string | yes | Auditee type (local, state, non-profit, higher-ed, tribal, unknown) |
fac_ |
string | yes | Date the FAC accepted the filing |
uei |
string | yes | UEI (empty in the Census years) |
fac_federal_awards_historic · table¶
One row per federal program (CFDA) audited in a Single Audit, audit years 1998-2015 (about 9.4 million rows; 340,000-700,000 per year), from the archived Census data (ELECAUDITS). Joins fac_audits_historic on (year, dbkey); the EIN is repeated on each row. cfda is the Assistance Listing number (e.g. 93.569) and matches usaspending_assistance.cfda_number. amount is the program's federal expenditure in the audit year; direct = 'Y' marks funds received directly from the agency (prime awards), 'N' pass-through funds. Same frozen source as fac_audits_historic. Source: app.fac.gov/dissemination/public-data/census/csv/census-
| Column | Type | Null | Description |
|---|---|---|---|
dbkey |
string | no | Census database key; unique within the audit year (PK with year) |
cfda_ |
integer | yes | Sequence of the program within the audit |
cfda |
string | yes | Assistance Listing (CFDA) number, e.g. 93.569; matches usaspending_assistance.cfda_number |
cfda_ |
string | yes | Agency prefix of the CFDA number |
cfda_ |
string | yes | Extension of the CFDA number |
ein |
string | yes | Auditee EIN (EIN+subcode identify the auditee) |
federal_ |
string | yes | Federal program name |
amount |
double | yes | Federal dollars expended on the program (USD) |
program_ |
double | yes | Total expended for the program (USD) |
cluster_ |
double | yes | Total expended for the cluster (USD) |
major_ |
string | yes | Audited as a major program (Y/N) |
direct |
string | yes | Y when received directly from the federal agency, N when passed through |
loans |
string | yes | Loan program (Y/N) |
loan_ |
double | yes | Loan balance outstanding (USD) |
arra |
string | yes | ARRA (Recovery Act) funds (Y/N) |
passthrough_ |
string | yes | Passed through to subrecipients (Y/N) |
passthrough_ |
double | yes | Amount passed through (USD) |
cluster_ |
string | yes | Program cluster |
state_ |
string | yes | State cluster name |
award_ |
string | yes | Additional award identification |
findings_ |
integer | yes | Number of audit findings for the program |
type_ |
string | yes | Compliance requirement types tested |
questioned_ |
string | yes | Questioned costs flag |
soi_income_by_county_year · view¶
County-level revenue rollup: return counts, individual/exemption counts, adjusted gross income, and total income tax by county and tax year, summed across the six SOI AGI brackets (excludes the county_fips '...000' state-total rows carried in the source soi_income_by_county table).
View — columns are resolved by the query engine at runtime.
federal_spending_vs_income_tax_by_state_year · view¶
Places each usaspending_by_state row (state, fiscal year, obligated_amount) beside its same-state, same-year SOI total-income-tax figure summed from the soi_income_by_county state-total ('...000') rows. federal_obligations_usd is TOTAL USAspending obligations across ALL agencies and programs combined — it is NOT broken out by awarding agency, CFDA/program, or budget function, so agency-specific federal spending (e.g. Department of Education, defense) cannot be isolated from this table. soi_income_tax_thousands is IRS SOI INDIVIDUAL INCOME TAX ONLY — it excludes payroll/FICA, corporate, and excise tax paid by the state's residents and businesses (no state-level payroll/FICA or excise tax table exists anywhere in this warehouse yet; state_corporate_income_tax_collections carries corporate income tax but is not yet part of this join). This view is NOT a federal balance-of-payments (total taxes paid vs. total spending received) comparison — subtracting soi_income_tax_thousands from federal_obligations_usd computes spending against one tax type only, not spending against total federal receipts, and will overstate every state's apparent net position.
View — columns are resolved by the query engine at runtime.
nonprofit_financials · view¶
One row per Form 990 filing: exempt_org_990's total_revenue, total_expenses, total_assets, return_type (990/990-EZ/990-PF), and tax_year, left-joined to exempt_org_master's org_name (fallback to the filing's own name), state_abbr, ntee_code, and subsection_code on EIN — the nonprofit sector view.
View — columns are resolved by the query engine at runtime.
state_social_infrastructure_index · view¶
Social Infrastructure Investment Index (SIII), per state per year, on a 0-100 scale: 100 * (0.30pct_capex + 0.20pct_opex + 0.15pct_beds + 0.15pct_pupil_teacher_inv + 0.10pct_library + 0.10pct_access_inv), where each pct_* is that metric's PERCENT_RANK() among the 50 states + DC for that year (0=lowest, 1=highest) — a relative ranking, not an absolute scale, so a state's score can move year over year purely from other states' movement even if its own raw metric is flat. Weights favor the two direct government fiscal-investment flows (capex+opex, 50% combined) over capacity/access proxies (50% combined), consistent with this being a FISCAL-policy index first. Components (all per-capita against census.acs_population, geography=state): - capex/opex: fiscal.govt_finance_by_unit, item codes F12/F36/F61 (elementary-secondary/hospital/parks construction = capital outlay) and E12/E36/E61 (same three functions, current operations = opex). Summed across ALL gov_type_code (state+county+city+township+special district+school district) within the state — this is a whole-state total, not one government level. - beds: health.cms_pos_facilities, provider_category_code='01' (hospitals only) bed_count summed per state. KNOWN LIMITATION: this source is a CURRENT-QUARTER SNAPSHOT with no year dimension — the same beds-per-capita figure is broadcast across every year of the view rather than reflecting that year's actual bed count. Treat pct_beds as "current hospital capacity relative to other states," not a historical trend. - pupil_teacher_inv: inverted (1 - percent_rank) SUM(enrollment) / SUM(teachers_total_fte) from edu.ccd_districts — inverted because a LOWER pupil-teacher ratio is the better outcome. - library: edu.library_outlets total square_feet per state per year. - access_inv: inverted (1 - percent_rank) average of (no_internet_households / total_households) from census.acs_internet and (no_vehicle_households / total_households) from census.acs_vehicle_access — inverted because a LOWER no-access rate is the better outcome. Both ACS components only exist from their respective minYear forward (acs_internet: 2019+); years before that get a NULL access_gap_pct and therefore NULL pct_access_inv, which COALESCEs out of the weighted sum (see raw_score below) rather than zeroing the state's score. NULL-COMPONENT HANDLING: components missing for a given state/year (COALESCE to NULL, not 0) are dropped from the weighted average, and the denominator is renormalized to the weights of the components that ARE present — a state missing only access data is scored on capex/opex/beds/ pupil_teacher alone (renormalized to sum to 100), not penalized to a near-zero score by treating the missing metric as a 0.
View — columns are resolved by the query engine at runtime.
fac_awards_vs_usaspending · view¶
Single Audit federal awards (fac_federal_awards joined to fac_audits) beside the prime assistance obligations USAspending recorded for the same recipient UEI, Assistance Listing (ALN) and fiscal year, for audit years 2016 onward. One row per audit award line. uei is the filing's own UEI for audit years 2022 on; for 2016-2021 filings (UEI placeholder GSA_MIGRATION) it is the UEI the same EIN carries on a 2022+ filing, only where that EIN maps to exactly one UEI (otherwise null). usaspending_obligated is the sum of federal_action_obligation in that fiscal year only, so a multi-year award obligated in an earlier year shows 0 transactions here; sum usaspending_assistance across years for the lifetime figure. is_direct = 'N' lines are pass-through funds and are not expected to match a prime award to the auditee; amount_expended is the auditee's expenditure in the audit year, not an obligation, so the two amounts are comparable only in magnitude.
View — columns are resolved by the query engine at runtime.
usaspending_assistance_by_county · view¶
Federal assistance obligations by place-of-performance county x Assistance Listing (ALN, formerly CFDA number) x federal fiscal year (Oct-Sep; year = fiscal year of action_date): the program breakdown that usaspending_by_county (one total per county, all award types) does not carry. One row per (year, county_fips, assistance_listing), aggregated from usaspending_assistance, so it covers exactly the fiscal years that table has loaded. obligated_amount is the signed sum of federal_action_obligation, so de-obligations net out and a county-listing-year can be negative. obligated_amount_excl_loans leaves out the loan assistance types (07 direct loan, 08 guaranteed/insured loan, and the FY2026-onward codes F003 direct loan and F004 loan guarantee), whose obligation is the subsidy cost rather than the face value, as usaspending_by_county does; face value is in usaspending_assistance.face_value_of_loan. county_fips is the PLACE OF PERFORMANCE county, not the recipient's: for pass-through awards (a state agency receiving a block grant and subawarding it to counties) the prime award is attributed to where USAspending records the work, which can be the recipient's own county, so a county's total need not equal what reached its residents, and recipient-county grain (usaspending_assistance. recipient_county_fips) gives different numbers. Transactions with a blank place-of- performance county or a state-level code (county part 000) are left out, never guessed into a county, so county rows do not sum to the national assistance total. The share is large and varies by year: FY2008 full file 19 percent of transactions and 24 percent of net dollars; FY2025 DQ sample 3 and 2 percent; FY2026 DQ sample 15 and 25 percent (state-level formula grants dominate the dollars); measure the current share from usaspending_assistance. transactions counts award actions (award x modification), not awards. assistance_listing_title is the title on the year's rows. Joins to geo.counties on county_fips; older fiscal years carry some retired county codes (FY2008: 12025, the former Dade County, 4.4 billion dollars) that do not join. Example, State Opioid Response (93.788) and Substance Abuse Prevention and Treatment Block Grant (93.959) obligations by county and year: SELECT c.county_name, v.year, v.assistance_listing, v.obligated_amount FROM usaspending_assistance_by_county v JOIN geo.counties c ON c.county_fips = v.county_fips WHERE v.assistance_listing IN ('93.788', '93.959') ORDER BY v.year, v.obligated_amount DESC. Reconciliation: usaspending_by_county is built from the USAspending API with the assistance award types plus contracts, and has no assistance-only column, so compare with the API's assistance-only county figures instead; for the FY2008 full file, 3,226 of 3,227 API counties matched, 72 percent to within one dollar, 99.6 percent to within 1 percent, and the national totals differ by 0.42 percent (cause of the residual not isolated).
View — columns are resolved by the query engine at runtime.