Net International Migration (Census PEP)
Yearly net migration from abroad into each Georgia county - signed count and rate per 1,000 residents, Census Population Estimates Vintage 2025.
- 2021–2025
- annual
- 1.0.0
- bc7bc6880af9
Overview
Net international migration - the number of people who moved into a geography from abroad minus the number who left for abroad - as modeled by the U.S. Census Bureau's Population Estimates Program (PEP), Vintage 2025, for Georgia and each of its 159 counties, estimate years 2021-2025 (each covering July 1 of the prior year through June 30). Served as a signed count (negative = net out-migration), the average July 1 population the rate divides by, and the published rate per 1,000 residents (the headline metric). The component covers non-U.S.-born migration, U.S.-born movement to and from abroad, moves to and from Puerto Rico, and Armed Forces movement.
Row grain: One row per year, county_fips, district_code, tract_geoid.
net_international_migration_rate_per_1k — Net International Migration Rate per 1,000 (signed_rate_per_population)
The single headline value most answers want.
Variables
Every column in the fact table. The code is the exact field name the API returns.
| Column | Type | Unit | Range | Null? | Description |
|---|---|---|---|---|---|
year | integer | — | — | no | Estimate year: covers July 1 of the prior year through June 30 of this year (2025 = July 1, 2024 to June 30, 2025). All years are from PEP Vintage 2025, which restates every earlier year; the partial April-June 2020 period is not served.Full description▾Estimate year: covers July 1 of the prior year through June 30 of this year (2025 = July 1, 2024 to June 30, 2025). All years are from PEP Vintage 2025, which restates every earlier year; the partial April-June 2020 period is not served. |
county_fips | string | — | — | yes | 5-digit county FIPS code (state 13 + county). Populated only on county-level rows; NULL on the state row.Full description▾5-digit county FIPS code (state 13 + county). Populated only on county-level rows; NULL on the state row. |
district_code | string | — | — | yes | Always NULL: the Population Estimates Program publishes no school-district geography. Kept for the census domain's standard key shape.Full description▾Always NULL: the Population Estimates Program publishes no school-district geography. Kept for the census domain's standard key shape. |
tract_geoid | string | — | — | yes | Always NULL: the Population Estimates Program publishes no census-tract geography. Kept for the census domain's standard key shape.Full description▾Always NULL: the Population Estimates Program publishes no census-tract geography. Kept for the census domain's standard key shape. |
net_international_migration | integer | — | yes | People who moved in from abroad minus people who left, net; negative means more left than arrived.Full description▾Net international migration during the estimate year (July 1 to June 30), as published: arrivals from abroad minus departures to abroad, including U.S.-born and foreign-born movers, moves to and from Puerto Rico, and Armed Forces movement. A SIGNED count: negative values are real net out-migration and are served as published (never clipped or NULLed). Modeled by the Census Bureau, not enumerated; the numerator of net_international_migration_rate_per_1k. | |
avg_population | number | — | yes | DERIVED denominator of the rate: the mean of the July 1 resident population estimates ending the prior and the current estimate year (POPESTIMATE of year-1 and year in the Vintage 2025 source), which is exactly the population the Census Bureau divides by to compute the published per-1,000 rate. Not itself a published estimate; kept as a float (it ends in .5 when the two estimates differ by an odd number) so the rate reproduces exactly. Use it to compute population-weighted rates across counties (sum of counts / sum of avg_population * 1000), never sum it as a headcount.Full description▾DERIVED denominator of the rate: the mean of the July 1 resident population estimates ending the prior and the current estimate year (POPESTIMATE of year-1 and year in the Vintage 2025 source), which is exactly the population the Census Bureau divides by to compute the published per-1,000 rate. Not itself a published estimate; kept as a float (it ends in .5 when the two estimates differ by an odd number) so the rate reproduces exactly. Use it to compute population-weighted rates across counties (sum of counts / sum of avg_population * 1000), never sum it as a headcount. | |
net_international_migration_rate_per_1k | number | — | yes | Net international migration per 1,000 residents; negative means net out-migration.Full description▾Net international migration rate per 1,000 residents, served verbatim from the source (RINTERNATIONALMIG): net_international_migration divided by avg_population, times 1,000. A SIGNED rate: negative values are real net out-migration. Modeled, with no margin of error published; comparable across counties of different sizes, which the raw count is not. |
Filters
Query parameters the fact endpoint accepts. Comma-separated values are OR within a parameter; multiple parameters AND together.
| Parameter | Kind | Allowed values | Notes |
|---|---|---|---|
year | year_exact | any value | — |
year_min | year_range | any value | — |
year_max | year_range | any value | — |
detail | detail | countiesstates | enum-enforced, default: counties |
district_code | foreign_key | any value | multi-value |
county_fips | foreign_key | any value | multi-value |
tract_geoid | foreign_key | any value | multi-value |
district_type | dimension_attribute | 7 allowed values▾
| multi-value, enum-enforced |
Example requests
Run these against the base URL — they return live data.
All rows (first page), counties level
curl "https://georgiacivicdata.org/api/v1/census/net_international_migration"counties data for 2025
curl "https://georgiacivicdata.org/api/v1/census/net_international_migration?year=2025"One county (FIPS 13121), 2025
curl "https://georgiacivicdata.org/api/v1/census/net_international_migration?county_fips=13121&year=2025&detail=counties"Download 2025 as CSV
curl "https://georgiacivicdata.org/api/v1/census/net_international_migration?year=2025&format=csv"Notes & limitations
NULL handling
- Zero is a real, reported value.
Limitations
Net international migration is a MODELED estimate, not a count: the Census Bureau's Population Estimates Program (PEP) derives it from survey, administrative, and immigration-court records. Every vintage restates the whole series: this table serves Vintage 2025 only (released March 2026), a future vintage will revise 2021-2025, and values must never be mixed with or differenced against an earlier vintage. year is the ESTIMATE year, covering July 1 of the prior year through June 30 (2025 = July 1, 2024 to June 30, 2025); the partial April-June 2020 period is not served. The method changes between vintages: Vintage 2024 first added humanitarian migrants, and Vintage 2025 changed the emigration inputs for estimate year 2025 and, for estimate years 2022-2024, places humanitarian migrants by county using EOIR immigration-court address records (the same EOIR data behind this platform's immigration eoir_case_outcomes topic), so county values for those years partly reflect where court filings list an address. Negative values are real net out-migration (more residents left for abroad than arrived), not errors or suppression, and occur in 6 to 27 counties per year (Bacon County 2025: -2 people, -0.18 per 1,000). Rates are per 1,000 residents, computed on the average of the beginning and ending July 1 populations, served here as avg_population - a derived column that can end in .5 and is not itself a published estimate. PEP publishes point estimates only: there are no margins of error, no suppression, and no NULLs. Counties reflect boundaries as of January 1, 2025; there is no school-district or tract geography. The state row is published separately, and the 159 county values sum exactly to it in every year.