Skip to content
← All datasets

Disability by Type (ACS)

The share of people with hearing, vision, cognitive, walking, self-care or independent-living difficulty in each Georgia community, by sex and age - ACS 5-year estimates.

Year coverage
2020–2024
Updated
annual
Version
1.0.0
Schema hash
3a04454cf597

Detail levels available

StateCounty · defaultDistrict

Overview

People with each of the six ACS disability types - hearing, vision, cognitive, ambulatory, self-care and independent-living difficulty - by sex and age, from the American Community Survey 5-year estimates (detailed tables B18102-B18107; both-sexes figures carry the Census's own published margins, from subject table S1810 and the B-table totals), for Georgia at state, county, school district, and census tract geography, vintages 2020-2024: the share of each group with the difficulty, with the underlying counts and 90 percent margins of error. The types overlap and never add up.

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

Key metric

difficulty_rate — Difficulty 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
yearYearinteger——noACS 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 FIPSstring——yes5-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 Codestring——yesGCD 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 GEOIDstring——yes11-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.

demographicDemographicstring——noSex (female, male); 'all' = everyone.
Full description
Sex as the ACS records it (FK to the demographics dimension): 'male' or 'female' (the B-table sex blocks); 'all' = both sexes, their exact sum.
3 allowed values
  • all
  • female
  • male

Joins demographics; adds its label columns.

disability_typeDisability Typestring——noWhich difficulty; types overlap, so never add them - pick one.
Full description
The ACS difficulty question: 'hearing' (deaf or serious difficulty hearing; B18102), 'vision' (blind or serious difficulty seeing even with glasses; B18103), 'cognitive' (serious difficulty concentrating, remembering or making decisions; B18104; ages 5+), 'ambulatory' (serious difficulty walking or climbing stairs; B18105; 5+), 'self_care' (difficulty dressing or bathing; B18106; 5+), 'independent_living' (difficulty doing errands alone; B18107; 18+). The types OVERLAP - one person can report several - so counts never add across this column, and there is no 'all' value (people with any disability: census/acs/disability_status).
6 allowed values
  • ambulatory
  • cognitive
  • hearing
  • independent_living
  • self_care
  • vision
age_bracketAge Bracketstring——noAge band; 'all' = every age the type covers.
Full description
Age band from the B-table cells: under_5, 5_17, 18_34, 35_64, 65_74, 75_plus (mutually exclusive; they sum exactly to 'all'). 'all' = every age the type's question covers: all ages for hearing and vision, 5 and over for cognitive, ambulatory and self_care, 18 and over for independent_living. A type has no row for a band below its floor.
7 allowed values
  • 18_34
  • 35_64
  • 5_17
  • 65_74
  • 75_plus
  • all — total / aggregate
  • under_5
difficulty_rateDifficulty Ratenumberproportion—yesShare of the group with this difficulty.
Full description
People with the difficulty as a share of the group's civilian noninstitutionalized population (0-1), derived as num_with_difficulty / num_population. On demographic 'all' rows it equals S1810's published percent to its 0.1-point rounding (asserted). NULL when the group's universe estimate is 0 in the geography: no one in the group was sampled there, which is not proof there are none (and not suppression).
difficulty_rate_moeDifficulty Rate Moenumberproportion—yes90 percent margin of error for difficulty_rate. demographic 'all' rows: the Census's published S1810 margin (percent / 100, rounded to 0.1 percentage point; the Census caps it at 100 points, so a universe of about 12 people or fewer carries 1.0 there, served as published). male/female rows: derived from the served count margins with the Census ratio formula (subtraction form, addition-form fallback whenever the radicand is not positive); a rate of exactly 0 or 1 takes the Census's own model margin, 1.645 * sqrt(R * (1 - R) * AW / N) with R = min(2.3 * AW / N, 0.5), N the universe and AW Georgia's average survey weight for the vintage (18 in 2020, 19 in 2021-2024). Never the headline metric.
Full description
90 percent margin of error for difficulty_rate. demographic 'all' rows: the Census's published S1810 margin (percent / 100, rounded to 0.1 percentage point; the Census caps it at 100 points, so a universe of about 12 people or fewer carries 1.0 there, served as published). male/female rows: derived from the served count margins with the Census ratio formula (subtraction form, addition-form fallback whenever the radicand is not positive); a rate of exactly 0 or 1 takes the Census's own model margin, 1.645 * sqrt(R * (1 - R) * AW / N) with R = min(2.3 * AW / N, 0.5), N the universe and AW Georgia's average survey weight for the vintage (18 in 2020, 19 in 2021-2024). Never the headline metric.
num_with_difficultyNumber with Difficultyintegercount—yesPeople in the group with the difficulty (ACS estimate) - the rate's numerator. A published B-table cell on male/female x age-band rows; otherwise the exact sum of those cells (on demographic 'all' rows it equals S1810's published count, asserted).
Full description
People in the group with the difficulty (ACS estimate) - the rate's numerator. A published B-table cell on male/female x age-band rows; otherwise the exact sum of those cells (on demographic 'all' rows it equals S1810's published count, asserted).
num_with_difficulty_moeNumber with Difficulty Moenumbercount—yes90 percent margin of error for num_with_difficulty: the published B-table margin on male/female x age-band rows; S1810's published margin on demographic 'all' rows; on male/female x age_bracket 'all' rows (summed over age bands, not published) the Census sqrt-sum-of-squares approximation with the zero-estimate rule (non-integer; conservative).
Full description
90 percent margin of error for num_with_difficulty: the published B-table margin on male/female x age-band rows; S1810's published margin on demographic 'all' rows; on male/female x age_bracket 'all' rows (summed over age bands, not published) the Census sqrt-sum-of-squares approximation with the zero-estimate rule (non-integer; conservative).
num_populationNumber Populationintegercount—yesThe group's civilian noninstitutionalized population that the type's question covers - the rate's denominator: the age band's population, or on age_bracket 'all' all ages (hearing, vision), 5 and over (cognitive, ambulatory, self_care) or 18 and over (independent_living). A published B-table cell, except demographic 'all' x one age band (male + female cells, equal to S1810's published universe, asserted).
Full description
The group's civilian noninstitutionalized population that the type's question covers - the rate's denominator: the age band's population, or on age_bracket 'all' all ages (hearing, vision), 5 and over (cognitive, ambulatory, self_care) or 18 and over (independent_living). A published B-table cell, except demographic 'all' x one age band (male + female cells, equal to S1810's published universe, asserted).
num_population_moeNumber Population Moeintegercount—yes90 percent margin of error for num_population, as published: the B-table cell's margin, or S1810's margin on demographic 'all' x one age band.
Full description
90 percent margin of error for num_population, as published: the B-table cell's margin, or S1810's margin on demographic 'all' x one age band.

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
demographicforeign_keyallfemalemalemulti-value, enum-enforced
disability_typecategoricalambulatorycognitivehearingindependent_livingself_carevisionmulti-value, enum-enforced, pick one
age_bracketcategorical
7 allowed values
  • 18_34
  • 35_64
  • 5_17
  • 65_74
  • 75_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
demographic_categorydimension_attribute
12 allowed values
  • aggregate
  • disability
  • economic_status
  • esol
  • foster_care
  • gender
  • grade
  • homeless_status
  • migrant_status
  • military
  • race
  • sped
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/disability_by_type"

counties data for 2024

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

Filtered to disability_type = ambulatory for 2024

curl "https://georgiacivicdata.org/api/v1/census/disability_by_type?year=2024&disability_type=ambulatory"

One district (code 660), 2024

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

One county (FIPS 13121), 2024

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

Download 2024 as CSV

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

Notes & limitations

NULL handling

  • Zero is a real, reported value.

Limitations

The six difficulty types overlap - one person can report several - so counts never add across disability_type (people with any disability: census/acs/disability_status). Universes differ by type: hearing and vision cover all ages, cognitive, ambulatory and self_care ages 5 and over, independent_living 18 and over, so age_bracket 'all' rates compare different populations across types; compare a type across places or an age band across types. The universe is the civilian noninstitutionalized population: nursing-home, prison and other institutional residents, and active-duty military, are excluded. Difficulties are self-reported (or reported by a household respondent) functional limitations from six survey questions - not a diagnosis, a benefit determination, or the school 'students with disabilities' (IDEA) count. A NULL difficulty_rate means the group's universe estimate is 0 in the geography: no one in the group was sampled there, which is not proof there are none (and not suppression). Margins: on demographic 'all' rows every margin is the Census's own published margin - subject table S1810's for the with-difficulty count, the rate and each age band's universe, and the B-table total cell's for the all-ages universe (S1810 publishes none there); the transform asserts S1810's counts equal the B18102-B18107 sums and its rounded percent equals the derived rate; rate margins there are rounded to 0.1 percentage point. Male and female rows carry the published B-table cell margins, except the all-ages with-difficulty count, summed over age bands, whose margin is the sqrt-sum-of-squares approximation (conservative); their rate margins are derived with the Census ratio formula (a 0 or 100 percent rate takes the Census's own model margin), and 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.