Skip to content
← All datasets

Population by Age Group (ACS)

How many people live in each Georgia community, broken down into six age groups - American Community Survey 5-year estimates down to the census-tract level.

Year coverage
20202024
Updated
annual
Version
1.0.0
Schema hash
44031e6060a3

Detail levels available

StateCounty · defaultDistrict

Overview

Population counts by age group from the American Community Survey 5-year estimates (detailed table B01001, Sex by Age), for Georgia at state, county, school district, and census tract geography, vintages 2020-2024. The 46 sex-by-age cells are collapsed into six school-age-aware brackets (summed over sex - no sex split is served) that are mutually exclusive and sum exactly to the total.

Row grain: One row per year, county_fips, district_code, tract_geoid, age_bracket.

Key metric

population_countPopulation Count (count)

The single headline value most answers want.

Variables

Every column in the fact table. The code is the exact field name the API returns.

ColumnTypeUnitRangeNull?Description
yearYearintegernoACS 5-year vintage END year: 2024 covers the pooled 2020-2024 survey period. Consecutive vintages overlap.
Full description
ACS 5-year vintage END year: 2024 covers the pooled 2020-2024 survey period. Consecutive vintages overlap.
county_fipsCounty FIPSstringyes5-digit county FIPS code (state 13 + county). Populated only on county-level rows.
Full description
5-digit county FIPS code (state 13 + county). Populated only on county-level rows.

Joins counties; adds its label columns.

district_codeDistrict CodestringyesGCD school district code (FK to the education districts dimension). Populated only on district-level rows - Census unified-school-district estimates mapped onto the ~180 standard districts via the dimension's district_census_id.
Full description
GCD school district code (FK to the education districts dimension). Populated only on district-level rows - Census unified-school-district estimates mapped onto the ~180 standard districts via the dimension's district_census_id.

Joins districts; adds its label columns.

tract_geoidTract GEOIDstringyes11-digit census tract GEOID (2020 boundaries). Populated only on tract-level rows.
Full description
11-digit census tract GEOID (2020 boundaries). Populated only on tract-level rows.

Joins tracts; adds its label columns.

age_bracketAge BracketstringnoAge group, collapsed from the B01001 sex-by-age cells (summed over sex): under_5, 5_17 (school age), 18_24, 25_44, 45_64, 65_plus; 'all' is the total population. The six brackets are mutually exclusive and sum exactly to 'all'.
Full description
Age group, collapsed from the B01001 sex-by-age cells (summed over sex): under_5, 5_17 (school age), 18_24, 25_44, 45_64, 65_plus; 'all' is the total population. The six brackets are mutually exclusive and sum exactly to 'all'.
7 allowed values
  • 18_24
  • 25_44
  • 45_64
  • 5_17
  • 65_plus
  • all — total / aggregate
  • under_5
population_countPopulation CountintegercountyesEstimated residents in the age group.
Full description
ACS 5-year estimate of the number of residents in the age bracket: the sum of the bracket's male + female B01001 cells ('all' is the published total). Survey estimate, not a full count - see population_count_moe.
population_count_moePopulation Count Moenumbercountyes90 percent margin of error for population_count. For collapsed brackets this is the Census sqrt-sum-of-squares approximation over member-cell MOEs (non-integer float, not rounded); the 'all' row carries the published MOE directly. Never the headline metric.
Full description
90 percent margin of error for population_count. For collapsed brackets this is the Census sqrt-sum-of-squares approximation over member-cell MOEs (non-integer float, not rounded); the 'all' row carries the published MOE directly. Never the headline metric.

Filters

Query parameters the fact endpoint accepts. Comma-separated values are OR within a parameter; multiple parameters AND together.

ParameterKindAllowed valuesNotes
yearyear_exactany value
year_minyear_rangeany value
year_maxyear_rangeany value
detaildetailcountiesdistrictsstatestractsenum-enforced, default: counties
district_codeforeign_keyany valuemulti-value
county_fipsforeign_keyany valuemulti-value
tract_geoidforeign_keyany valuemulti-value
age_bracketcategorical
7 allowed values
  • 18_24
  • 25_44
  • 45_64
  • 5_17
  • 65_plus
  • all
  • under_5
multi-value, enum-enforced
district_typedimension_attribute
7 allowed values
  • commission_charter
  • resa
  • standard
  • state_agency
  • state_charter
  • state_school
  • state_special
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/population_by_age"

counties data for 2024

curl "https://georgiacivicdata.org/api/v1/census/population_by_age?year=2024"

Filtered to age_bracket = 18_24 for 2024

curl "https://georgiacivicdata.org/api/v1/census/population_by_age?year=2024&age_bracket=18_24"

One district (code 660), 2024

curl "https://georgiacivicdata.org/api/v1/census/population_by_age?district_code=660&year=2024&detail=districts"

One county (FIPS 13121), 2024

curl "https://georgiacivicdata.org/api/v1/census/population_by_age?county_fips=13121&year=2024&detail=counties"

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/census/population_by_age?year=2024&format=csv"

Notes & limitations

NULL handling

  • Suppressed cells (too few students to report) are NULL, never zero.
  • Zero is a real, reported value.

Limitations

Age brackets are collapsed from the B01001 sex-by-age cells summed over sex - no sex split is served. The six non-'all' brackets are mutually exclusive and sum exactly to the 'all' row. Bracket margins of error are the Census sqrt-sum-of-squares approximation over member-cell MOEs (non-integer, served as a float; the 'all' row carries the published MOE directly). A NULL population_count_moe next to a present estimate means a controlled estimate (fixed to official population totals, no sampling error published; annotation -555555555 in the source) - either the 'all' row's own MOE or a bracket with at least one controlled member cell. ACS 5-year period estimates: the year column is the vintage END year and each estimate pools five years of survey responses (2024 = 2020-2024). Consecutive vintages share about 80% of their sample, so the series is heavily smoothed - never difference overlapping vintages as if they were annual change. Estimates are survey-based and carry 90% margins of error (the *_moe columns); tract-level margins can be large relative to the estimate. All levels serve vintages 2020-2024 only, on 2020-vintage tract boundaries. State rows have NULL county_fips, district_code, and tract_geoid; county rows carry only county_fips, district rows only district_code, tract rows only tract_geoid. District rows cover the ~180 standard (city/county) districts only: the Census publishes school-district estimates at unified school district geography, which has no codes for charter schools, RESAs, or state agencies, and its few Census-only districts (e.g. the Fort Stewart military district) have no GCD district code and are dropped.