A Python package and companion app for tracking how the foreign-born population has changed across the United States.

Census data on the foreign-born population is a lagging indicator of immigration enforcement — it won’t tell you what’s happening today, but it will tell you whether enforcement efforts are changing the size of the foreign-born population over time. This project makes it easy to track those changes for any location in the United States, from the national level down to individual counties and cities.

The project has two components. The acs-nativity package provides a simple Python interface for accessing and visualizing ACS nativity data — useful for anyone who wants to run their own analysis. The companion app requires no coding and lets anyone explore the same data through an interactive interface with four tabs:

  • Trend — a time series showing how the foreign-born or native-born population has changed in your selected location from 2005 to 2024
  • Annual Change — a bar chart of year-over-year changes, making it easy to spot sudden shifts
  • Compare Years — an interactive scatterplot showing how all locations changed between any two years, with a sortable table
  • Ranking — a scatterplot and table showing where your selected location stands relative to all others for a given year

The ACS currently covers 2005–2024. The 2025 estimates are expected in September 2026 — the first data that will reflect a full year of the current immigration enforcement policies.

Related Blog Posts

Ari Lamstein

Ari Lamstein

I build open source tools for exploring public data — and teach others to do the same. I teach data app development for O’Reilly and have written tutorials for RealPython.