What you should know about this indicator

This indicator shows how much the foreign-born population grew or shrank each year. The change combines people arriving, people leaving, and deaths among the foreign-born, so it is not a count of new immigrants.

Each value is the average annual change during one decade: the 1850s value covers the change between the 1850 and 1860 censuses. The value for the current decade only averages the years available so far.

The foreign-born population covers everyone living in the United States who was not a US citizen at birth, whatever their current legal status. People born in the United States, in its territories such as Puerto Rico, or abroad to American parents count as native-born.

The data comes from two sources with the same definition of foreign-born:

  • 1850–2000: the decennial census. Figures up to 1940 come from a full count of the population; figures from 1950 to 2000 are based on large census samples (between 1 in 4 and 1 in 6 people).
  • 2005 onward: the American Community Survey, an annual survey of about 3.5 million households. Survey estimates are less exact than a census count.

The value for the 2000s mixes the two sources: it combines census counts (used up to 2000) with survey estimates (used from 2005 onward), so part of the measured change may reflect the switch in method rather than a real change in the population.

Two things changed over the course of the series:

  • The population included: Alaska and Hawaii are included from 1960 onward. The 1890 figures exclude about 325,000 people living in the Indian Territory and on Indian reservations, who were not asked about their place of birth.
  • The list of US territories: people born in a territory count as native-born, so when a territory's status changed, so did their classification. For example, people born in the Philippines counted as native-born until it became independent in 1946, and as foreign-born after.

People living in the country without authorization are included in the definition, but censuses and surveys are known to miss part of this group. Other sources that try to adjust for this can find a slightly higher foreign-born population.

Average annual change in the foreign-born population of the United States
Average change per year in the number of people living in the United States who were not US citizens at birth. The value for the 2020s covers 2021 to 2024.
Source
US Census Bureau (2006, 2025)with major processing by Our World in Data
Last updated
July 22, 2026
Next expected update
July 2027
Date range
1850–2029
Unit
people

Sources and processing

US Census Bureau – Historical Census Statistics on the Foreign-Born Population of the United States: 1850 to 2000

A report by the US Census Bureau that brings together statistics on the foreign-born population of the United States from every census between 1850 and 2000. Its tables cover nativity, citizenship, place of birth, language, age and sex, race and Hispanic origin, length of residence, and place of residence.

Retrieved on
July 22, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
Gibson, Campbell and Kay Jung. 2006. Historical Census Statistics on the Foreign-Born Population of the United States: 1850 to 2000. Population Division Working Paper No. 81. Washington, DC: U.S. Census Bureau.

A report by the US Census Bureau that brings together statistics on the foreign-born population of the United States from every census between 1850 and 2000. Its tables cover nativity, citizenship, place of birth, language, age and sex, race and Hispanic origin, length of residence, and place of residence.

Retrieved on
July 22, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
Gibson, Campbell and Kay Jung. 2006. Historical Census Statistics on the Foreign-Born Population of the United States: 1850 to 2000. Population Division Working Paper No. 81. Washington, DC: U.S. Census Bureau.

US Census Bureau – American Community Survey

The American Community Survey (ACS) is an annual survey run by the US Census Bureau. It samples about 3.5 million housing unit addresses each year and measures the demographic, social, economic, and housing characteristics of the US population. Since 2005, it has replaced the long-form questionnaire of the decennial census.

Retrieved on
July 22, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
U.S. Census Bureau, American Community Survey 1-Year Estimates, Table B05002 (Place of Birth by Nativity and Citizenship Status).

The American Community Survey (ACS) is an annual survey run by the US Census Bureau. It samples about 3.5 million housing unit addresses each year and measures the demographic, social, economic, and housing characteristics of the US population. Since 2005, it has replaced the long-form questionnaire of the decennial census.

Retrieved on
July 22, 2026
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
U.S. Census Bureau, American Community Survey 1-Year Estimates, Table B05002 (Place of Birth by Nativity and Citizenship Status).

All data and visualizations on Our World in Data rely on data sourced from one or several original data providers. Preparing this original data involves several processing steps. Depending on the data, this can include standardizing country names and world region definitions, converting units, calculating derived indicators such as per capita measures, as well as adding or adapting metadata such as the name or the description given to an indicator.

At the link below you can find a detailed description of the structure of our data pipeline, including links to all the code used to prepare data across Our World in Data.

Read about our data pipeline
Notes on our processing step for this indicator

We calculated the change between each pair of consecutive censuses or surveys, divided it by the number of years between them, and averaged these annual values within each decade. The 1850s value covers the change between the 1850 and 1860 censuses; the value for the current decade only averages the years available so far.

How to cite this page

To cite this page overall, including any descriptions, FAQs or explanations of the data authored by Our World in Data, please use the following citation:

“Data Page: Average annual change in the foreign-born population of the United States”, part of the following publication: Fiona Spooner, Tuna Acisu, Hannah Ritchie, Simon van Teutem, Sophia Mersmann, Marwa Boukarim, Esteban Ortiz-Ospina, Marcel Gerber, and Max Roser (2022) - “Migration”. Data adapted from US Census Bureau. Retrieved from https://archive.ourworldindata.org/20260902-144149/grapher/us-foreign-born-annual-change-by-decade.html [online resource] (archived on September 2, 2026).

How to cite this data

In-line citationIf you have limited space (e.g. in data visualizations), you can use this abbreviated in-line citation:

US Census Bureau (2006, 2025) – with major processing by Our World in Data

Full citation

US Census Bureau (2006, 2025) – with major processing by Our World in Data. “Average annual change in the foreign-born population of the United States” [dataset]. US Census Bureau, “Historical Census Statistics on the Foreign-Born Population of the United States: 1850 to 2000”; US Census Bureau, “American Community Survey” [original data]. Retrieved September 2, 2026 from https://archive.ourworldindata.org/20260902-144149/grapher/us-foreign-born-annual-change-by-decade.html (archived on September 2, 2026).

Quick download

Download the data shown in this chart as a ZIP file containing a CSV file, metadata in JSON format, and a README. The CSV file can be opened in Excel, Google Sheets, and other data analysis tools.

Data API

Use these URLs to programmatically access this chart's data and configure your requests with the options below. Our documentation provides more information on how to use the API, and you can find a few code examples below.

Data URL (CSV format)
https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.csv?v=1&csvType=full&useColumnShortNames=false
Metadata URL (JSON format)
https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.metadata.json?v=1&csvType=full&useColumnShortNames=false

Code examples

Examples of how to load this data into different data analysis tools.

Excel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.csv?v=1&csvType=full&useColumnShortNames=false")
Python with Pandas
import pandas as pd
import requests

# Fetch the data.
df = pd.read_csv("https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.csv?v=1&csvType=full&useColumnShortNames=false", storage_options = {'User-Agent': 'Our World In Data data fetch/1.0'})

# Fetch the metadata
metadata = requests.get("https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()
R
library(jsonlite)

# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.csv?v=1&csvType=full&useColumnShortNames=false")

# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.metadata.json?v=1&csvType=full&useColumnShortNames=false")
Stata
import delimited "https://ourworldindata.org/grapher/us-foreign-born-annual-change-by-decade.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear