Skip to content
← All datasets

Poverty (ACS)

The share of people living below the poverty line in each Georgia community, overall and by race/ethnicity - American Community Survey 5-year estimates down to the census-tract level.

Year coverage
20202024
Updated
annual
Version
2.0.0
Schema hash
d7561f3e6e26

Detail levels available

StateCounty · defaultDistrict

Overview

Poverty status by Census race/ethnicity iteration from the American Community Survey 5-year estimates (table B17001 and its race iterations B17001B-I), for Georgia at state, county, school district, and census tract geography, vintages 2020-2024: the share of people below the federal poverty line, with the underlying counts and 90 percent margins of error.

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

Key metric

poverty_ratePoverty Rate (proportion)

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.
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.

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.

race_iterationRace IterationstringnoCensus race-iteration table; the groups overlap, so never sum them - 'all' is the total.
Full description
Census race-iteration table membership (topic-specific categorical - NOT the shared demographic axis and no FK to the demographics dimension). 'all' = the total population with poverty status determined (B17001); 'white' = White alone, not Hispanic or Latino (iteration H); 'hispanic' = Hispanic or Latino of any race (iteration I); 'black', 'native_american', 'asian', 'pacific_islander', 'other', 'multiracial' = the race-alone iterations B-G, which INCLUDE Hispanic members. The iterations OVERLAP and are NOT mutually exclusive (a Hispanic Black person is in both 'hispanic' and 'black'), so the rows never sum to 'all' and must not be added across this column.
9 allowed values
  • all — total / aggregate
  • asian
  • black
  • hispanic
  • multiracial
  • native_american
  • other
  • pacific_islander
  • white
poverty_ratePoverty RatenumberproportionyesShare below the federal poverty line.
Full description
People below the federal poverty line as a share of those with poverty status determined (0-1), derived as num_below_poverty / num_poverty_universe. NULL when the category's universe is empty in the geography. Not the same construct as school data's 'economically disadvantaged'.
poverty_rate_moePoverty Rate Moenumberproportionyes90 percent margin of error for poverty_rate, derived from the published count margins with the Census ratio formula: the subtraction form, with the Census addition-form fallback whenever the radicand is not positive, so a served margin is always greater than zero. Never the headline metric.
Full description
90 percent margin of error for poverty_rate, derived from the published count margins with the Census ratio formula: the subtraction form, with the Census addition-form fallback whenever the radicand is not positive, so a served margin is always greater than zero. Never the headline metric.
num_below_povertyNumber Below PovertyintegercountyesPeople with income below the poverty level in the past 12 months (ACS estimate) - the rate's numerator.
Full description
People with income below the poverty level in the past 12 months (ACS estimate) - the rate's numerator.
num_below_poverty_moeNumber Below Poverty Moeintegercountyes90 percent margin of error for num_below_poverty, as published.
Full description
90 percent margin of error for num_below_poverty, as published.
num_poverty_universeNumber Poverty UniverseintegercountyesPopulation for whom poverty status is determined (ACS estimate) - the rate's denominator. Excludes most group quarters (dorms, prisons, barracks).
Full description
Population for whom poverty status is determined (ACS estimate) - the rate's denominator. Excludes most group quarters (dorms, prisons, barracks).
num_poverty_universe_moeNumber Poverty Universe Moeintegercountyes90 percent margin of error for num_poverty_universe, as published.
Full description
90 percent margin of error for num_poverty_universe, as published.

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
race_iterationcategorical
9 allowed values
  • all
  • asian
  • black
  • hispanic
  • multiracial
  • native_american
  • other
  • pacific_islander
  • white
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/poverty"

counties data for 2024

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

Filtered to race_iteration = asian for 2024

curl "https://georgiacivicdata.org/api/v1/census/poverty?year=2024&race_iteration=asian"

One district (code 660), 2024

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

One county (FIPS 13121), 2024

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

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/census/poverty?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

Race/ethnicity is served on the topic-specific race_iteration column, NOT the shared demographic axis, because the Census race-iteration tables OVERLAP: 'white' is White alone NOT Hispanic (B17001H) and 'hispanic' is Hispanic of any race (B17001I), but the remaining groups are race-ALONE iterations (B17001B-G) that INCLUDE Hispanic members - a Hispanic Black person is counted in both 'hispanic' and 'black'. The demographics dimension promises mutually exclusive categories, which these rows cannot honor (the Census publishes no other non-Hispanic poverty splits), so the split below-poverty counts never sum to the 'all' row and must not be added across race_iteration values; 'all' (B17001) is the total population and is the default pin. population_by_race (B03002) IS mutually exclusive and stays on demographic. Universe: the population for whom poverty status is determined, which EXCLUDES most group quarters (college dorms, prisons, military barracks) - material in counties with large institutional populations. A NULL poverty_rate at tract grain almost always means the race iteration has no poverty-determined members in that tract (a zero universe - a true absence, not suppression); the universe count on the row says which. ACS poverty is NOT the same construct as GOSA's 'economically disadvantaged' (a program-eligibility flag) - related, not equivalent. poverty_rate_moe is derived from the published count margins with the Census ratio formula (addition-form fallback whenever the subtraction form's radicand is not positive, so a served margin is never zero); a degenerate small-sample margin above 1.0 is set to NULL. 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.