Get my free review

Data · County income

County income and migration, from IRS tax returns

How many income tax returns each county files, how much income they report, how that income per return changed in a year, and how many returns arrived from or left for other states. We read the IRS Statistics of Income files row for row, keep the cells the IRS withholds as suppressed, and check that the AGI brackets add up, that counties add up to states and that migration in equals migration out.

Checked October 29, 2026 · CC BY 4.0 · Not legal advice

What is in this dataset?

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.

Use it to see how much income a county has and how fast it is moving, and where income is arriving from or leaving to: returns and adjusted gross income per county, the change over a year, and net migration from other states. These are the denominators for estate planning, tax, real estate and business law practices. Pair it with the legal-need and law-offices datasets by county FIPS code. Agents can look up a state and its counties, compare up to ten states, or search a county by name.

Records
3,195
Look up by
52
state
Primary source
3,195

The letters are explained in what P, S, D and U mean.

Where does the data come from?

Read from the IRS Statistics of Income all-returns county file and the county and state migration files, kept row for row; the IRS state rows are used as published and the US row is the sum of the states. A gate re-reads every record from the live files, checks that the eight AGI brackets add up to every all-returns row, that county AGI equals each state row, that national moves in equal moves out, and that 300 county pairs agree between the inflow and outflow files.

Period covered
January 1, 2023 to December 31, 2023
Places
The whole US, states and counties
How often we refresh it
Once a year
The source's next release
April 2027
Records read
October 29, 2026

Official sources

The sources the records cite most

What does a record look like?

  • United States (the 50 states and DC): 159,009,590 individual income tax returns for tax year 2023, adjusted gross income $15,132,239,388,000 ($95,166 per return), +3.0% per return from tax year 2022. Migration 2022-2023: 3,966,932 returns moved in from other states and 3,966,932 moved out (+0 net). The US row is the sum of the state rows; moves between states cancel, so in and out are equal.

    Status P · checked October 29, 2026 · source: IRS SOI, county data 2023

  • Texas: 13,668,190 individual income tax returns for tax year 2023, adjusted gross income $1,269,586,566,000 ($92,886 per return), +1.2% per return from tax year 2022. Migration 2022-2023: 307,240 returns moved in from other states and 250,767 moved out (+56,473 net).

    Status P · checked October 29, 2026 · source: IRS SOI, county data 2023

  • Florida: 11,217,190 individual income tax returns for tax year 2023, adjusted gross income $1,101,571,720,000 ($98,204 per return), -2.6% per return from tax year 2022. Migration 2022-2023: 354,112 returns moved in from other states and 298,763 moved out (+55,349 net).

    Status P · checked October 29, 2026 · source: IRS SOI, county data 2023

  • New York: 9,788,950 individual income tax returns for tax year 2023, adjusted gross income $1,051,864,084,000 ($107,454 per return), +3.1% per return from tax year 2022. Migration 2022-2023: 192,240 returns moved in from other states and 264,227 moved out (-71,987 net).

    Status P · checked October 29, 2026 · source: IRS SOI, county data 2023

The full records add the dates, the quoted source text and every field in the CSV and JSON files below.

What each of the 37 main columns means
jurisdiction
Two-letter state code (DC included), or US for the national record
level
county, state or us
county
5-digit county FIPS code (vintage 2025); empty for state and US
countyName
County name as the Census Bureau writes it
taxYear
Tax year of the income figures
migrationYears
The two filing years the migration flows compare (people who filed in both)
status
P: read from the primary source
text
One plain sentence with the county's income and migration
value
Adjusted gross income in dollars (same as agi)
unit
What value counts
returns
Individual income tax returns filed (the IRS rounds county cells to the nearest 10)
people
Individuals on those returns (exemptions)
agi
Adjusted gross income of those returns, in dollars (the IRS publishes $ thousands)
agi_per_return
agi divided by returns, rounded to whole dollars
wage_returns
Returns with salary and wage income
wages
Salaries and wages on those returns, in dollars
wages_per_wage_return
wages divided by wage_returns, rounded to whole dollars
returns_prev
Returns in the previous tax year
agi_prev
Adjusted gross income in the previous tax year, in dollars
agi_per_return_prev
agi_prev divided by returns_prev
change_returns_pct
Percent change in returns from the previous tax year
change_agi_per_return_pct
Percent change in AGI per return from the previous tax year
mig_in_other_returns
Returns that moved in from other states (county: from a different state; state: from any other state), comparing the two filing years
mig_in_other_agi
AGI of those returns, in dollars
mig_out_other_returns
Returns that moved out to other states
mig_out_other_agi
AGI of those returns, in dollars
mig_in_same_returns
Returns that moved in from elsewhere in the same state (state record: moves within the state)
mig_in_same_agi
AGI of those returns, in dollars
mig_out_same_returns
Returns that moved out to elsewhere in the same state
mig_out_same_agi
AGI of those returns, in dollars
mig_net_other_returns
mig_in_other_returns less mig_out_other_returns
mig_net_other_agi
mig_in_other_agi less mig_out_other_agi, in dollars
suppressedFields
Migration fields the IRS withheld (under 20 returns), left empty and never estimated
effectiveFrom
First day of the tax year
effectiveTo
Last day of the tax year
lastChecked
Date the IRS files were last read
id
Stable record id: dataset, place and period

How do I use it in my own tools?

countyincome_lookup
For one two-letter state code (or US): the state and every county in it, with returns, adjusted gross income, income per return and its change over a year, and moves in and out from other states; withheld cells are null.
countyincome_compare
The IRS income and migration records of up to 10 states (two-letter codes) or US side by side: returns, adjusted gross income per return and net moves from other states.
countyincome_search
IRS income records whose text matches the words given, such as a county name ("Harris County"), a state name or a 5-digit county FIPS code.

How to cite this dataset

You can reuse, adapt and republish this data, including commercially, under the Creative Commons Attribution 4.0 license (CC BY 4.0). The only condition is that you credit Probative and link to the source.

Version
1.0.0, released October 29, 2026
Every version
10.5281/zenodo.23752983 (always points to the newest)
License
CC BY 4.0

Download the data

Free, no email or login. The files are hosted on this site and Zenodo, a public research archive.

Suggested citation

Probative. (2026). County income and migration from IRS tax returns (Version 1.0.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.23752984

Credit line for a chart, table or article

Source: Probative, County income and migration from IRS tax returns, version 1.0.0, https://doi.org/10.5281/zenodo.23752984, licensed CC BY 4.0.

Add to a reference manager (Zotero, Mendeley, EndNote)

Not legal advice. These are totals from filed individual tax returns, not a county's wealth, a person's income or a prediction of who needs a lawyer, and migration shows where filers' addresses changed, not why. Questions about taxes, estates or property are for a licensed attorney or tax professional.

What changed recently?

  • 2026-10-29 · IRS Statistics of Income county data for tax year 2023: returns, adjusted gross income and wages for every county and state, with the change from 2022 and the 2022-2023 migration flows: 159,009,590 returns in the IRS file. (source)

The full log is in changes.json.

What are the limits?

  • The figures come from individual income tax returns filed for a tax year. They leave out people who do not file, and a return's county is the filer's address on the return.
  • The IRS rounds county return counts to the nearest 10, so a county's returns can differ slightly from the state row when added up. Adjusted gross income is not rounded and adds up exactly.
  • Migration compares a filer's address on returns in two consecutive filing years. It shows where filers moved, not why, and it leaves out people who did not file in both years. The IRS withholds a flow of fewer than 20 returns; those cells are suppressed, never estimated.
  • County income per return is not household income or wealth: it mixes wages, business, investment and retirement income, and counties with many retirees or high earners look very different.
  • The migration file covers the filing years it names and the income file the tax year it names; they are a year apart in some releases. Counties the IRS does not list have no record.
  • Records older than 400 days since their last check are marked stale in the files until we re-check them. Every confirmed error we fix is listed in the data corrections log.

Found a wrong value? Report an error with the record id and the source that shows the right value.

Running a firm? You don’t need the raw data: we handle your state’s ad rules for you. See where your firm stands first.

Published by Probative Growth, a marketing agency for law firms. See our services and pricing.

Free

Get your free review.

Send us your firm’s website. Probative Growth records a 90-second video of what clients see when they look you up, and emails it with a one-page summary within 2 business days. No logins, no call needed.

Not sure where to start? Answer 7 questions Ready to talk? Talk to us Or see what AI says about your firm

Your free review: It covers your Google listing, website, phone and ads, from public information.

Step 2 of 2. Where should we send the video for your site?

We use this to send your video and to reply to you.

We use what you send to reply and to send a few short follow-up emails (unsubscribe any time). To learn which of our ads work, we tell Google, Microsoft and Meta that a request came in, with the ad you clicked (if any) and a hashed copy of your email and phone (a code the platforms can still match to you), never your message. Never sold, never added to lists. Global Privacy Control or an email to us turns this off. By sending this form you agree to our privacy policy.

See every price