# Places that beat the model: report

Chapter 9.3 of ZIP Code Destiny, by Vishal Singh (NYU Stern). Generated from the chapter's data files; the reading version is at https://vishalsingh.org/zipcode/places-that-beat-the-model. Table n of this report is figure n of the chapter.

## Identification

- Title: Places that beat the model
- Label: Coda
- Chapter: 9.3 (Part IX, Reading the patterns; Reading the patterns)
- Question: Where do children from low-income families rise further than five census measures predict, and do people move toward those places?
- Dek: Five census measures from 2019 to 2023 account for 44.0% of the variation in tract upward mobility for children born in 1978 to 1983, and counties below that prediction cluster in the South.
- Grain: counties
- Status: published
- Published: 2026-10-09
- Updated: 2026-10-28
- Data sources:
  - Opportunity Atlas. Adult household income rank of children born 1978 to 1983 to parents at the 25th income percentile, 2020-tract file (the model's outcome) and county file (the migration comparison); years: 1978-1983 birth cohorts (2018 release); weights: ACS 2019-2023 tract population; county population
  - American Community Survey. ACS 2019 to 2023 tract measures (poverty, college, single-parent share, median household income, race and ethnicity, homeownership, population) and tract median home values, averaged to counties; years: 2019-2023 (5-year); weights: 2019-2023 tract population
  - Census TIGER/Line tracts. 2020 tract land area, for residents per square mile; years: 2020; weights: none (land area)
  - CDC PLACES. Current smoking among adults, 2024 release, tracts; years: 2024 release (tracts); 2025 release (ZCTAs, 2023 data year); weights: 2019-2023 tract population
  - EPA EJScreen. Share of housing units built before 1960, 2024 release, tracts; years: 2024 (indicators); ACS 2018-2022 (demographics); weights: 2019-2023 tract population
  - USALEEP life expectancy. Life expectancy at birth by tract, deaths in 2010 to 2015, area-weighted onto 2020 tracts, for the life-expectancy version of the model and county means; years: 2010-2015; weights: 2019-2023 tract population
  - Area Deprivation Index. Area Deprivation Index 2023, national rank, tracts averaged to counties; years: 2023 release (version 4.0.1; built on ACS 2019-2023); weights: 2019-2023 tract population
  - IRS migration data. County-to-county migration, filing years 2022 and 2023: arriving and leaving returns and adjusted gross income, all origins and destinations; years: 2022-2023 (filing years); weights: none (full counts of returns)
  - IRS Statistics of Income. IRS Statistics of Income county file, tax year 2022: returns filed, summed over the income brackets, the denominator of the net migration rate; years: tax year 2022; weights: none (full counts of returns)
- Canonical URL: https://vishalsingh.org/zipcode/places-that-beat-the-model
- Report: https://vishalsingh.org/zipcode/places-that-beat-the-model/report
- Markdown: https://vishalsingh.org/zipcode/places-that-beat-the-model/report.md
- BibTeX key: singh2026placesthatbeatthemodel

```bibtex
@misc{singh2026placesthatbeatthemodel,
  author = {Singh, Vishal},
  title = {Places that beat the model},
  year = {2026},
  url = {https://vishalsingh.org/zipcode/places-that-beat-the-model},
  note = {In ZIP Code Destiny. Published 9 October 2026; updated 28 October 2026.}
}
```

## Principal estimates

The facts the dek and the opening prose cite, in order of appearance.

| Estimand | Population | Period | Value | Interval | n | Weights | Source | Fact id |
| --- | --- | --- | ---: | --- | ---: | --- | --- | --- |
| R-squared of the population-weighted least-squares fit of tract mobility on poverty, college share, single-parent share, log median income and Black share, county-bootstrap interval | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 44.0% | 95% CI 41.8% to 46.1% | 82,791 tracts | ACS 2019-2023 tract population | Opportunity Atlas | r2 |
| count of tracts in the model | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 82,791 |   |   | none (full count) | Opportunity Atlas | model_n |
| one minus the R-squared of the five-measure model, county-bootstrap interval | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 56.0% | 95% CI 53.9% to 58.2% | 82,791 tracts | ACS 2019-2023 tract population | Opportunity Atlas | model_unexplained |
| correlation across counties of the county mean residual of mobility with the net migration rate, weighted by county population, bootstrap interval over states | counties with a residual and a net migration rate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | −0.44 | 95% CI −0.57 to −0.28 | 1,576 counties | ACS 2019-2023 county population | IRS migration data | r_resid_rate |

## Findings

Five census measures account for 44.0% (95% CI 41.8% to 46.1%) of the variation in upward mobility across 82,791 tracts, where upward mobility is the adult household income rank of children raised in low-income families.[1] The children were born in 1978 to 1983, and the five measures describe the tracts in 2019 to 2023. The remaining 56.0% is not scattered at random. Averaged to counties, it lies below the prediction in the South and above it in the largest counties around New York. The counties above the prediction lost tax filers on net in filing years 2022 and 2023, a correlation of −0.44 (95% CI −0.57 to −0.28) between the county residual and the net migration rate. Part of that correlation is built in by timing, since the five measures describe counties after many of the movers had arrived.

The chapter takes two steps. The first fits the model, averages its residuals to counties and describes the counties at both ends. The second follows tax filers between counties and asks whether net migration runs toward the places where children from low-income families rise furthest. The life-expectancy gradient that the book starts from is in Chapter 8.4, Place and the length of a life (https://vishalsingh.org/zipcode/place-and-the-length-of-a-life), and the Opportunity Atlas map of mobility is in Chapter 4.3, Race, income and mobility (https://vishalsingh.org/zipcode/race-income-and-mobility). A residual is the part of mobility that these five measures leave unexplained. It is not a measure of what a place does to a child.

### A five-measure model of upward mobility

The outcome is the position in the national distribution of household income that children born in 1978 to 1983 to parents at the 25th income percentile had reached by 2014 to 2015, as the Opportunity Atlas estimates it. The predictors are the poverty rate, the share of adults with a bachelor's degree or more, the single-parent household share, the natural log of median household income and the Black share of residents (Black alone, of any ethnicity). All five come from the American Community Survey (ACS) for 2019 to 2023. A weighted least-squares line, with each tract counted in proportion to its population, fits 82,791 tracts in 3,136 counties after leaving out tracts with 200 residents or fewer. It accounts for 44.0% (95% CI 41.8% to 46.1%) of the variance in tract mobility, and 56.0% (95% CI 53.9% to 58.2%) remains. The interval comes from a bootstrap that resamples whole counties.

The outcome and the predictors describe different decades. The children grew up in the 1980s and 1990s, and the predictors describe 2019 to 2023. Each prediction therefore asks what a tract's census profile today implies for children raised there a generation ago. Table 1 plots the actual rank against the prediction. Tenths of tracts ranked by prediction lie close to the diagonal, so the line is not tilted at either end. The dots spread around it with a population-weighted standard deviation of 5.0 percentile points. The gap between a tract's actual and predicted rank is its residual.

Table 1. Five census measures account for 44.0% of the variation in tract upward mobility, and the population-weighted standard deviation of the gap between actual and predicted rank is 5.0 percentile points

A tract's residual mixes things the data cannot separate. The Atlas estimate for a tract rests on a modest number of children and carries added privacy noise. The five measures omit much that differs between places, such as schools and local labor markets. The outcome and the predictors also describe different decades. The next section asks whether residuals averaged to counties behave like noise.

### Counties above and below the prediction

The residual of a county is the mean of its tract residuals, weighted by tract population. A county needs at least 8 tracts in the model, which leaves 1,576 counties that hold 94% of the model's population (Table 2). County residuals run from −4.8 percentile points at the fifth percentile of counties to +5.0 at the ninety-fifth.

Ranking counties on a noisy estimate can produce a list of extremes that is mostly noise, so two checks come first. The typical standard error of a county residual is 0.7 percentile points, small beside that spread. It treats the tracts of a county as independent and leaves out errors that all of them share. The second check splits the tracts of each county at random into two subsets, ranks counties on one subset and reads the residual off the other. Across counties the residuals of the two subsets correlate +0.85 (95% CI 0.80 to 0.88). The tenth of counties highest in the first subset has a mean residual of +5.0 (95% CI 3.7 to 6.1) in the second, against −4.4 (95% CI −5.0 to −3.4) for the lowest tenth. The ranking is therefore not an artifact of the noise in a subset.

The floor matters for the extremes. A floor of 5 tracts maps 2,140 counties and puts the ninety-fifth percentile of county residuals at +6.6. A floor of 15 maps 944 and puts it at +3.9. The correlation of the residual with net migration, below, keeps its sign at both floors.

Among the 281 counties with at least 250,000 residents, the largest residuals, in percentile points of adult income rank, are in Richmond County, New York, which is Staten Island (+6.2 (95% CI 5.3 to 7.2)), Nassau County, New York (+6.1 (95% CI 5.4 to 6.8)), Bergen County, New Jersey (+6.1 (95% CI 5.5 to 6.7)) and Queens (+5.6 (95% CI 5.2 to 6.1)).

The smallest residuals are in St. Johns County, Florida (−5.8 (95% CI −7.3 to −4.4)), Denver (−5.4 (95% CI −6.1 to −4.6)) and Buncombe County, North Carolina, which holds Asheville (−5.4 (95% CI −6.1 to −4.6)).

Of the 10 counties of that size with the largest residuals, 9 lie in New York, New Jersey, Pennsylvania, Massachusetts or Virginia. Of the 10 smallest, 8 lie in the South, a Census region that includes the District of Columbia.

Across the mapped counties, the South holds the bottom tenth. Of its counties, 81% lie in the South, which holds 46% of all mapped counties. The share is 83% with a floor of 15 tracts.

The top tenth depends on the floor. With the floor of 8 tracts, 54% of the top tenth lie in the Midwest, which holds 28% of the counties. Another 14% lie in the Northeast, which holds 13%.

With a floor of 15 tracts the Midwest share of the top tenth is 37% against 23% of the counties. The Northeast share is 28% against 17%. The Midwestern part of the top tenth is therefore made of counties with few tracts, and the largest counties above the prediction are the ones near New York.

Table 2. Counties below the prediction cluster in the South, and the largest counties above it lie around New York

 (Note: Counties that gained many college-educated adults after the 1990s have high predictors for children who grew up there earlier, and they would sit below the line for that reason alone. The staged data hold no census measures from before 2019, so the chapter cannot test that explanation.)

### Older housing and fewer smokers mark the counties above the prediction

Table 3 compares the tenth of counties with the largest residuals, home to 18.1 million people, with the tenth with the smallest, home to 17.2 million people. The table under the figure gives each top minus bottom difference with an interval from draws shared by the two groups. Five differences have intervals that exclude zero. Housing built before 1960 makes up 38% (95% CI 28% to 47%) of housing units in the top tenth and 18% (95% CI 15% to 22%) in the bottom tenth, a difference of +20.1 (95% CI 9.8 to 29.2) points.

The smoking share of adults is 13.5% (95% CI 12.6% to 14.8%) in the top tenth and 15.9% (95% CI 15.2% to 16.6%) in the bottom tenth, a difference of −2.4 (95% CI −3.5 to −0.9) points. The Hispanic share differs by +5.2 (95% CI 0.7 to 9.3) points and the poverty rate by −1.9 (95% CI −3.4 to −0.2) points.

The average resident of the top tenth lives at 9,090 (95% CI 2,838 to 18,233) people per square mile, against 2,286 (95% CI 1,149 to 3,952) in the bottom tenth, a difference of +6,803 (95% CI 97 to 15,794), whose lower limit is close to zero. The differences in the Black share, in ownership and in college include zero.

Table 3. Counties in the top tenth by residual have more pre-1960 housing, a larger Hispanic share, less poverty and fewer smokers than the bottom tenth, and the differences in the Black share, ownership and college include zero

The same five measures account for 44.2% (95% CI 42.0% to 46.5%) of the variance of tract life expectancy at birth for deaths in 2010 to 2015. County residuals for the two outcomes move together. Across counties, the residual of mobility correlates +0.39 (95% CI 0.27 to 0.51) with the residual of life expectancy. Counties above the prediction for children raised in the 1980s therefore tend to be above it for the life expectancy of residents in 2010 to 2015. What the five measures leave out is partly shared between the two outcomes, and these data do not say what it is.

### Net income moved toward the South in filing years 2022 and 2023

The Internal Revenue Service matches the individual returns filed in 2022 with those filed in 2023 on the filer's taxpayer identification number. It assigns each return a county from the full ZIP code on it and counts a return as a migrant when the county differs between the two filings.[2] The unit is the filer, usually a household, and not the person. People who do not file are missing, and the address on a return is a mailing address. Arrivals include moves from abroad and departures include moves abroad. Arriving returns equal 5.6% of the returns filed for tax year 2022. Adjusted gross income is the amount on the 2023 return, and net income is arriving minus leaving.

Of the 3,086 counties with both directions published, 1,719 gained net income and 1,367 lost it, and the gaining counties together received 71.6 billion dollars net (Table 4).

Among counties of 50,000 residents or more, San Francisco lost the most per resident, 2,488 dollars, and Collier County, Florida, gained the most, 5,793 dollars.

Pooled by Census region, net income per resident was 270 (95% CI 22 to 528) dollars in the South, −332 (95% CI −475 to −54) in the Northeast and −172 (95% CI −296 to −60) in the Midwest. The interval for the West includes zero.

Table 4. Net adjusted gross income was positive in 1,719 counties and negative in 1,367, with the largest losses per resident in San Francisco and Boston's Suffolk County and the largest gains in Florida

### Net migration is lower where childhood mobility is higher

Table 5 sets each county's net migration rate, arriving minus leaving returns per thousand returns filed, against the Atlas mobility rank of children raised there. Across 3,086 counties the correlation is −0.19 (95% CI −0.31 to −0.02) when each county counts in proportion to its population and −0.23 (95% CI −0.33 to −0.10) when each counts once. The slope of the fitted line is −0.39 (95% CI −0.68 to −0.05) returns per thousand for each percentile point of the mobility rank.

The sign is the same against life expectancy for deaths in 2010 to 2015, −0.25 (95% CI −0.37 to −0.09) weighted and −0.13 (95% CI −0.23 to −0.01) unweighted. Counties where children from low-income families rose further and adults lived longer gained fewer filers.

The tenths show where the association sits. The two tenths highest on mobility had net rates of −5.2 (95% CI −7.9 to −1.6) and −3.6 (95% CI −4.7 to −1.9) returns per thousand, with intervals below zero. The lowest tenths gained in the point estimates, +0.9 (95% CI −2.7 to 3.6) and +3.6 (95% CI −0.7 to 7.3), but their intervals include zero.

Deprivation gives a less consistent picture, since the correlation is +0.19 (95% CI −0.05 to 0.34) weighted and −0.19 (95% CI −0.28 to −0.09) unweighted. The most deprived tenth of counties had a net rate of −4.5 (95% CI −6.7 to −2.3) returns per thousand, the least deprived tenth had −2.4 (95% CI −4.6 to 1.5), and the second least deprived had +2.6 (95% CI −0.1 to 5.1). Net out-migration of filers therefore shows at the most deprived end with an interval below zero and at the least deprived end only as a point estimate.

Table 5. Net migration of tax filers is lower in counties with higher childhood mobility, a population-weighted correlation of −0.19, and the two highest tenths by mobility lost filers on net

The county residual from the model moves with net migration more strongly than mobility itself does. Across the counties with a residual, the correlation of the residual with the net migration rate is −0.44 (95% CI −0.57 to −0.28) weighted and −0.39 (95% CI −0.49 to −0.27) counting each county once. Part of that link is built in by timing. The predictors describe 2019 to 2023, after many movers had arrived, so a county that gained college-educated residents has high predictors and, if its children's outcomes predate those residents, a negative residual. The data cannot separate that mechanical link from any other.

### Home values and net income per resident

Table 6 plots net income per resident against county home value. Across 3,084 counties the correlation is −0.30 (95% CI −0.47 to 0.02) weighted by population and +0.18 (95% CI 0.04 to 0.33) counting each county once. The first interval includes zero and the second lies above zero. The two differ in sign because the weighted version counts each county in proportion to its population.

Net income per resident did not decline steadily with home value. In the lowest tenth of counties by home value, net income was −109 (95% CI −142 to −70) dollars per resident, the only tenth with an interval entirely below zero. In the top tenth it was −103 (95% CI −298 to 238), and the ninth tenth received 103 (95% CI −129 to 382). Both of those intervals include zero. The point estimates are lowest in the cheapest tenth and the most expensive tenth and highest in the ninth. The relation of life expectancy to home value, and the years of life that go with each doubling of it, are in Chapter 5.2, Home value, income and redlining (https://vishalsingh.org/zipcode/home-value-income-and-redlining).

Table 6. Net income per resident does not fall steadily with county home value, with a population-weighted correlation of −0.30 and +0.18 when each county counts once

### Pooled by deprivation, arriving and leaving returns report similar incomes

One account of these flows is income sorting, in which richer filers replace poorer ones. Table 7 compares the average adjusted gross income of arriving and leaving returns, pooled over tenths of counties by deprivation. Both averages fall by nearly the same amount from the least to the most deprived tenth. The arriving minus leaving gap runs from −2,110 to 2,486 dollars across the tenths. Its interval includes zero in 9 of the ten, among them the most deprived tenth, where the gap is −337 (95% CI −1126 to 559) dollars. Only the ninth tenth has arriving returns that report more than leaving returns by an amount the interval separates from zero.

Counties taken one by one give a different answer from pooling. The correlation of the county gap with deprivation is +0.02 (95% CI −0.13 to 0.13) weighted by population, a value near zero, and −0.21 (95% CI −0.29 to −0.14) counting each county once. With each county counted once, arriving returns report less than leaving returns where deprivation is higher. In the median county, arriving returns report 54,902 (95% CI 52,722 to 57,194) dollars of income and leaving returns 52,444 (95% CI 50,430 to 54,356), a median gap of 2,514 (95% CI 1,466 to 3,433) dollars. Similar incomes therefore hold for the pooled tenths and the population-weighted correlation, and not for the median county or the unweighted correlation. The averages describe returns, and they hide who within a county moves.

Table 7. In pooled tenths of counties by deprivation, returns arriving report about the same income as returns leaving, though the median county's arriving returns report 2,514 dollars more

> Causal evidence: Whether places change children's incomes and whether housing costs steer migration (Movers design; Bartik-type comparisons of state income convergence, split by predetermined land-use regulation and by land availability)
>
> Two studies ask the causal questions that this chapter's comparisons point to.
>
> Chetty and Hendren followed children whose families moved between counties and commuting zones, using variation in the age of the child at the move, including siblings in the same family. The outcomes of children who moved to a county with higher incomes among its permanent residents moved toward those of permanent residents in proportion to the years of childhood they spent there.[3] The county-level companion paper estimates the causal contribution of each county and identifies affordable counties with strong outcomes.[4] The design identifies how much a move changes a child's outcome. It does not identify why a county sits above or below a census-based prediction.
>
> Ganong and Shoag count the state supreme and appellate court cases per capita that mention land use, as a measure of land-use regulation, and relate the convergence of state incomes to it. To check that regulation is not a result of slower convergence, they split states by the same measure for 1956 to 1965, before the slowdown, and by land availability, a Bartik-type use of historical differences across places with a national change. Convergence slowed where regulation was tighter, and rising housing prices in high-income states deterred the migration of low-skill workers toward them.[5] The study covers states from 1940 to 2010. It does not test whether housing cost steers the county flows of 2022 and 2023.

### What these data cannot show

None of the residuals measures what a place does for a child. A county residual combines noise in the Atlas estimates, measures the model omits and the gap between the decades of the outcome and of the predictors. The standard error of a county residual leaves out errors that all of a county's tracts share. The floor of 8 tracts excludes 1,567 map units, so the map says nothing about them. The traits in Table 3 describe counties selected on the residual, and their intervals treat the two groups as fixed.

The migration figures cover one pair of filing years. Internal migration in the United States has declined since the 1980s.[6] Arriving returns equal only 5.6% of the returns filed here, so most filers in every county did not change county. The two filings follow the pandemic years, in which demand for housing shifted from the centers of large cities toward their outskirts,[7] and one pair of years may not describe other periods. The unit is the county, so the correlations compare places and say nothing about why any household moved. Several of them change sign with the weighting. Connecticut's flows are published by planning region and are spread over its legacy counties by population, which is approximate. A county's home value is the mean of its tracts' median home values, weighted by population, and a tract median at the Census top code enters at the code. Puerto Rico is left out of the model and the maps.

The two halves of the chapter do not measure the same people. The residual scores the adult outcomes of children raised in the 1980s and 1990s, and the migration data score the movements of filers in 2022 and 2023. Reading one against the other compares where two different populations sit on the same map. The adjusted gross income of a return is the amount on the 2023 return, for calendar 2022, and a move between the two filings can come after part or all of that income was earned.

## Tables

### Table 1. Five census measures account for 44.0% of the variation in tract upward mobility, and the population-weighted standard deviation of the gap between actual and predicted rank is 5.0 percentile points

Adult household income rank (percentile) of children raised in low-income families against the rank predicted from poverty, college, single-parent share, income and Black share, one dot per tract (random sample)

No inline rows: the values of Table 1 are in https://vishalsingh.org/zipcode/data/places-that-beat-the-model/predicted_vs_actual.json.

Note: The dots are a random sample of the tracts inside the plotted range, drawn with a fixed seed (stated in the methods note); the R-squared, the residuals and the markers use every tract in the model.

Note: Predictors are the poverty rate, the share of adults with a bachelor's degree or more, the single-parent household share, the natural log of median household income and the Black share of residents (Black alone, of any ethnicity), all from the ACS for 2019 to 2023. Tracts with 200 residents or fewer are left out, and each tract is weighted by its ACS population.

Note: The outcome describes children raised in the 1980s and 1990s and the predictors describe 2019 to 2023, so the residual includes whatever changed in between. Ranks are percentiles of the national distribution of household income for children born in 1978 to 1983, measured in 2014 to 2015. The Opportunity Atlas adds noise to its estimates to protect privacy and the staged values are never clipped. The file on 2020 tracts is interpolated from 2010 tracts by land area.

Source: Opportunity Atlas tract outcomes, 1978-1983 birth cohorts (2020 tracts), and ACS 2019-2023 predictors; population-weighted (ACS tract population), modeled estimates

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/predicted_vs_actual.json

### Table 2. Counties below the prediction cluster in the South, and the largest counties above it lie around New York

Population-weighted mean residual of tract upward mobility (actual minus predicted rank, percentile points) by county, counties with at least 8 tracts in the model

No inline rows: the values of Table 2 are in https://vishalsingh.org/zipcode/data/places-that-beat-the-model/residual_map.json.

Note: A county is mapped when at least 8 of its tracts are in the model, which covers 94% of the model's population. Each gray county gives its reason in the tooltip.

Note: The interval in the tooltip treats a county's tracts as independent draws, so it leaves out errors that all tracts of a county share. The typical standard error is 0.7 percentile points.

Note: Connecticut is drawn as its eight legacy counties; its tracts are assigned to them exactly. Alaska is drawn. Puerto Rico is left out of the model and is not drawn. Ranks are percentiles of the national distribution of household income for children born in 1978 to 1983, measured in 2014 to 2015. The Opportunity Atlas adds noise to its estimates to protect privacy and the staged values are never clipped. The file on 2020 tracts is interpolated from 2010 tracts by land area.

Source: Opportunity Atlas tract outcomes, 1978-1983 birth cohorts, and ACS 2019-2023; population-weighted county means of model residuals, modeled estimates

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/residual_map.json

### Table 3. Counties in the top tenth by residual have more pre-1960 housing, a larger Hispanic share, less poverty and fewer smokers than the bottom tenth, and the differences in the Black share, ownership and college include zero

Population-weighted tract means in the bottom and top tenths of counties by mean residual (equal numbers of counties), with 95% intervals from a bootstrap over counties

| Trait | Bottom tenth | Top tenth | Top minus bottom (points) | Lower limit of the 95% interval | Upper limit of the 95% interval |
| --- | ---: | ---: | ---: | ---: | ---: |
| Housing built before 1960 (share of housing units) | 18.1 | 38.3 | +20.1 | +9.8 | +29.2 |
| Hispanic residents (share of residents) | 10.5 | 15.7 | +5.2 | +0.7 | +9.3 |
| Black-alone residents (share of residents) | 11.8 | 8.6 | −3.2 | −7.2 | +0.3 |
| Adults who currently smoke (crude prevalence, share of adults) | 15.9 | 13.5 | −2.4 | −3.5 | −0.9 |
| Owner-occupied homes (share of households) | 70.2 | 68.2 | −1.9 | −8.4 | +4.0 |
| Adults with a bachelor's degree or more (share of adults) | 33.9 | 37.6 | +3.6 | −2.5 | +9.2 |
| Residents below the poverty line (share of residents) | 12.6 | 10.7 | −1.9 | −3.4 | −0.2 |

Note: Tenths hold equal numbers of counties ranked on the mean residual, and the tracts of those counties form the groups. The groups are fixed before the draws, so the intervals leave out the uncertainty of the ranking.

Note: Race shares are race alone and include Hispanic residents of any race. Smoking is the PLACES crude prevalence among adults, a model-based estimate built partly from ACS inputs. The pre-1960 share is from EJScreen, which draws it from the ACS for 2018 to 2022. Tracts without a value drop out of that row.

Note: The poverty, college and Black-share rows are predictors in the model, so their gaps are differences between whole counties; inside a tract the residual is unrelated to them by construction.

Source: ACS 2019-2023, CDC PLACES 2024 release (smoking, modeled estimates) and EPA EJScreen 2024 (housing age); population-weighted (ACS tract population) tract means by group of counties

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/overperformer_traits.json

### Table 4. Net adjusted gross income was positive in 1,719 counties and negative in 1,367, with the largest losses per resident in San Francisco and Boston's Suffolk County and the largest gains in Florida

Net adjusted gross income (arriving minus leaving returns) in dollars per resident by county, returns filed in 2022 matched with returns filed in 2023

No inline rows: the values of Table 4 are in https://vishalsingh.org/zipcode/data/places-that-beat-the-model/net_agi_map.json.

Note: Arrivals and departures are tax returns matched across the 2022 and 2023 filings on the filer's taxpayer identification number, with a county assigned from the ZIP+4 on each return, so the unit is the filer and not the person. People who do not file are missing, and the IRS withholds small flows; a withheld direction leaves the county gray, never at zero. Income is adjusted gross income on the 2023 return, converted from thousands of dollars.

Note: Arrivals include moves from abroad, departures include moves abroad, and both include moves to and from the territories. Net income is divided by the ACS 2019-2023 population, which counts people who do not file.

Note: Connecticut's IRS flows are published by planning region and are allocated to its legacy counties in proportion to 2020 population, which is approximate. Alaska is drawn. Puerto Rico is not drawn.

Source: IRS Statistics of Income county-to-county migration data, filing years 2022 and 2023, and ACS 2019-2023 population; full counts of returns, not weighted

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/net_agi_map.json

### Table 5. Net migration of tax filers is lower in counties with higher childhood mobility, a population-weighted correlation of −0.19, and the two highest tenths by mobility lost filers on net

Net migrating returns per 1,000 returns filed for tax year 2022, by county, against the Opportunity Atlas upward-mobility rank, returns filed in 2022 matched with returns filed in 2023

#### Table 5.1. Counties

Counties with a higher upward-mobility rank had lower net migration, a slope of −0.39 returns per thousand for each percentile point

Net migrating returns per 1,000 returns filed against the mean adult income rank of children raised in low-income families, one dot per county sized by population

No inline rows: the values of Table 5.1 are in https://vishalsingh.org/zipcode/data/places-that-beat-the-model/migration_vs_mobility.json.

#### Table 5.2. Tenths by mobility

The two highest tenths of counties by mobility had net rates of −5.2 and −3.6 returns per thousand, with intervals below zero

Pooled net migrating returns per 1,000 returns filed, by tenth of counties ranked on upward mobility

| conf_high | conf_low | decile | estimate | n_units |
| ---: | ---: | --- | ---: | ---: |
| 3.64 | −2.67 | 1 (lowest) | 0.880 | 308 |
| 7.30 | −0.750 | 2 | 3.63 | 309 |
| 5.34 | −2.12 | 3 | 1.62 | 308 |
| 3.01 | −0.430 | 4 | 1.50 | 309 |
| 0.710 | −2.70 | 5 | −1.01 | 309 |
| 1.46 | −4.64 | 6 | −2.61 | 308 |
| 5.12 | −3.15 | 7 | 0.630 | 309 |
| 2.10 | −3.03 | 8 | −0.790 | 308 |
| −1.56 | −7.86 | 9 | −5.22 | 309 |
| −1.87 | −4.70 | 10 (highest) | −3.55 | 309 |

#### Table 5.3. Tenths by deprivation

The most deprived tenth of counties had a net rate of −4.5 returns per thousand and the least deprived tenth −2.4, with positive point estimates in the second to fourth tenths

Pooled net migrating returns per 1,000 returns filed, by tenth of counties ranked on the Area Deprivation Index (1 = least deprived)

| conf_high | conf_low | decile | estimate | n_units |
| ---: | ---: | --- | ---: | ---: |
| 1.52 | −4.56 | 1 (lowest) | −2.38 | 308 |
| 5.13 | −0.070 | 2 | 2.56 | 308 |
| 4.73 | 0.260 | 3 | 2.08 | 308 |
| 5.01 | −1.43 | 4 | 1.53 | 308 |
| 1.69 | −1.71 | 5 | −0.240 | 308 |
| 2.19 | −1.57 | 6 | 0.010 | 308 |
| 2.30 | −1.13 | 7 | 0.420 | 308 |
| 1.64 | −1.95 | 8 | −0.490 | 308 |
| 0.530 | −2.54 | 9 | −1.13 | 308 |
| −2.29 | −6.65 | 10 (highest) | −4.52 | 308 |

Note: The net migration rate is arriving minus leaving returns per thousand returns filed in the county for tax year 2022. Returns are filers, not people; arrivals include moves from abroad and departures include moves abroad.

Note: The scatter shows 3,086 counties. The correlation counts each county in proportion to its population. Counting each county once gives −0.23.

Note: Tenths hold equal numbers of the counties in the analysis. A bar is the sum of net returns over the counties of a tenth divided by the sum of their returns filed, so large counties count more. The intervals resample states, whose counties resemble each other.

Source: IRS Statistics of Income county migration data, filing years 2022 and 2023, IRS SOI county file, tax year 2022, Opportunity Atlas county outcomes (1978-1983 birth cohorts) and ADI 2023; population-weighted fit, full counts of returns

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/migration_vs_mobility.json

### Table 6. Net income per resident does not fall steadily with county home value, with a population-weighted correlation of −0.30 and +0.18 when each county counts once

Net adjusted gross income per resident in dollars against county home value in dollars (log scale), one dot per county sized by population, with pooled means for tenths of counties

No inline rows: the values of Table 6 are in https://vishalsingh.org/zipcode/data/places-that-beat-the-model/migration_vs_home_value.json.

Note: The county home value is the mean of the ACS 2019-2023 median home values of the county's tracts, weighted by tract population, so it is a mean of medians and not the median of the county's homes. Connecticut tracts are assigned to the legacy counties. The Census Bureau top-codes tract medians, and a tract at the top code enters at that value.

Note: The correlation counts each county in proportion to its population, and its interval includes zero. Counting each county once, it is +0.18, with an interval above zero. Both use 3,084 counties.

Note: Tenths hold equal numbers of counties, and each marker pools the counties of a tenth, so large counties count more. Intervals resample states.

Source: IRS Statistics of Income county migration data, filing years 2022 and 2023, ACS 2019-2023 population and tract median home values; population-weighted, full counts of returns

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/migration_vs_home_value.json

### Table 7. In pooled tenths of counties by deprivation, returns arriving report about the same income as returns leaving, though the median county's arriving returns report 2,514 dollars more

Average adjusted gross income per return of arriving and of leaving returns in dollars, by tenth of counties ranked on the Area Deprivation Index (1 = least deprived), returns filed in 2022 matched with 2023

| conf_high | conf_low | decile | estimate | n_units | series |
| ---: | ---: | ---: | ---: | ---: | --- |
| 101858 | 89963 | 1 | 96045 | 308 | Returns arriving |
| 100399 | 88774 | 1 | 95914 | 308 | Returns leaving |
| 81801 | 71936 | 2 | 77560 | 308 | Returns arriving |
| 81840 | 69588 | 2 | 75074 | 308 | Returns leaving |
| 67604 | 62926 | 3 | 65531 | 308 | Returns arriving |
| 70059 | 62338 | 3 | 66572 | 308 | Returns leaving |
| 61978 | 58963 | 4 | 60616 | 308 | Returns arriving |
| 65788 | 59809 | 4 | 62568 | 308 | Returns leaving |
| 57473 | 53277 | 5 | 55646 | 308 | Returns arriving |
| 60851 | 54038 | 5 | 57756 | 308 | Returns leaving |
| 54966 | 51571 | 6 | 53303 | 308 | Returns arriving |
| 55552 | 51644 | 6 | 53594 | 308 | Returns leaving |
| 52838 | 49110 | 7 | 50810 | 308 | Returns arriving |
| 51851 | 48448 | 7 | 50127 | 308 | Returns leaving |
| 51626 | 47803 | 8 | 49699 | 308 | Returns arriving |
| 49903 | 46304 | 8 | 48257 | 308 | Returns leaving |
| 47507 | 44521 | 9 | 45946 | 308 | Returns arriving |
| 45728 | 43273 | 9 | 44383 | 308 | Returns leaving |
| 42970 | 40300 | 10 | 41459 | 308 | Returns arriving |
| 43325 | 40678 | 10 | 41796 | 308 | Returns leaving |

Note: Adjusted gross income is the amount on the 2023 return of the matched pair of returns. A return is a filer, usually a household, and the averages weight each return equally.

Note: Counties need both directions published, so the 57 map units without a net figure are left out. The median county is the middle county when each counts once.

Note: Pooled averages hide who moves within a county, and pooling (which weights counties by their returns) gives a different answer from counting each county once.

Source: IRS Statistics of Income county migration data, filing years 2022 and 2023, and Area Deprivation Index 2023; pooled over counties with both directions published, full counts of returns

Data: https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/arriver_vs_leaver_income.json

## All estimates

Every fact in facts.json (112), sorted by id.

| Fact id | Value | Unit | Estimand | Population | Period | Interval | n | Weights | Source | Note |
| --- | ---: | --- | --- | --- | --- | --- | ---: | --- | --- | --- |
| adi_d1 | −2.4 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the first tenth by Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −4.6 to 1.5 | 308 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| adi_d10 | −4.5 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the tenth tenth by Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −6.7 to −2.3 | 308 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| adi_d2 | +2.6 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the second tenth by Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −0.1 to 5.1 | 308 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| agi_moved | 71.6 | billions of dollars of adjusted gross income | sum of net adjusted gross income (arriving minus leaving) over the counties that gained | counties and county equivalents with both directions of the IRS flow published, gaining counties only | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full counts of returns) | IRS migration data | Dollars are adjusted gross income on the 2023 return, converted from thousands. |
| agi_mw | −172 | dollars of net adjusted gross income per resident, positive for a gain | net adjusted gross income summed over the region's counties divided by ACS population, bootstrap interval over states | residents of the Midwest Census region | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −296 to −60 | 1,030 counties | ACS 2019-2023 county population | IRS migration data |   |
| agi_ne | −332 | dollars of net adjusted gross income per resident, positive for a gain | net adjusted gross income summed over the region's counties divided by ACS population, bootstrap interval over states | residents of the Northeast Census region | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −475 to −54 | 217 counties | ACS 2019-2023 county population | IRS migration data |   |
| agi_s | 270 | dollars of net adjusted gross income per resident, positive for a gain | net adjusted gross income summed over the region's counties divided by ACS population, bootstrap interval over states | residents of the South Census region | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI 22 to 528 | 1,411 counties | ACS 2019-2023 county population | IRS migration data |   |
| big_bot_south | 8 | counties | how many lie in the South Census region (the Census Bureau's definition, which includes the District of Columbia) | the counties of that size with the smallest residuals | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 10 counties | none (full count) | Opportunity Atlas |   |
| big_k | 10 | counties | number of counties taken from each end of the ranking by residual | counties with at least 8 tracts in the model and at least 250,000 residents | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (inclusion rule) | Opportunity Atlas |   |
| big_place | 250,000 | residents | county size above which counties are named (inclusion rule) | counties | ACS 2019 to 2023 |   |   | none (inclusion rule) | American Community Survey |   |
| big_place_mig | 50,000 | residents | county size above which counties are named in the migration text (inclusion rule) | counties | ACS 2019 to 2023 |   |   | none (inclusion rule) | American Community Survey |   |
| big_top_corridor | 9 | counties | how many lie in New York, New Jersey, Pennsylvania, Massachusetts or Virginia | the counties of that size with the largest residuals | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 10 counties | none (full count) | Opportunity Atlas |   |
| bot_v | 2,488 | dollars of net adjusted gross income lost per resident | largest net loss per resident (leaving minus arriving adjusted gross income over ACS population) among those counties: San Francisco, CA | counties with at least 50,000 residents and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   | 998 counties | none (a single county) | IRS migration data |   |
| dens_hi | 9,090 | residents per square mile of land | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the top tenth of counties by mean residual | ACS 2019 to 2023 population over 2020 census land area | 95% CI 2,838 to 18,233 | 4,512 tracts | ACS 2019-2023 tract population | American Community Survey |   |
| dens_lo | 2,286 | residents per square mile of land | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the bottom tenth of counties by mean residual | ACS 2019 to 2023 population over 2020 census land area | 95% CI 1,149 to 3,952 | 4,207 tracts | ACS 2019-2023 tract population | American Community Survey |   |
| diff_dens | +6,803 | residents per square mile of land | top-tenth mean minus bottom-tenth mean, population-weighted over tracts, interval from a county bootstrap with the same draws for both groups; the groups are fixed before the draws | residents of the tracts in the top and bottom tenths of counties by mean residual | ACS 2019 to 2023 population over 2020 census land area | 95% CI 97 to 15,794 | 8,719 tracts | ACS 2019-2023 tract population | American Community Survey |   |
| diff_hisp | +5.2 | percentage points of residents who are Hispanic | top-tenth mean minus bottom-tenth mean, population-weighted over tracts, interval from a county bootstrap with the same draws for both groups; the groups are fixed before the draws | residents of the tracts in the top and bottom tenths of counties by mean residual | ACS 2019 to 2023 | 95% CI 0.7 to 9.3 | 8,719 tracts | ACS 2019-2023 tract population | American Community Survey |   |
| diff_poverty | −1.9 | percentage points of residents below the poverty line | top-tenth mean minus bottom-tenth mean, population-weighted over tracts, interval from a county bootstrap with the same draws for both groups; the groups are fixed before the draws | residents of the tracts in the top and bottom tenths of counties by mean residual | ACS 2019 to 2023 | 95% CI −3.4 to −0.2 | 8,719 tracts | ACS 2019-2023 tract population | American Community Survey |   |
| diff_pre1960 | +20.1 | percentage points of housing units built before 1960 | top-tenth mean minus bottom-tenth mean, population-weighted over tracts, interval from a county bootstrap with the same draws for both groups; the groups are fixed before the draws | residents of the tracts in the top and bottom tenths of counties by mean residual | EJScreen 2024 release (ACS 2018 to 2022) | 95% CI 9.8 to 29.2 | 8,719 tracts | ACS 2019-2023 tract population | EPA EJScreen |   |
| diff_smoke | −2.4 | percentage points of adults who currently smoke (crude prevalence) | top-tenth mean minus bottom-tenth mean, population-weighted over tracts, interval from a county bootstrap with the same draws for both groups; the groups are fixed before the draws | residents of the tracts in the top and bottom tenths of counties by mean residual | PLACES 2024 release (BRFSS 2022) | 95% CI −3.5 to −0.9 | 8,719 tracts | ACS 2019-2023 tract population | CDC PLACES |   |
| floor_high | 15 | tracts | another minimum number of tracts in the model tried for a county residual (sensitivity) | counties | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (inclusion rule) | Opportunity Atlas |   |
| floor_low | 5 | tracts | another minimum number of tracts in the model tried for a county residual (sensitivity) | counties | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (inclusion rule) | Opportunity Atlas |   |
| gap_d10 | −337 | dollars of adjusted gross income per return, arriving minus leaving | summed adjusted gross income of arriving returns over summed arriving returns, minus the same for leaving returns, bootstrap interval over states (shared draws) | the most deprived tenth of counties with both directions published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); ADI 2023 release | 95% CI −1126 to 559 | 308 counties | none (counts of returns) | IRS migration data |   |
| gap_max | 2,486 | dollars of adjusted gross income per return, arriving minus leaving | highest tenth value of the arriving minus leaving average adjusted gross income per return | the tenth of counties with the highest gap | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (counts of returns) | IRS migration data |   |
| gap_min | −2,110 | dollars of adjusted gross income per return, arriving minus leaving | lowest tenth value of the arriving minus leaving average adjusted gross income per return | the tenth of counties with the lowest gap | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (counts of returns) | IRS migration data |   |
| gap_n_zero | 9 | tenths of counties | tenths whose 95% interval for the arriving minus leaving gap includes zero | tenths of counties by Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| hv_bot | −109 | dollars of net adjusted gross income per resident, negative for a loss | net adjusted gross income summed over the group's counties divided by ACS population, bootstrap interval over states | residents of the bottom tenth of counties by home value | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values | 95% CI −142 to −70 | 308 counties | ACS 2019-2023 county population | IRS migration data | Tenths hold equal numbers of counties. |
| hv_n | 3,084 | counties | count of counties in the scatter | counties with a home value and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values |   |   | none (full count) | IRS migration data |   |
| hv_ninth | 103 | dollars of net adjusted gross income per resident, negative for a loss | net adjusted gross income summed over the group's counties divided by ACS population, bootstrap interval over states | residents of the ninth tenth of counties by home value | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values | 95% CI −129 to 382 | 308 counties | ACS 2019-2023 county population | IRS migration data | Tenths hold equal numbers of counties. |
| hv_top | −103 | dollars of net adjusted gross income per resident, negative for a loss | net adjusted gross income summed over the group's counties divided by ACS population, bootstrap interval over states | residents of the top tenth of counties by home value | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values | 95% CI −298 to 238 | 309 counties | ACS 2019-2023 county population | IRS migration data | Tenths hold equal numbers of counties. |
| kfr_d1 | +0.9 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the first tenth by upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −2.7 to 3.6 | 308 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| kfr_d10 | −3.6 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the tenth tenth by upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −4.7 to −1.9 | 309 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| kfr_d2 | +3.6 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the second tenth by upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −0.7 to 7.3 | 309 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| kfr_d9 | −5.2 | net migrating returns per 1,000 returns filed | net migrating returns summed over the tenth's counties, divided by returns filed for tax year 2022 and multiplied by 1,000, bootstrap interval over states | counties in the ninth tenth by upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI −7.9 to −1.6 | 309 counties | none (counts of returns) | IRS migration data | Tenths hold equal numbers of counties. |
| le_r2 | 44.2% | percent of the variance of tract life expectancy | R-squared of the same five-measure, population-weighted fit with tract life expectancy at birth as the outcome, county-bootstrap interval | non-institutional 2020 tracts in the mobility model (a mobility estimate and all five predictors) that also have a life expectancy estimate | deaths in 2010 to 2015 (USALEEP, area-weighted onto 2020 tracts); predictors ACS 2019 to 2023 | 95% CI 42.0% to 46.5% | 77,746 tracts | ACS 2019-2023 tract population | USALEEP life expectancy |   |
| le_resid_r | +0.39 | correlation coefficient | correlation across counties of the county mean residual of mobility with the county mean residual of life expectancy, weighted by county population, bootstrap interval over states | counties with at least 8 tracts in each of the two models | deaths in 2010 to 2015 (USALEEP, area-weighted onto 2020 tracts); predictors ACS 2019 to 2023; mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 0.27 to 0.51 | 1,529 counties | ACS 2019-2023 county population | USALEEP life expectancy |   |
| map_clamp | 2,000 | dollars of net adjusted gross income per resident | net income per resident at the ends of the map key (display range) | counties on the map | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (display range) | IRS migration data |   |
| med_gap | 2,514 | dollars of adjusted gross income per return, arriving minus leaving | median across counties of the county's average adjusted gross income per return (arriving minus leaving), bootstrap interval over states | counties with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI 1,466 to 3,433 | 3,086 counties | none (each county counts once) | IRS migration data | Adjusted gross income is on the 2023 return. |
| med_in | 54,902 | dollars of adjusted gross income per return, arriving returns | median across counties of the county's average adjusted gross income per return (arriving returns), bootstrap interval over states | counties with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI 52,722 to 57,194 | 3,086 counties | none (each county counts once) | IRS migration data | Adjusted gross income is on the 2023 return. |
| med_out | 52,444 | dollars of adjusted gross income per return, leaving returns | median across counties of the county's average adjusted gross income per return (leaving returns), bootstrap interval over states | counties with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) | 95% CI 50,430 to 54,356 | 3,086 counties | none (each county counts once) | IRS migration data | Adjusted gross income is on the 2023 return. |
| midwest_all_share | 28% | percent of counties | share of all counties with a residual that are in the Midwest Census region, under a floor of 8 tracts | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas |   |
| midwest_all_share_high | 23% | percent of counties | share of all counties with a residual that are in the Midwest Census region, under a floor of 15 tracts | counties with at least 15 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 944 counties | none (each county counts once) | Opportunity Atlas |   |
| midwest_top_share | 54% | percent of counties | share of those counties in the Midwest Census region, under a floor of 8 tracts | the top tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 158 counties | none (each county counts once) | Opportunity Atlas |   |
| midwest_top_share_high | 37% | percent of counties | share of those counties in the Midwest Census region, under a floor of 15 tracts | the top tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 95 counties | none (each county counts once) | Opportunity Atlas |   |
| min_pop_tract | 200 | residents | a tract needs more than this many residents to enter the model (inclusion rule) | 2020 census tracts | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (inclusion rule) | Opportunity Atlas |   |
| min_tracts_resid | 8 | tracts | minimum number of tracts in the model for a county to have a residual (inclusion rule) | counties | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (inclusion rule) | Opportunity Atlas |   |
| mob_slope | −0.39 | net migrating returns per 1,000 returns filed, per percentile point of upward mobility | slope of the net migration rate on the county mobility rank, weighted by county population, bootstrap interval over states | counties with a net migration rate and a mobility estimate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −0.68 to −0.05 | 3,086 counties | ACS 2019-2023 county population | Opportunity Atlas |   |
| model_counties | 3,136 | counties | count of counties | counties and county equivalents with a tract in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas | Connecticut counts as its eight legacy counties. |
| model_n | 82,791 | tracts | count of tracts in the model | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| model_unexplained | 56.0% | percent of the variance of tract upward mobility | one minus the R-squared of the five-measure model, county-bootstrap interval | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 53.9% to 58.2% | 82,791 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| mov_gain | 1,719 | counties | counties where arriving adjusted gross income exceeds leaving | counties and county equivalents with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| mov_lose | 1,367 | counties | counties where leaving adjusted gross income exceeds arriving | counties and county equivalents with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| mov_n | 3,086 | counties | count of counties with a net figure | counties and county equivalents with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| mover_share | 5.6% | percent of returns filed for tax year 2022 | returns that arrived in a county from another county or from abroad, as a share of all returns filed | individual income tax returns filed for tax year 2022 | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full counts of returns) | IRS migration data | Arriving returns are summed over the counties with an arrivals figure; filed returns are the IRS SOI county totals for tax year 2022. |
| n_at_floor_high | 944 | counties | count of counties with a residual under this floor | counties with at least 15 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_at_floor_low | 2,140 | counties | count of counties with a residual under this floor | counties with at least 5 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_beyond | 55 | counties | counties whose net income per resident lies beyond the ends of the map key | counties and county equivalents with both directions of the IRS flow published | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| n_big | 281 | counties | count of those counties | counties with at least 8 tracts in the model and at least 250,000 residents | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_nodata_mig | 57 | counties | map units without a net figure: no IRS row, one direction withheld, or no population | counties and county equivalents on the map | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| n_out_hv | 8 | counties | counties outside the plotted range of the home-value scatter | counties with a home value and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| n_out_mob | 21 | counties | counties outside the plotted range of the mobility scatter | counties with a net migration rate and a mobility estimate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| n_outside_scatter | 132 | tracts | tracts outside the plotted range of the prediction scatter | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_resid_beyond | 148 | counties | counties whose mean residual lies beyond the ends of the map key (display range) | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_resid_counties | 1,576 | counties | count of counties with a residual | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_resid_nodata | 1,567 | counties | map units without a county residual, counting those with fewer tracts than the floor and those with no tract in the model | counties and county equivalents on the map | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (full count) | Opportunity Atlas |   |
| n_sample | 4,000 | tracts | size of a random sample of tracts drawn with a fixed seed, inside the plotted range | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (sample size) | Opportunity Atlas |   |
| northeast_all_share | 13% | percent of counties | share of all counties with a residual that are in the Northeast Census region, under a floor of 8 tracts | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas |   |
| northeast_all_share_high | 17% | percent of counties | share of all counties with a residual that are in the Northeast Census region, under a floor of 15 tracts | counties with at least 15 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 944 counties | none (each county counts once) | Opportunity Atlas |   |
| northeast_top_share | 14% | percent of counties | share of those counties in the Northeast Census region, under a floor of 8 tracts | the top tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 158 counties | none (each county counts once) | Opportunity Atlas |   |
| northeast_top_share_high | 28% | percent of counties | share of those counties in the Northeast Census region, under a floor of 15 tracts | the top tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 95 counties | none (each county counts once) | Opportunity Atlas |   |
| p95_at_floor_high | +3.9 | percentile points of national household income rank in adulthood, actual minus predicted | ninety-fifth percentile of the county mean residual under this floor, each county counted once | counties with at least 15 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 944 counties | none (each county counts once) | Opportunity Atlas |   |
| p95_at_floor_low | +6.6 | percentile points of national household income rank in adulthood, actual minus predicted | ninety-fifth percentile of the county mean residual under this floor, each county counted once | counties with at least 5 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 2,140 counties | none (each county counts once) | Opportunity Atlas |   |
| pop_high | 18.1 million | residents | sum of ACS tract population over the tracts of the group | residents of the tracts in the top tenth of counties by mean residual | ACS 2019 to 2023 |   |   | none (full count) | American Community Survey |   |
| pop_low | 17.2 million | residents | sum of ACS tract population over the tracts of the group | residents of the tracts in the bottom tenth of counties by mean residual | ACS 2019 to 2023 |   |   | none (full count) | American Community Survey |   |
| pre1960_hi | 38% | percent of housing units built before 1960 | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the top tenth of counties by mean residual | EJScreen 2024 release (ACS 2018 to 2022) | 95% CI 28% to 47% | 4,512 tracts | ACS 2019-2023 tract population | EPA EJScreen |   |
| pre1960_lo | 18% | percent of housing units built before 1960 | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the bottom tenth of counties by mean residual | EJScreen 2024 release (ACS 2018 to 2022) | 95% CI 15% to 22% | 4,207 tracts | ACS 2019-2023 tract population | EPA EJScreen |   |
| r2 | 44.0% | percent of the variance of tract upward mobility | R-squared of the population-weighted least-squares fit of tract mobility on poverty, college share, single-parent share, log median income and Black share, county-bootstrap interval | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 41.8% to 46.1% | 82,791 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| r_adi | +0.19 | correlation coefficient | correlation across counties of the net migration rate with the county Area Deprivation Index rank, weighted by county population, bootstrap interval over states | counties with a net migration rate and a Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); ADI 2023 release | 95% CI −0.05 to 0.34 | 3,080 counties | ACS 2019-2023 county population | Area Deprivation Index |   |
| r_adi_unw | −0.19 | correlation coefficient | correlation across counties of the net migration rate with the county Area Deprivation Index rank, each county counted once, bootstrap interval over states | counties with a net migration rate and a Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); ADI 2023 release | 95% CI −0.28 to −0.09 | 3,080 counties | none (each county counts once) | Area Deprivation Index |   |
| r_gap_adi | +0.02 | correlation coefficient | correlation across counties of the arriving minus leaving average adjusted gross income per return with the Area Deprivation Index rank, weighted by county population, bootstrap interval over states | counties with both directions of the IRS flow published and an Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); ADI 2023 release | 95% CI −0.13 to 0.13 | 3,080 counties | ACS 2019-2023 county population | IRS migration data |   |
| r_gap_adi_unw | −0.21 | correlation coefficient | correlation across counties of the arriving minus leaving average adjusted gross income per return with the Area Deprivation Index rank, each county counted once, bootstrap interval over states | counties with both directions of the IRS flow published and an Area Deprivation Index rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); ADI 2023 release | 95% CI −0.29 to −0.14 | 3,080 counties | none (each county counts once) | IRS migration data |   |
| r_hv | −0.30 | correlation coefficient | correlation across counties of net adjusted gross income per resident with the county home value, weighted by county population, bootstrap interval over states | counties with a home value and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values | 95% CI −0.47 to 0.02 | 3,084 counties | ACS 2019-2023 county population | IRS migration data | The county home value is the mean of the ACS 2019-2023 median home values of the county's tracts, weighted by ACS 2019-2023 tract population; Connecticut tracts are assigned to the legacy counties through the tract crosswalk. A tract at the Census top code of 2,000,001 dollars enters at that value. |
| r_hv_unw | +0.18 | correlation coefficient | correlation across counties of net adjusted gross income per resident with the county home value, each county counted once, bootstrap interval over states | counties with a home value and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); county home values from ACS 2019 to 2023 tract median home values | 95% CI 0.04 to 0.33 | 3,084 counties | none (each county counts once) | IRS migration data |   |
| r_kfr | −0.19 | correlation coefficient | correlation across counties of the net migration rate with the county upward-mobility rank, weighted by county population, bootstrap interval over states | counties with a net migration rate and a upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −0.31 to −0.02 | 3,086 counties | ACS 2019-2023 county population | Opportunity Atlas |   |
| r_kfr_unw | −0.23 | correlation coefficient | correlation across counties of the net migration rate with the county upward-mobility rank, each county counted once, bootstrap interval over states | counties with a net migration rate and a upward-mobility rank | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −0.33 to −0.10 | 3,086 counties | none (each county counts once) | Opportunity Atlas |   |
| r_le | −0.25 | correlation coefficient | correlation across counties of the net migration rate with the county life expectancy, weighted by county population, bootstrap interval over states | counties with a net migration rate and a life expectancy | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); life expectancy for deaths in 2010 to 2015 | 95% CI −0.37 to −0.09 | 3,075 counties | ACS 2019-2023 county population | USALEEP life expectancy |   |
| r_le_unw | −0.13 | correlation coefficient | correlation across counties of the net migration rate with the county life expectancy, each county counted once, bootstrap interval over states | counties with a net migration rate and a life expectancy | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); life expectancy for deaths in 2010 to 2015 | 95% CI −0.23 to −0.01 | 3,075 counties | none (each county counts once) | USALEEP life expectancy |   |
| r_resid_rate | −0.44 | correlation coefficient | correlation across counties of the county mean residual of mobility with the net migration rate, weighted by county population, bootstrap interval over states | counties with a residual and a net migration rate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −0.57 to −0.28 | 1,576 counties | ACS 2019-2023 county population | IRS migration data |   |
| r_resid_rate_unw | −0.39 | correlation coefficient | correlation across counties of the county mean residual of mobility with the net migration rate, each county counted once, bootstrap interval over states | counties with a residual and a net migration rate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022); mobility for children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −0.49 to −0.27 | 1,576 counties | none (each county counts once) | IRS migration data |   |
| resid_bergen | +6.1 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Bergen, NJ | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 5.5 to 6.7 | 203 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_buncombe | −5.4 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Buncombe, NC | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −6.1 to −4.6 | 64 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_denver | −5.4 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Denver, CO | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −6.1 to −4.6 | 175 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_key | 5 | percentile points of national household income rank in adulthood | residual at the ends of the map key (display range) | counties on the map | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   |   | none (display range) | Opportunity Atlas |   |
| resid_nassau | +6.1 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Nassau, NY | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 5.4 to 6.8 | 278 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_p5 | −4.8 | percentile points of national household income rank in adulthood, actual minus predicted | fifth percentile of the county mean residual, each county counted once | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas |   |
| resid_p95 | +5.0 | percentile points of national household income rank in adulthood, actual minus predicted | ninety-fifth percentile of the county mean residual, each county counted once | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas |   |
| resid_pop_share | 94% | percent of the population of the tracts in the model | share of the model's population living in counties with a residual | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_queens | +5.6 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Queens, NY | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 5.2 to 6.1 | 673 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_sd | 5.0 | percentile points of national household income rank in adulthood | population-weighted standard deviation of the tract residual (actual minus predicted rank) | 2020 census tracts with more than 200 residents, a mobility estimate and all five predictors | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 82,791 tracts | ACS 2019-2023 tract population | Opportunity Atlas | Full counts of the tracts in the model; no sampling interval is drawn. |
| resid_se_median | 0.7 | percentile points of national household income rank in adulthood | median across counties of the standard error of the county mean residual (spread of tract residuals within the county) | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas | The standard error treats a county's tracts as independent draws. It leaves out errors shared by all tracts of a county. |
| resid_stjohns | −5.8 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in St. Johns, FL | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −7.3 to −4.4 | 49 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| resid_top | +6.2 | percentile points of national household income rank in adulthood, actual minus predicted | population-weighted mean of the tract residuals in the county; the interval is 1.96 standard errors from the spread of tract residuals within the county | children raised in low-income families (parents at the 25th percentile of the national income distribution) in Richmond, NY | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 5.3 to 7.2 | 117 tracts | ACS 2019-2023 tract population | Opportunity Atlas |   |
| scatter_n | 3,086 | counties | count of counties in the scatter | counties with a net migration rate and a mobility estimate | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   |   | none (full count) | IRS migration data |   |
| smoke_hi | 13.5% | percent of adults who currently smoke | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the top tenth of counties by mean residual | PLACES 2024 release (BRFSS 2022) | 95% CI 12.6% to 14.8% | 4,512 tracts | ACS 2019-2023 tract population | CDC PLACES |   |
| smoke_lo | 15.9% | percent of adults who currently smoke | population-weighted mean over the tracts of the group, county-bootstrap interval; the groups are fixed before the draws | residents of the tracts in the bottom tenth of counties by mean residual | PLACES 2024 release (BRFSS 2022) | 95% CI 15.2% to 16.6% | 4,207 tracts | ACS 2019-2023 tract population | CDC PLACES |   |
| south_all_share | 46% | percent of counties | share of all counties with a residual that are in the South Census region, under a floor of 8 tracts | counties with at least 8 tracts in the model | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 1,576 counties | none (each county counts once) | Opportunity Atlas |   |
| south_bottom_share | 81% | percent of counties | share of those counties in the South Census region, under a floor of 8 tracts | the bottom tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 157 counties | none (each county counts once) | Opportunity Atlas |   |
| south_bottom_share_high | 83% | percent of counties | share of those counties in the South Census region, under a floor of 15 tracts | the bottom tenth of counties with a residual, ranked by mean residual | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 |   | 94 counties | none (each county counts once) | Opportunity Atlas |   |
| split_bottom | −4.4 | percentile points of national household income rank in adulthood, actual minus predicted | mean residual in the second random half of tracts of the bottom tenth of counties ranked on the first half, each county counted once, bootstrap interval over states | counties with at least 8 tracts in the model and at least 3 tracts in each random half | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI −5.0 to −3.4 | 1,486 counties | none (each county counts once) | Opportunity Atlas |   |
| split_r | +0.85 | correlation coefficient | correlation across counties between the mean residual of one random half of a county's tracts and the other half, each county counted once, bootstrap interval over states | counties with at least 8 tracts in the model and at least 3 tracts in each random half | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 0.80 to 0.88 | 1,486 counties | none (each county counts once) | Opportunity Atlas |   |
| split_top | +5.0 | percentile points of national household income rank in adulthood, actual minus predicted | mean residual in the second random half of tracts of the top tenth of counties ranked on the first half, each county counted once, bootstrap interval over states | counties with at least 8 tracts in the model and at least 3 tracts in each random half | children born 1978 to 1983, household income measured in 2014 to 2015; predictors ACS 2019 to 2023 | 95% CI 3.7 to 6.1 | 1,486 counties | none (each county counts once) | Opportunity Atlas |   |
| top_v | 5,793 | dollars of net adjusted gross income gained per resident | largest net gain per resident (arriving minus leaving adjusted gross income over ACS population) among those counties: Collier, FL | counties with at least 50,000 residents and a net figure | returns filed in 2022 matched with returns filed in 2023 (tax years 2021 and 2022) |   | 998 counties | none (a single county) | IRS migration data |   |

## Definitions

- Income rank (kfr): The position that adult children reach in the national distribution of household income, from the lowest rank to the highest, averaged over children who grew up in a place with parents at a stated income level. The Opportunity Atlas labels this measure kfr.
- Census tract: A small area drawn by the Census Bureau to stand in for a neighborhood. Boundaries are redrawn after each decennial census.
- Bootstrap interval: A range for an estimate found by recomputing it on many random resamples of the data and reading the range from the results. It shows how much the estimate would vary from sample to sample.
- Life expectancy at birth: The average number of years a newborn would live if death rates at every age stayed as they were in the period measured. It summarizes the death rates of a period and is not a forecast for any child.
- Area Deprivation Index (ADI): A score that ranks neighborhoods by income, education, employment and housing conditions drawn from the American Community Survey. In this book a higher national percentile means a more deprived neighborhood.

## Methods

A population-weighted line across 2020 census tracts predicts the Opportunity Atlas adult income rank of children born 1978 to 1983 from five ACS 2019-2023 measures, and a county's residual is the actual rank minus the prediction, averaged over its tracts and reported only for counties with at least 8 tracts in the model. The migration comparison uses IRS returns matched between filing years 2022 and 2023, so it describes returns that changed county, with moves from abroad and moves abroad in the county totals. County correlations are population-weighted and, where weighting changes the sign, also reported with each county counted once; intervals resample states, and the county home value is a population-weighted mean of ACS 2019-2023 tract median home values.

### The tract model and its sample

A population-weighted least-squares line across 2020 census tracts regresses the Opportunity Atlas mean adult household income rank of children born 1978 to 1983 to parents at the 25th income percentile on five ACS 2019-2023 measures: the poverty rate, the share of adults with a bachelor's degree or more, the single-parent household share, the natural log of median household income and the Black share of residents. Tracts with 200 residents or fewer, tracts missing a variable and Puerto Rico are left out. The weight is the ACS tract population.

The life-expectancy version fits the same five measures to USALEEP life expectancy at birth (deaths in 2010 to 2015, institutional tracts left out) and correlates county mean residuals across counties, weighted by county population, with an interval that resamples states.

Explains Table 1.

### County residuals, floors and groups

The tract residual is the actual rank minus the prediction. A county's residual is the population-weighted mean of its tracts' residuals, reported for counties with at least 8 tracts in the model; a floor of 5 tracts would map 2,140 counties and a floor of 15 would map 944. Its standard error treats the tracts as independent draws within the county.

Connecticut tracts are assigned to its eight legacy counties through the staged tract crosswalk.

Groups are tenths of counties with equal numbers of counties; their traits are population-weighted tract means, with intervals that resample counties and treat the groups as fixed.

Explains Table 2 and Table 3.

### Migration measures and county variables

The IRS matches individual returns filed in 2022 (tax year 2021) with returns filed in 2023 (tax year 2022) on the filer's taxpayer identification number, assigns each return a county from its ZIP+4, and counts a return as a migrant when the county differs; the county totals used here are the IRS rows for all origins and destinations, so moves from abroad are in the arrivals and moves abroad in the departures, and adjusted gross income is the amount on the 2023 return, converted from thousands of dollars. Net is arriving minus leaving, computed from both sides, and a county with one direction withheld has no net figure.

The net migration rate divides net returns by the returns filed for tax year 2022 (IRS SOI county file, summed over the income brackets) and multiplies by 1,000; net income per resident divides by the ACS 2019-2023 population. Connecticut's planning regions are allocated to the legacy counties in proportion to 2020 population.

County mobility is the Atlas county estimate, deprivation the population-weighted mean of tract ranks, life expectancy the population-weighted mean of non-institutional tracts, and home value the population-weighted mean of the ACS 2019-2023 median home values of the county's tracts (Connecticut tracts assigned to the legacy counties through the tract crosswalk; a tract at the Census top code of 2,000,001 dollars enters at that value). Tenths of counties are cut on the counties in the analysis.

Explains Table 4, Table 7, Table 5 and Table 6.

### Weights and uncertainty

The R-squared interval and the interval for every statistic of tracts come from a bootstrap that resamples whole counties.

Correlations and fits across counties are weighted by ACS population and, where weighting changes the sign, also reported with each county counted once; intervals resample states. Bars and markers for tenths pool the counties of a group (summed numerator over summed denominator). Differences between groups use the same resampled counties for both groups.

### Split-half check, replicates and seeds

The split-half check assigns each tract of a county to one of two halves at random (seed 12345), ranks counties on one half and reads the residual off the other, for counties with at least 3 tracts in each half; intervals resample states.

The dots of the prediction scatter are a random sample of tracts drawn with seed 12345. Bootstrap intervals use 2,000 replicates and seed 12345.

## What these data cannot show

None of the residuals measures what a place does for a child. A county residual combines noise in the Atlas estimates, measures the model omits and the gap between the decades of the outcome and of the predictors. The standard error of a county residual leaves out errors that all of a county's tracts share. The floor of 8 tracts excludes 1,567 map units, so the map says nothing about them. The traits in Table 3 describe counties selected on the residual, and their intervals treat the two groups as fixed.

The migration figures cover one pair of filing years. Internal migration in the United States has declined since the 1980s.[6] Arriving returns equal only 5.6% of the returns filed here, so most filers in every county did not change county. The two filings follow the pandemic years, in which demand for housing shifted from the centers of large cities toward their outskirts,[7] and one pair of years may not describe other periods. The unit is the county, so the correlations compare places and say nothing about why any household moved. Several of them change sign with the weighting. Connecticut's flows are published by planning region and are spread over its legacy counties by population, which is approximate. A county's home value is the mean of its tracts' median home values, weighted by population, and a tract median at the Census top code enters at the code. Puerto Rico is left out of the model and the maps.

The two halves of the chapter do not measure the same people. The residual scores the adult outcomes of children raised in the 1980s and 1990s, and the migration data score the movements of filers in 2022 and 2023. Reading one against the other compares where two different populations sit on the same map. The adjusted gross income of a return is the amount on the 2023 return, for calendar 2022, and a move between the two filings can come after part or all of that income was earned.

## References

1. Chetty, Raj; Friedman, John N.; Hendren, Nathaniel; Jones, Maggie R.; Porter, Sonya R. (2018). The Opportunity Atlas: Mapping the Childhood Roots of Social Mobility. NBER Working Paper 25147. https://doi.org/10.3386/w25147
2. Internal Revenue Service, Statistics of Income Division (2025). 2022-2023 Migration Data Users Guide. IRS Statistics of Income, County-to-County Migration Data. https://www.irs.gov/pub/irs-soi/2223inpublicmigdoc.pdf
3. Chetty, Raj; Hendren, Nathaniel (2018). The Impacts of Neighborhoods on Intergenerational Mobility I: Childhood Exposure Effects. The Quarterly Journal of Economics 133(3): 1107-1162. https://doi.org/10.1093/qje/qjy007
4. Chetty, Raj; Hendren, Nathaniel (2018). The Impacts of Neighborhoods on Intergenerational Mobility II: County-Level Estimates. The Quarterly Journal of Economics 133(3): 1163-1228. https://doi.org/10.1093/qje/qjy006
5. Ganong, Peter; Shoag, Daniel (2017). Why Has Regional Income Convergence in the U.S. Declined?. Journal of Urban Economics 102: 76-90. https://doi.org/10.1016/j.jue.2017.07.002
6. Molloy, Raven; Smith, Christopher L.; Wozniak, Abigail (2011). Internal Migration in the United States. Journal of Economic Perspectives 25(3): 173-196. https://doi.org/10.1257/jep.25.3.173
7. Ramani, Arjun; Bloom, Nicholas (2021). The Donut Effect of COVID-19 on Cities. NBER Working Paper 28876. https://doi.org/10.3386/w28876

## Provenance

- Pipeline version: 0.1.0
- Build script: book2/chapters/places-that-beat-the-model/build.py (sha256 35c06d8e38ab77487ea45be6c64943e4dd636a9d30ff0c56546a8f23e61a7408)
- Built on: 2026-10-28
- Site commit: c2b1ff3309cb4a10833f884da91ac0057a66ad0a

Inputs:

| File | Size (bytes) | SHA-256, first 1 MB | SHA-256, last 1 MB |
| --- | ---: | --- | --- |
| book2/chapters/places-that-beat-the-model/migr.py | 10,542 | b4b0bcd6ede6140c0f5d665592529c9edc7f3d96f099dc6be2e00cefece276a3 | b4b0bcd6ede6140c0f5d665592529c9edc7f3d96f099dc6be2e00cefece276a3 |
| book2/chapters/places-that-beat-the-model/resid.py | 18,449 | 41ad684e1a933aabc9410401ed0198bf53711fa3265170d466b43ee9c6626c67 | 41ad684e1a933aabc9410401ed0198bf53711fa3265170d466b43ee9c6626c67 |
| data/analytic/tract_atlas.parquet | 39,659,925 | 29d5e4d943552d54aeb6ba92aadc939d9bd15bdea553c78357dbd516757be627 | 1e10d1ecf722340f23ee2212d4999a90250f85b65fa89b39e32db06d9472e22e |
| data/geo/dim_geo.parquet | 1,180,921 | 29d5e4d943552d54aeb6ba92aadc939d9bd15bdea553c78357dbd516757be627 | e58c8c488df54ab3187f5461f179322afdc49c9bd2315404003fe1272eea32c3 |
| data/geo/tracts_2020.parquet | 619,858,391 | f4f05c8c7a63d1785ec2aad283de3f6fa839b6c437f13a1b96cea31d3344bf0f | 7b3811247c6b3e322954f24a4a2384af52aef6ed8688f8dbdb0407d21ef80a59 |
| data/raw/acs/deprivation_components_2019_2023/tract.parquet | 13,197,793 | 5545cde2cbe96a8b56e468d65388248a241aa6bd300d3c9e325d08d3f86b11da | 5c8ec454d066988b0f1a01aaa6ed34ebfc05d162e01cf9c6bb01f9198cbaff12 |
| data/staged/adi/adi_atlas_tract2020_2023.parquet | 798,078 | 5e409bc212ff871def780fa27b4cf8b616d9da420b2b9f6455517eddcd8c1a95 | 5e409bc212ff871def780fa27b4cf8b616d9da420b2b9f6455517eddcd8c1a95 |
| data/staged/crosswalks/ct_old_county_to_planning_region.parquet | 5,797 | 5fb0d280ff6c9a9f160af7f03934db4682efc3c5fda11ae27b7f614d6ad664bb | 5fb0d280ff6c9a9f160af7f03934db4682efc3c5fda11ae27b7f614d6ad664bb |
| data/staged/crosswalks/ct_tract2020_to_old_county.parquet | 15,842 | 961ef39f31596ef65fca2c67d5f2f63e533c5dc9b49745d3bb6437844e4b831d | 961ef39f31596ef65fca2c67d5f2f63e533c5dc9b49745d3bb6437844e4b831d |
| data/staged/environment/ejscreen_tract2020_2024.parquet | 10,891,402 | 8b728fb8c87df1d639a9652a31e22cc07d51aad31f3390a8ff6e82e5cebb6a86 | ea8df449172c133db5eb83c0c0df93aaaf8b781b373b75a0056fbde1b1d32824 |
| data/staged/health/places_tract2020_latest.parquet | 5,919,159 | af4c3b0d1205b7d84b81676a9529ef73323b2dbeb9d54e235f5efeebfad83177 | a2f19029ee2ef032be87e0d5288d88d489afd52379279833f178baa021df3dbf |
| data/staged/income/irs_soi_county_2022.parquet | 7,590,532 | 827be995a4744d9198cf6da5afa6c099fe5ae7da5e7e6fc6b2eaa475b17e65f1 | 2e341a6e8456554ed604a4d357031fc08815a16f5bb7b740db85b583aa56b5f1 |
| data/staged/life_expectancy/usaleep_tract2020.parquet | 1,316,169 | 9c9c7f103791b75eddba74e68a89804efdf2486b6b66bb4bc02a46ba5bf8bc23 | 27317107be2465d9fd5e83271dea0cd6e915ee419e2802bedc28747d0a41d38f |
| data/staged/migration/irs_migration_county_2022_2023.parquet | 154,824 | 280ed853a1d696b5366ce1d77e98118807e974192631b1fadb3427f485bb606f | 280ed853a1d696b5366ce1d77e98118807e974192631b1fadb3427f485bb606f |
| data/staged/mobility/oa_module1_tract2020.parquet | 16,362,438 | 26cb468a319ad2e727c5eac733b4a47b77a83781ae189e1828e8c40bc0e3ace8 | 5702bad38b81b5ee0b3d01ba9d1ece7d23328985eafba269720a0af5ef6820d4 |
| data/staged/mobility/oa_outcomes_county.parquet | 721,343 | fd7bc55294fbd3f7a646f27083500c1f12415775db7a3607878b522d277f8140 | fd7bc55294fbd3f7a646f27083500c1f12415775db7a3607878b522d277f8140 |
| data/staged/ses/acs5_tract2020_2019_2023.parquet | 7,232,424 | 5fe6f730a35225f14d5d8abfc6b9bce58b52e545f309a7eac74f1dae74d7a31c | 7b4a2475b3852d3f91804716a04566ef8ceadacec2be9fb85f5eb642078efac6 |
| data/staged/svi/svi_tract2020_2022.parquet | 17,740,415 | cb3860d8edc2aaf1f2a02211a58f7a0b80457eb6ad9a37b5ec8abb2d5da9da10 | e371a4a696d5bed05d54ad7c5b6ca2504508805b847ec415c2322be7f66ec2b2 |

Outputs:

| File | SHA-256 |
| --- | --- |
| facts.json | 6cefcc3077a83109695b9e419b4da1f701e776e38b9464bac12e370858ef05c3 |
| figures/arriver_vs_leaver_income.json | 316d5bc9a18af2ec063047f2a42fe2091998aec217d9c20a34b7f4bbc258bd2b |
| figures/migration_vs_home_value.json | e9abb63d7910f2fe12eff67ad4d34e9a37e62032be9882254fee7699a2fb7be3 |
| figures/migration_vs_mobility.json | c946a048fd88b5db74b8484d00b047eed28ea16fd8b73b39f31799faa70afe45 |
| figures/net_agi_map.json | a3ffe8711debbcf5b1be47d24600e3242496bf509037139f88646a15e528254f |
| figures/overperformer_traits.json | 1ba33eb34937056848e2910cb0a981f906304970efce4099abd732cb227e4919 |
| figures/predicted_vs_actual.json | d114178f9728367227a75f7ec100d6f519e261713ad686437b9fc6df6739f124 |
| figures/residual_map.json | 84cad600e2056df37e38053325b1535d07cd9805f5ad04b75c90c34694de9c5c |
| meta.json | b3a3dbc0a0bd1f4f89e96d5ce443d218e0dccbc59bbe5ec40eefa312cd500d20 |
| public/data/places-that-beat-the-model/migration_vs_home_value.json | 046824aaa73f11fa0e55f3f7e9e0cea6a14e4bddd0c5bfb8af24b173a7ca9035 |
| public/data/places-that-beat-the-model/migration_vs_mobility.json | 4b16655633f5e5529d209d9378d707db19972e43a1c68455efc456f16a5bb171 |
| public/data/places-that-beat-the-model/net_agi_map.json | 4dc752d023e5fe72193a1a5122ac2363db3a773477014c87b2a1cc62ac9f044a |
| public/data/places-that-beat-the-model/predicted_vs_actual.json | 99da6c3cb25739ee541d56eda865117fa57be5591d6866b632cc293cff531265 |
| public/data/places-that-beat-the-model/residual_map.json | b53c2022a2e7d130b5822e83ef0b41ed08daf6c6cbc5c5bd630eefb46ee50a2d |
| refs.json | 9bbb72943e4ec3ea678e798893e45b68d9ed2d62c24287cd51fa8b241467bb73 |

## Machine formats

- Report (HTML): https://vishalsingh.org/zipcode/places-that-beat-the-model/report
- Report (Markdown): https://vishalsingh.org/zipcode/places-that-beat-the-model/report.md
- Every estimate (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/facts.json
- Table 1, figure "predicted_vs_actual" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/predicted_vs_actual.json
- Table 2, figure "residual_map" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/residual_map.json
- Table 3, figure "overperformer_traits" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/overperformer_traits.json
- Table 4, figure "net_agi_map" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/net_agi_map.json
- Table 5, figure "migration_vs_mobility" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/migration_vs_mobility.json
- Table 6, figure "migration_vs_home_value" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/migration_vs_home_value.json
- Table 7, figure "arriver_vs_leaver_income" (JSON): https://vishalsingh.org/zipcode/report/places-that-beat-the-model/figures/arriver_vs_leaver_income.json
- Payload of "predicted_vs_actual" (JSON): https://vishalsingh.org/zipcode/data/places-that-beat-the-model/predicted_vs_actual.json
- Payload of "residual_map" (JSON): https://vishalsingh.org/zipcode/data/places-that-beat-the-model/residual_map.json
- Payload of "net_agi_map" (JSON): https://vishalsingh.org/zipcode/data/places-that-beat-the-model/net_agi_map.json
- Payload of "migration_vs_mobility" (JSON): https://vishalsingh.org/zipcode/data/places-that-beat-the-model/migration_vs_mobility.json
- Payload of "migration_vs_home_value" (JSON): https://vishalsingh.org/zipcode/data/places-that-beat-the-model/migration_vs_home_value.json
- Index of every report: https://vishalsingh.org/zipcode/llms.txt; all reports in one file: https://vishalsingh.org/zipcode/llms-full.txt
