American migration map

Overhauling his migration map from last year, Jon Bruner uses five year’s worth of IRS data to map county migration in America:

Each move had its own motivations, but in aggregate they ­reflect the geographical marketplace during the boom and bust of the last decade: Migrants flock to Las Vegas in 2005 in search of cheap, luxurious housing, then flee in 2009 as the city’s economy collapses; Miami beckons retirees from the North but offers little to its working-age residents, who leave for the West. Even fast-growing boomtowns like Charlotte, N.C., lose residents to their outlying counties as the demand for exurban tract-housing pushes workers ever outward.

Compared to last year’s map, this one is much improved. The colors are more subtle and more meaningful, and you can turn off the lines so that it’s easier to see highlighted counties when the selected county had a lot of traffic during a selected year. Speaking of which, you can see map the data for 2005 through 2009 via the simple bar graphs in the top right.

Update: Jon also explains how he built this map sans-Flash on his own blog.


  • The lines are noise which say nothing and simply obscure the useful visual information. What I’d hope to gain from these charts is an idea of where people are moving in proportion to population of destination… are Californians disproportionately moving to Florida, for example? Are the people of this country making different choices to those living in a different county?
    As improved as the chart is since 2010, it has some way to go before it transparently answers these questions.

  • I’ll take your word for it. I’m having an IE 7 JavaScript spasm.

  • @Logan – The lines are distracting, but you can remove them by clicking the “Hide Lines” button.

  • Hi all–author of the map here.

    @Logan I prefer to see the map without lines myself, and the most frequent request from people who know and care deeply about infographics was that the lines be removed so that the map would be clearer. But for casual visitors, I think the lines are necessary in order to orient them to what they’re seeing: interactions between a key county and many other counties. The lines also make the map dramatic and give it a sense of motion, which I think helped it catch on. But I expect that many users will switch the lines off once they understand what the map is showing. Perhaps I’ll find a more elegant way to suggest those ties in the next version.

    @Justin I’m sorry about that. This map is in JavaScript, which comes with a lot of risks as far as older browsers are concerned, but I wanted to move beyond Flash and try out a new way of building these things. It’ll work on your iPad!

    • Jon,

      Finally got around to looking at this on a decent browser. I know all about the vagaries of JavaScript (especially with IE). It wasn’t meant as a criticism of your work. It was a criticism of my employer’s decision to continue using IE 7.

      Anyway, good work. I would second the idea of being able to breakdown the info by age group. I noticed that the county I live in has a lot of incoming migration from distant counties in our state and a lot of outgoing migration to the counties nearby. I’m assuming it’s students moving to the university and urban sprawl pushing out into the undeveloped areas. Being able to see age groups might give more insight into the trend.

  • I think it would be very enlightening to be able to further break down the results by age bracket.

  • this is not easy enough to follow – diagrams should be as simple as possible

  • Hi Jon – nice work, thanks. The lines definitely drew me in at first, and even my 8 year old got it right away. I doubt he would have picked up so quickly on what the map was conveying if the lines were not there. Maybe if the line weights were smaller (& partially transparent) the counties below would be easier to see. Either way, this is a good way to tell the story. Wonder why no one moved to North Dakota….

  • I doubt he would have picked up so quickly on what the map was conveying if the lines were not there.