← All studies · askamerica.ai

Income tax changes barely move the overall population — but noticeably shift where the top earners live

Synthesis of peer-reviewed migration-elasticity studies plus IRS SOI county-to-county migration data, 2012-2022

State income tax changes move only the top slice of earners, not the overall population IRS SOI county-to-county migration (all filers, 2012-2022) vs. peer-reviewed migration-elasticity estimates for top earners CA Prop 30 (2012, +3pp top rate): out-migration rate among top-bracket filers 1.5% -> 2.3% +53% relative Rauh & Shyu (2024, AEJ:Policy) - affects only filers landing in the new top bracket, not the general population NJ millionaire tax: added migration among top 0.1% of earners +27.4 per 1,000 semi-elasticity 1.17 (stat. significant) Young, Varner, Lurie & Prisinzano (2016) - among all millionaires the effect (+6.4/1,000) was not statistically significant Kansas: net domestic migration, all filers -3.0 -2.5 -2.0 -1.5 -1.0 -0.5 Filing year Net migration /1,000 pop 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2013 = Brownback tax cuts take effect; 2017 = mostly repealed. No visible discontinuity at either date. North Carolina: net domestic migration, all filers 0 1 2 3 4 5 Filing year Net migration /1,000 pop 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2014 = flat-rate income tax cut begins. NC was already a net in-migration state before the cut; growth accelerates gradually, not… All-filer migration counts from IRS SOI (via fiscal.county_migration_flows) cannot isolate income level, so they show only the population-wide net effect, which the literature says is small; row counts per filing year in this table vary 2.5x (36k-91k rows), a known IRS-file completeness issue, so year-to-year swings in the raw series should be read cautiously. AskAmerica · askamerica.ai
SVG

Summary

For the population as a whole, a state income tax change has a small, mostly undetectable effect on migration — general-population studies find semi-elasticities well under 1 (i.e., a several-point tax change shifts a tiny fraction of a percent of residents). The effect concentrates almost entirely among the top of the income distribution: millionaires and above show a real but still modest response, and the very top (0.1%) shows the clearest, statistically significant response. The best-identified single case — California's 2012 Proposition 30, a 3-percentage-point increase on the top bracket — raised the annual out-migration rate of newly top-bracketed filers from about 1.5% to about 2.3% (a 53% relative increase), still leaving the overwhelming majority of those taxpayers in place. A landmark New Jersey "millionaire tax" natural experiment found migration among the top 0.1% of earners rose by about 27 per 1,000 (statistically significant) versus about 6 per 1,000 among millionaires overall (not statistically significant). Descriptive data from this corpus on Kansas's 2012-13 tax cut and North Carolina's 2014 tax cut show no sharp discontinuity in total (all-income) net migration around either policy date — consistent with the literature's finding that broad-based migration responses are small and other forces (jobs, housing costs, climate, family ties) dominate for most movers.

What the peer-reviewed literature finds

What this corpus adds: descriptive case checks for two real tax-change states

IRS Statistics of Income county-to-county migration data (fiscal.county_migration_flows, all filers, 2012-2022) was aggregated to net in-minus-out migration per 1,000 residents for three states: Kansas (state FIPS 20), North Carolina (FIPS 37), and California (FIPS 06, used only to sanity-check the Prop 30 literature figures above, not charted). Each of the three queries excludes same-state moves from both sides of the count — for Kansas, rows where both origin_state_fips and dest_state_fips equal '20' are excluded (predicates origin_state_fips<>'20' AND dest_state_fips<>'20'); for North Carolina, rows where both equal '37' are excluded (origin_state_fips<>'37' AND dest_state_fips<>'37'); for California, rows where both equal '06' are excluded (origin_state_fips<>'06' AND dest_state_fips<>'06'). This is a definitional filter, not a data-quality judgment call: a Wichita-to-Topeka move is not interstate migration and, left in, would add the identical count to both in_ks and out_ks, leaving net_mig — the only figure charted — completely unchanged. Re-running each query without that filter confirms this: it adds roughly 25,000-40,000/year to both the in- and out-flow totals for Kansas (and comparable amounts for North Carolina and California) but changes not a single one of the net-migration-per-1,000 values charted above, since an intra-state move inflates both sides equally.

Kansas cut income tax rates sharply starting tax year 2013 (the Brownback tax cuts, including a pass-through business income exemption) and mostly repealed the cuts in 2017. Kansas ran a small net out-migration (roughly -0.8 to -2.8 per 1,000 residents/year) in every single year 2012-2022, with no visible break at either the 2013 cut or the 2017 repeal.

North Carolina replaced its progressive income tax (top rate 7.75%) with a flat rate starting tax year 2014, cutting further in subsequent years. NC was already running net in-migration (about +2/1,000) before the cut, dipped in 2014-2015, then rose gradually to over +4.6/1,000 by 2022 — a real acceleration, but gradual over years, not a step change coincident with the 2014 cut, and North Carolina's Research Triangle jobs boom and Sun Belt population growth generally are the more obvious candidate explanations.

This descriptive check is consistent with — not independent proof against — the literature: total-filer migration data cannot isolate the income level of movers, so it necessarily understates any effect concentrated in the top 0.1-1% of earners, which is exactly where the peer-reviewed studies above find the real (if still modest) response.

Bottom line and caveats

How much does a state income tax cut or hike actually change migration? For the state's population as a whole: very little — on the order of a small fraction of a percent of residents, often not statistically distinguishable from zero in rigorous studies. For high earners specifically (roughly the top 1%, and especially the top 0.1%): a real, measurable effect exists, on the order of a 50%-plus relative increase in the already-small annual departure rate following a several-percentage-point tax hike (Prop 30), or on the order of 1-3 extra migrants per 1,000 top-bracket filers per year (NJ). Even at the top, the large majority of affected taxpayers stay — the dominant revenue response to a state tax hike on high earners is income/avoidance adjustment by people who remain, not people leaving.

Caveats: (1) This corpus's IRS SOI migration table has no income breakdown, so the Kansas/NC checks here are population-wide proxies, not the top-earner-specific test the literature actually runs — a real effect concentrated in the top 1% could exist underneath a flat aggregate line. (2) Row counts per filing year in that table vary roughly 2.5x (36,000 to 91,000 rows/year), a known IRS-file completeness issue that makes year-to-year swings in the raw series (not the multi-year direction) less trustworthy. (3) None of the studies above isolate a tax change from simultaneous confounds (job growth, housing costs, remote-work shifts, SALT-cap changes) — the Rauh & Shyu and Agrawal & Tester designs are the most causally careful (using matched control groups and a location-choice natural experiment, respectively) and are weighted accordingly above.

Every query behind this report

5 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 11 rows — 2649 ms
SELECT year,
  SUM(CASE WHEN dest_state_fips='20' AND origin_state_fips<>'20' THEN num_individuals ELSE 0 END) AS in_ks,
  SUM(CASE WHEN origin_state_fips='20' AND dest_state_fips<>'20' THEN num_individuals ELSE 0 END) AS out_ks
FROM fiscal.county_migration_flows
WHERE dest_state_fips='20' OR origin_state_fips='20'
GROUP BY year ORDER BY year
query — 11 rows — 2084 ms
SELECT year,
  SUM(CASE WHEN dest_state_fips='06' AND origin_state_fips<>'06' THEN num_individuals ELSE 0 END) AS in_ca,
  SUM(CASE WHEN origin_state_fips='06' AND dest_state_fips<>'06' THEN num_individuals ELSE 0 END) AS out_ca
FROM fiscal.county_migration_flows
WHERE dest_state_fips='06' OR origin_state_fips='06'
GROUP BY year ORDER BY year
query — 11 rows — 2258 ms
SELECT year,
  SUM(CASE WHEN dest_state_fips='37' AND origin_state_fips<>'37' THEN num_individuals ELSE 0 END) AS in_nc,
  SUM(CASE WHEN origin_state_fips='37' AND dest_state_fips<>'37' THEN num_individuals ELSE 0 END) AS out_nc
FROM fiscal.county_migration_flows
WHERE dest_state_fips='37' OR origin_state_fips='37'
GROUP BY year ORDER BY year
per_capita — 9532 ms
SELECT year,
  SUM(CASE WHEN dest_state_fips='20' AND origin_state_fips<>'20' THEN num_individuals ELSE 0 END)
  - SUM(CASE WHEN origin_state_fips='20' AND dest_state_fips<>'20' THEN num_individuals ELSE 0 END) AS net_mig,
  '20' AS state_fips
FROM fiscal.county_migration_flows
WHERE dest_state_fips='20' OR origin_state_fips='20'
GROUP BY year ORDER BY year
per_capita — 6696 ms
SELECT year,
  SUM(CASE WHEN dest_state_fips='37' AND origin_state_fips<>'37' THEN num_individuals ELSE 0 END)
  - SUM(CASE WHEN origin_state_fips='37' AND dest_state_fips<>'37' THEN num_individuals ELSE 0 END) AS net_mig,
  '37' AS state_fips
FROM fiscal.county_migration_flows
WHERE dest_state_fips='37' OR origin_state_fips='37'
GROUP BY year ORDER BY year

Sources

  1. Rauh & Shyu (2024), "Behavioral Responses to State Income Taxation of High Earners: Evidence from California", AEJ:Economic Policy 16(1):34-86
  2. Young, Varner, Lurie & Prisinzano (2016), "Millionaire Migration and Taxation of the Elite", American Sociological Review
  3. Cassidy, Dincecco & Troiano (2024), "The Introduction of the Income Tax, Fiscal Capacity, and Migration: Evidence from US States", AEJ:Economic Policy
  4. Agrawal & Tester (2024), "State Taxation of Nonresident Income and the Location of Work", AEJ:Economic Policy
  5. Tax Foundation summary of the three 2024 AEJ:Policy migration studies
  6. ScienceDaily / UC Riverside coverage of Cassidy-Dincecco-Troiano study
  7. Kansas net domestic migration per 1,000 residents, 2012-2022
    Show SQL
    SELECT year, SUM(CASE WHEN dest_state_fips='20' AND origin_state_fips<>'20' THEN num_individuals ELSE 0 END) - SUM(CASE WHEN origin_state_fips='20' AND dest_state_fips<>'20' THEN num_individuals ELSE 0 END) AS net_mig FROM fiscal.county_migration_flows WHERE dest_state_fips='20' OR origin_state_fips='20' GROUP BY year ORDER BY year
  8. North Carolina net domestic migration per 1,000 residents, 2012-2022
    Show SQL
    SELECT year, SUM(CASE WHEN dest_state_fips='37' AND origin_state_fips<>'37' THEN num_individuals ELSE 0 END) - SUM(CASE WHEN origin_state_fips='37' AND dest_state_fips<>'37' THEN num_individuals ELSE 0 END) AS net_mig FROM fiscal.county_migration_flows WHERE dest_state_fips='37' OR origin_state_fips='37' GROUP BY year ORDER BY year