{"@context":{"@language":"en","@vocab":"https://schema.org/","arrayShape":"cr:arrayShape","citeAs":"cr:citeAs","column":"cr:column","conformsTo":"dct:conformsTo","containedIn":"cr:containedIn","cr":"http://mlcommons.org/croissant/","rai":"http://mlcommons.org/croissant/RAI/","data":{"@id":"cr:data","@type":"@json"},"dataType":{"@id":"cr:dataType","@type":"@vocab"},"dct":"http://purl.org/dc/terms/","description":{"@container":"@language"},"equivalentProperty":"cr:equivalentProperty","examples":{"@id":"cr:examples","@type":"@json"},"extract":"cr:extract","field":"cr:field","fileProperty":"cr:fileProperty","fileObject":"cr:fileObject","fileSet":"cr:fileSet","format":"cr:format","includes":"cr:includes","isArray":"cr:isArray","isLiveDataset":"cr:isLiveDataset","jsonPath":"cr:jsonPath","key":"cr:key","md5":"cr:md5","name":{"@container":"@language"},"parentField":"cr:parentField","path":"cr:path","recordSet":"cr:recordSet","references":"cr:references","regex":"cr:regex","repeated":"cr:repeated","replace":"cr:replace","samplingRate":"cr:samplingRate","sc":"https://schema.org/","separator":"cr:separator","source":"cr:source","subField":"cr:subField","transform":"cr:transform"},"@type":"sc:Dataset","conformsTo":"http://mlcommons.org/croissant/1.1","name":"County income and migration from IRS tax returns","description":"Individual income tax returns, individuals, adjusted gross income, salaries and wages in every U.S. county for the latest tax year, with the change in income per return from the year before, and the returns and income that moved into and out of each county and state between two filing years, from the IRS Statistics of Income county and migration files. The IRS rounds county returns to the nearest 10 and withholds a migration flow under 20 returns; withheld cells are left empty and marked suppressed, never estimated.","url":"https://probativegrowth.com/data/county-income/","identifier":"https://doi.org/10.5281/zenodo.23752984","sameAs":["https://doi.org/10.5281/zenodo.23752984","https://doi.org/10.5281/zenodo.23752983","https://zenodo.org/records/23752984"],"version":"1.0.0","datePublished":"2026-10-29","dateModified":"2026-10-29","license":"https://creativecommons.org/licenses/by/4.0/","creator":{"@type":"sc:Organization","name":"Probative Growth","url":"https://probativegrowth.com"},"publisher":{"@type":"sc:Organization","name":"Probative Growth","url":"https://probativegrowth.com"},"citeAs":"Probative. (2026). County income and migration from IRS tax returns (Version 1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.23752984","keywords":["IRS county income data","adjusted gross income by county","IRS SOI county migration","county tax returns statistics","income per return by county","net migration by county IRS"],"inLanguage":"en","isAccessibleForFree":true,"isLiveDataset":false,"temporalCoverage":"2023-01-01/2023-12-31","spatialCoverage":{"@type":"sc:Place","name":"United States"},"distribution":[{"@type":"cr:FileObject","@id":"county-income.csv","name":"county-income.csv","description":"Every record, one row each (RFC 4180, UTF-8). Columns are described in README.txt.","contentUrl":"https://probativegrowth.com/data/v1/county-income/county-income.csv","contentSize":"2658150 B","encodingFormat":"text/csv","sha256":"3eff9024450923a6179b9ee14c1117610e1ac54cacf2ba0f999cfb9c94c88244"},{"@type":"cr:FileObject","@id":"county-income.json","name":"county-income.json","description":"Every record with its full sources, under a meta envelope (credit line, DOI, license).","contentUrl":"https://probativegrowth.com/data/v1/county-income/county-income.json","contentSize":"6444802 B","encodingFormat":"application/json","sha256":"607e0ad840aab1da435ad860828173376541f3fcd4ffc1977223bc92ddb1d13a"}],"recordSet":[{"@type":"cr:RecordSet","@id":"county-income","name":"county-income","description":"The records of County income and migration from IRS tax returns, one per CSV row.","key":{"@id":"county-income/id"},"field":[{"@type":"cr:Field","@id":"county-income/id","name":"id","description":"Stable record id: dataset, place and period","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"id"}}},{"@type":"cr:Field","@id":"county-income/jurisdiction","name":"jurisdiction","description":"Two-letter state code (DC included), or US for the national record","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"jurisdiction"}}},{"@type":"cr:Field","@id":"county-income/level","name":"level","description":"county, state or us","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"level"}}},{"@type":"cr:Field","@id":"county-income/county","name":"county","description":"5-digit county FIPS code (vintage 2025); empty for state and US","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"county"}}},{"@type":"cr:Field","@id":"county-income/countyName","name":"countyName","description":"County name as the Census Bureau writes it","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"countyName"}}},{"@type":"cr:Field","@id":"county-income/taxYear","name":"taxYear","description":"Tax year of the income figures","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"taxYear"}}},{"@type":"cr:Field","@id":"county-income/migrationYears","name":"migrationYears","description":"The two filing years the migration flows compare (people who filed in both)","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"migrationYears"}}},{"@type":"cr:Field","@id":"county-income/status","name":"status","description":"P: read from the primary source","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"status"}}},{"@type":"cr:Field","@id":"county-income/returns","name":"returns","description":"Individual income tax returns filed (the IRS rounds county cells to the nearest 10)","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"returns"}}},{"@type":"cr:Field","@id":"county-income/people","name":"people","description":"Individuals on those returns (exemptions)","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"people"}}},{"@type":"cr:Field","@id":"county-income/agi","name":"agi","description":"Adjusted gross income of those returns, in dollars (the IRS publishes $ thousands)","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"agi"}}},{"@type":"cr:Field","@id":"county-income/agi_per_return","name":"agi_per_return","description":"agi divided by returns, rounded to whole dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"agi_per_return"}}},{"@type":"cr:Field","@id":"county-income/wage_returns","name":"wage_returns","description":"Returns with salary and wage income","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"wage_returns"}}},{"@type":"cr:Field","@id":"county-income/wages","name":"wages","description":"Salaries and wages on those returns, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"wages"}}},{"@type":"cr:Field","@id":"county-income/wages_per_wage_return","name":"wages_per_wage_return","description":"wages divided by wage_returns, rounded to whole dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"wages_per_wage_return"}}},{"@type":"cr:Field","@id":"county-income/returns_prev","name":"returns_prev","description":"Returns in the previous tax year","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"returns_prev"}}},{"@type":"cr:Field","@id":"county-income/agi_prev","name":"agi_prev","description":"Adjusted gross income in the previous tax year, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"agi_prev"}}},{"@type":"cr:Field","@id":"county-income/agi_per_return_prev","name":"agi_per_return_prev","description":"agi_prev divided by returns_prev","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"agi_per_return_prev"}}},{"@type":"cr:Field","@id":"county-income/change_returns_pct","name":"change_returns_pct","description":"Percent change in returns from the previous tax year","dataType":"sc:Float","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"change_returns_pct"}}},{"@type":"cr:Field","@id":"county-income/change_agi_per_return_pct","name":"change_agi_per_return_pct","description":"Percent change in AGI per return from the previous tax year","dataType":"sc:Float","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"change_agi_per_return_pct"}}},{"@type":"cr:Field","@id":"county-income/mig_in_other_returns","name":"mig_in_other_returns","description":"Returns that moved in from other states (county: from a different state; state: from any other state), comparing the two filing years","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_in_other_returns"}}},{"@type":"cr:Field","@id":"county-income/mig_in_other_agi","name":"mig_in_other_agi","description":"AGI of those returns, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_in_other_agi"}}},{"@type":"cr:Field","@id":"county-income/mig_out_other_returns","name":"mig_out_other_returns","description":"Returns that moved out to other states","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_out_other_returns"}}},{"@type":"cr:Field","@id":"county-income/mig_out_other_agi","name":"mig_out_other_agi","description":"AGI of those returns, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_out_other_agi"}}},{"@type":"cr:Field","@id":"county-income/mig_in_same_returns","name":"mig_in_same_returns","description":"Returns that moved in from elsewhere in the same state (state record: moves within the state)","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_in_same_returns"}}},{"@type":"cr:Field","@id":"county-income/mig_in_same_agi","name":"mig_in_same_agi","description":"AGI of those returns, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_in_same_agi"}}},{"@type":"cr:Field","@id":"county-income/mig_out_same_returns","name":"mig_out_same_returns","description":"Returns that moved out to elsewhere in the same state","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_out_same_returns"}}},{"@type":"cr:Field","@id":"county-income/mig_out_same_agi","name":"mig_out_same_agi","description":"AGI of those returns, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_out_same_agi"}}},{"@type":"cr:Field","@id":"county-income/mig_net_other_returns","name":"mig_net_other_returns","description":"mig_in_other_returns less mig_out_other_returns","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_net_other_returns"}}},{"@type":"cr:Field","@id":"county-income/mig_net_other_agi","name":"mig_net_other_agi","description":"mig_in_other_agi less mig_out_other_agi, in dollars","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"mig_net_other_agi"}}},{"@type":"cr:Field","@id":"county-income/text","name":"text","description":"One plain sentence with the county's income and migration","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"text"}}},{"@type":"cr:Field","@id":"county-income/value","name":"value","description":"Adjusted gross income in dollars (same as agi)","dataType":"sc:Integer","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"value"}}},{"@type":"cr:Field","@id":"county-income/unit","name":"unit","description":"What value counts","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"unit"}}},{"@type":"cr:Field","@id":"county-income/suppressedFields","name":"suppressedFields","description":"Migration fields the IRS withheld (under 20 returns), left empty and never estimated","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"suppressedFields"}}},{"@type":"cr:Field","@id":"county-income/effectiveFrom","name":"effectiveFrom","description":"First day of the tax year","dataType":"sc:Date","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"effectiveFrom"}}},{"@type":"cr:Field","@id":"county-income/effectiveTo","name":"effectiveTo","description":"Last day of the tax year","dataType":"sc:Date","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"effectiveTo"}}},{"@type":"cr:Field","@id":"county-income/lastChecked","name":"lastChecked","description":"Date the IRS files were last read","dataType":"sc:Date","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"lastChecked"}}},{"@type":"cr:Field","@id":"county-income/sourceLabels","name":"sourceLabels","description":"Sources, separated by \" | \"","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"sourceLabels"}}},{"@type":"cr:Field","@id":"county-income/sourceUrls","name":"sourceUrls","description":"Source URLs, in the same order","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"sourceUrls"}}},{"@type":"cr:Field","@id":"county-income/confidence","name":"confidence","description":"high, medium or low: computed from status, a second check, age against the refresh cadence and sampling error (rule: /data/#confidence)","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"confidence"}}},{"@type":"cr:Field","@id":"county-income/confidenceBasis","name":"confidenceBasis","description":"The reasons for the confidence level, in a short phrase","dataType":"sc:Text","source":{"fileObject":{"@id":"county-income.csv"},"extract":{"column":"confidenceBasis"}}}]}]}