Why It Matters
When you see "50,000 net migrants moved to the Austin metro last year," that number most likely comes from IRS SOI. The IRS knows where every tax filer lived in year N-1 and where they live in year N, and publishes aggregated county-to-county flow counts. It's the most comprehensive domestic migration dataset available — covering roughly 97% of U.S. households who file taxes — and it publishes by county with a 2-2.5 year lag. For real estate investors, SOI answers "is this metro gaining or losing people on net?" and "where are those migrants coming from?" The data is free, keyed by FIPS code, and feeds every serious migration analysis.
At a Glance
- What it is: Annual county-to-county migration flow data published by the IRS Statistics of Income division, based on tax return address changes year-over-year.
- Why it matters: Most comprehensive domestic migration dataset — covers ~97% of U.S. tax-filing households. No survey comes close.
- How to use it: Pull net migration for your target county. Compare YoY trends. Look at top origin counties to understand where in-migrants come from.
- Publication lag: 2-2.5 years. Data for tax year N typically publishes in year N+2 or N+2.5.
- Scope: Domestic migration only — international migration is not captured. Tax-filing adults and their dependents are counted.
How It Works
How SOI constructs migration flows. The IRS has a unique data asset: every tax filer's address in two consecutive years. When someone files their 2022 tax return from an address in Franklin County OH, and their 2023 tax return from Travis County TX, the IRS knows they moved from Franklin to Travis. The Statistics of Income program aggregates these address changes into county-to-county migration flows while protecting individual privacy. For each origin-destination pair, SOI publishes the number of tax returns that moved, the number of exemptions (roughly household members including dependents), and the aggregate gross income that moved. The data covers about 97% of U.S. tax-filing households, making it the most comprehensive domestic migration pattern dataset available. Wikipedia's IRS page has the broader context on the agency.
What the data fields mean. For each county pair, SOI publishes four main numbers: total returns migrated (the household count), total exemptions (household members including dependents — typically 1.8-2.2× returns), total adjusted gross income migrated (the dollar flow), and an aggregate return count as a proxy for household formation. The per-return average income is the most revealing number — it tells you whether migrants from County A to County B are higher-earning than the destination's resident average, equal, or lower. That dynamic matters for rent pricing power: if in-migrants earn 30%+ more than existing residents, rent growth has more room; if they earn less, rent growth is constrained. Every SOI row keys to origin FIPS code and destination FIPS code, making joins to CBSA or other geographies straightforward.
What SOI captures and what it misses. SOI captures domestic migration between U.S. counties for tax-filing households. It misses: (1) international immigration — someone arriving from abroad doesn't have a prior-year U.S. tax return; (2) non-filing households — about 3% of U.S. households don't file federal taxes, though this is concentrated in very low-income or undocumented populations; (3) partial-year moves — someone who moved in October 2022 shows up as a 2022→2023 migrant, same as someone who moved in January; (4) demographic detail — SOI doesn't tell you age, race, or specific income beyond aggregates. For a complete migration picture, pair SOI with Census ACS migration questions (which capture international migration but have smaller samples) and state-level driver's license transfer data (rough proxy for young mobile populations).
The 2-2.5 year lag — why it's so long. Tax returns for tax year N are filed by April N+1. IRS processes them through year N+1 and early N+2. SOI aggregates, anonymizes, and publishes around year N+2 or N+2.5. So 2022 migration data typically publishes in 2024; 2023 data in 2025. The lag means SOI is not a timely indicator — it's a structural analysis tool. For real-time migration signals, investors use moving-company data, U-Haul rental imbalances, and commercial migration platforms (which have their own biases). SOI is the authoritative baseline that those other sources ultimately get benchmarked against. The data is distributed through FRED and through the IRS directly at irs.gov/statistics. County-to-county flow files and summary files are free; the IRS also publishes state-to-state flows as a simpler rollup.
Real-World Example
Miguel Herrera evaluates Columbus in-migration using SOI.
Miguel is considering buying a rental in Columbus. He pulls IRS SOI for 2022 (the most recent year published, typical 2-year lag):
- Franklin County OH (Columbus core) — Net migration 2022: +8,400 returns, approximately 16,400 net population
- Top 5 origin counties contributing to Columbus in-migration:
1. Cuyahoga County OH (Cleveland): +2,100 returns (-$94M AGI flow) 2. Cook County IL (Chicago): +1,800 returns (-$112M AGI flow) 3. Los Angeles County CA: +1,400 returns (-$125M AGI flow) 4. Hamilton County OH (Cincinnati): +900 returns (-$38M AGI flow) 5. Allegheny County PA (Pittsburgh): +800 returns (-$31M AGI flow)
The story in these numbers: Columbus is pulling in migrants from larger Midwestern metros (Cleveland, Cincinnati, Chicago, Pittsburgh) and from Los Angeles. The average AGI per return for in-migrants is around $54,000 — close to Columbus's median household income, neither a wealthy-migrant nor a low-income signature.
Miguel checks outflows too: the top destinations Columbus migrants are leaving for are primarily Florida (Sun Belt retirees) and Texas (job-seekers at specific companies). Net, Columbus is gaining on working-age in-migration while losing some retirees — the signature of an economically expanding metro.
He cross-references with BEA income data: Columbus real per-capita personal income is rising 2.8% YoY (2022), supporting the in-migration story. The rental demand thesis for Columbus holds up against the SOI read: stable working-age migration from larger Midwestern metros, with a per-return income profile that supports current rent growth.
Pros & Cons
- Most comprehensive domestic migration dataset available — covers ~97% of tax-filing households
- County-to-county flows with origin and destination detail — no other free source offers this granularity
- Income flow data (AGI) reveals whether migrants are higher-, same-, or lower-earning than destination residents
- Published annually with documented methodology — auditable and reliable
- Free, keyed by FIPS, easy to integrate with other federal datasets
- 2-2.5 year publication lag makes SOI unusable for real-time migration signals
- Misses international immigration — a key demographic force in coastal metros
- Misses non-filing households (~3% of total) concentrated in very low-income populations
- Doesn't break out age, race, or detailed income — aggregate flows only
- Tax-filer migration is the proxy, not actual physical migration — someone can move without filing from the new address in time for SOI to pick it up
Watch Out
- Lag matters: SOI published in 2025 reflects 2022 migration. If you're trying to understand 2024 migration, SOI doesn't help — use moving company data or state-level indicators instead.
- AGI flow isn't income at destination: The AGI number is what migrants brought with them. It doesn't tell you what they'll earn in the new county. A Silicon Valley engineer moving to Austin shows as bringing $180K AGI — after moving, her new job pays the same, but the AGI flow number still reads $180K.
- County-to-county isn't the whole story: SOI publishes county pairs. If you're doing neighborhood or ZIP-level analysis, SOI doesn't help — it's county-grain only.
- International immigration blind spot: Miami, San Diego, Houston, Las Vegas all see large international inflows that SOI doesn't capture. For those metros, SOI undercounts total population gain.
- IRS privacy suppression: For county pairs with fewer than 10 returns, SOI suppresses the specific count. Small-population destinations or origins can have partial data.
Ask an Investor
The Takeaway
IRS SOI is the authoritative domestic migration dataset — what every serious market analyst uses when the question is "where are people moving, and from where?" The 2-2.5 year lag is the tradeoff for getting near-universe coverage of U.S. tax-filing households. Pull SOI for your target county, look at net migration trends, examine top 5 origin and destination counties, and compare AGI flows to local median income. For timely migration signals use commercial sources; for structural analysis, SOI is the gold standard. Free data at irs.gov/statistics, also distributed through FRED and research platforms.
