Skip to content
← All datasets

Student Attendance and Chronic Absenteeism

Student attendance tiers and chronic-absence rates by Georgia school, district, and demographic subgroup, 2004-2024.

Source
GOSA
Year coverage
2004–2024
Updated
annual
Version
1.2.0
Schema hash
9033e13d86bf

Detail levels available

StateDistrictSchool · default

Overview

Distribution of Georgia public-school students across three absentee tiers (5 or fewer, 6-15, and more than 15 days absent during the school year), plus a chronic-absence rate (10% or more of enrolled days; published from 2018) and the student count in the denominator, for every school with official district and state rollups, by demographic subgroup (race/ethnicity, gender, economic status, English proficiency, migrant status, disability status). Published by GOSA for school years 2003-04 through 2023-24.

Row grain: One row per year, district_code, school_code, demographic.

Key metric

chronically_absent_rate — Chronically Absent 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——noEnding (spring) calendar year of the school year (e.g. 2024 for 2023-24). 2011-2024 files carry a LONG_SCHOOL_YEAR cross-checked against the filename; 2004-2010 files carry no year column, so the filename year (verified as the ending year via year-over-year enrollment continuity) is authoritative.
Full description
Ending (spring) calendar year of the school year (e.g. 2024 for 2023-24). 2011-2024 files carry a LONG_SCHOOL_YEAR cross-checked against the filename; 2004-2010 files carry no year column, so the filename year (verified as the ending year via year-over-year enrollment continuity) is authoritative.
district_codeDistrict Codestring——yesGOSA district code (FK to districts dimension): 3-digit zero-padded county/city codes or 7-digit state-charter codes (present from 2010). NULL on state-level rows.
Full description
GOSA district code (FK to districts dimension): 3-digit zero-padded county/city codes or 7-digit state-charter codes (present from 2010). NULL on state-level rows.

Joins districts; adds its label columns.

school_codeSchool Codestring——yesGOSA school code, zero-padded to 4 characters (composite FK to schools dimension with district_code; not globally unique on its own). 2004-2010 sources publish unpadded codes ('103'), zero-padded here to align with 2011-2024. NULL on district- and state-level rows.
Full description
GOSA school code, zero-padded to 4 characters (composite FK to schools dimension with district_code; not globally unique on its own). 2004-2010 sources publish unpadded codes ('103'), zero-padded here to align with 2011-2024. NULL on district- and state-level rows.

Joins schools; adds its label columns.

demographicDemographicstring——noStudent subgroup the row describes (race, gender, economic status, English learner, migrant, or disability); 'all' is every student.
Full description
Demographic subgroup (FK to the global demographics dimension); 15 subgroups in every year. Race buckets use the combined asian_pacific_islander key (pre-1997 OMB convention): the source publishes six race buckets with a bare 'Asian' label and never a separate Pacific Islander row, and the six buckets' state-level student counts sum exactly to the 'all' total in every year except 2013 (where they fall short by exactly 8 of 1.84M students — an unallocated-records artifact, not a dropped-Pacific-Islander population). 'all' is the unfiltered total and overlaps every other value; subgroups are mutually exclusive only within their own category (race, gender, economic, English proficiency, disability, migrant).
15 allowed values
  • all
  • asian_pacific_islander
  • black
  • economically_disadvantaged
  • english_learners
  • female
  • hispanic
  • male
  • migrant
  • multiracial
  • native_american
  • not_economically_disadvantaged
  • students_with_disabilities
  • students_without_disabilities
  • white

Joins demographics; adds its label columns.

num_studentsNumber Studentsintegercount—yesNumber of students in the subgroup used as the denominator for the rate metrics. What a published 0 means depends on the era, and only real zeros survive in gold: 2004-2010 — 0 is a real zero (the source publishes counts down to 1); 2011-2020 — the source published 0 for subgroups with fewer than 10 students (or none): the school-level minimum non-zero count is exactly 10 in every year from 2011 (1 in every year through 2010) and district counts up to 251 sit above all-zero school rows, so every 0 is NULLed as suppressed (§4b); 2021-2022 — sub-threshold cells are TFS, NULL; 2023-2024 — TFS is the suppressed 1-9 count (NULL) and an EMPTY cell is a zero-student subgroup, decoded to a real 0 (every empty count sits on a row whose rate cells are all empty, and on the complementary subgroups all minus sibling equals 0 for 100% of the testable empty cells — e.g. not_economically_disadvantaged at schools where every student is economically disadvantaged). Real zeros therefore exist in 2004-2010 and 2023-2024 only. Second §4b mask: in 2023 (5 rows) and 2024 (6 rows) the source published STUDENT_COUNT_FEMALE = 0 alongside non-zero published rates at tiny special-population schools (e.g. East DeKalb Special Education Center 2023: all=80, male=71, female reads 0) — a zero population cannot carry non-zero rates, so those counts are NULLed and the rates kept.
Full description
Number of students in the subgroup used as the denominator for the rate metrics. What a published 0 means depends on the era, and only real zeros survive in gold: 2004-2010 — 0 is a real zero (the source publishes counts down to 1); 2011-2020 — the source published 0 for subgroups with fewer than 10 students (or none): the school-level minimum non-zero count is exactly 10 in every year from 2011 (1 in every year through 2010) and district counts up to 251 sit above all-zero school rows, so every 0 is NULLed as suppressed (§4b); 2021-2022 — sub-threshold cells are TFS, NULL; 2023-2024 — TFS is the suppressed 1-9 count (NULL) and an EMPTY cell is a zero-student subgroup, decoded to a real 0 (every empty count sits on a row whose rate cells are all empty, and on the complementary subgroups all minus sibling equals 0 for 100% of the testable empty cells — e.g. not_economically_disadvantaged at schools where every student is economically disadvantaged). Real zeros therefore exist in 2004-2010 and 2023-2024 only. Second §4b mask: in 2023 (5 rows) and 2024 (6 rows) the source published STUDENT_COUNT_FEMALE = 0 alongside non-zero published rates at tiny special-population schools (e.g. East DeKalb Special Education Center 2023: all=80, male=71, female reads 0) — a zero population cannot carry non-zero rates, so those counts are NULLed and the rates kept.
five_or_fewer_days_absent_rateFive or Fewer Days Absent Ratenumberproportion—yesProportion of the subgroup absent five or fewer days during the school year (0-1 scale; source publishes 0-100, divided by 100). Together with the 6-15 and over-15 tiers it partitions the subgroup population (sums to ~1.0). §4b mask: in 2005-2020 the source publishes 0 for all rate metrics when the subgroup's count reads 0 — a real empty subgroup in 2005-2010, a subgroup with fewer than 10 students (or none) in 2011-2020; those placeholder zeros are NULLed (rates of an empty or suppressed population are undefined; 2004 already publishes NULL there). 2023-2024 zero encoding: the source stopped printing 0 in the rate columns and writes TFS in a tier whose numerator is zero (no explicit 0 exists in any 2023-2024 rate column; on every row with a TFS tier the published tiers already sum to 100), so a 2023-2024 TFS rate cell is decoded to 0.0 — including on rows whose count is TFS (suppressed 1-9), where the rates are still published.
Full description
Proportion of the subgroup absent five or fewer days during the school year (0-1 scale; source publishes 0-100, divided by 100). Together with the 6-15 and over-15 tiers it partitions the subgroup population (sums to ~1.0). §4b mask: in 2005-2020 the source publishes 0 for all rate metrics when the subgroup's count reads 0 — a real empty subgroup in 2005-2010, a subgroup with fewer than 10 students (or none) in 2011-2020; those placeholder zeros are NULLed (rates of an empty or suppressed population are undefined; 2004 already publishes NULL there). 2023-2024 zero encoding: the source stopped printing 0 in the rate columns and writes TFS in a tier whose numerator is zero (no explicit 0 exists in any 2023-2024 rate column; on every row with a TFS tier the published tiers already sum to 100), so a 2023-2024 TFS rate cell is decoded to 0.0 — including on rows whose count is TFS (suppressed 1-9), where the rates are still published.
six_to_fifteen_days_absent_rateSix to Fifteen Days Absent Ratenumberproportion—yesProportion of the subgroup absent six to fifteen days during the school year (0-1 scale; source publishes 0-100, divided by 100). Middle tier of the three-tier partition. Zero-or-sub-threshold placeholder zeros NULLed in 2005-2020; 2023-2024 TFS rate cells decoded to 0.0 (see five_or_fewer_days_absent_rate).
Full description
Proportion of the subgroup absent six to fifteen days during the school year (0-1 scale; source publishes 0-100, divided by 100). Middle tier of the three-tier partition. Zero-or-sub-threshold placeholder zeros NULLed in 2005-2020; 2023-2024 TFS rate cells decoded to 0.0 (see five_or_fewer_days_absent_rate).
over_15_days_absent_rateOver 15 Days Absent Ratenumberproportion—yesProportion of the subgroup absent more than fifteen days during the school year (0-1 scale; source publishes 0-100, divided by 100). Top tier of the three-tier partition; often used as a chronic-absenteeism proxy but distinct from chronically_absent_rate (different cutoff definitions). Zero-or-sub-threshold placeholder zeros NULLed in 2005-2020; 2023-2024 TFS rate cells decoded to 0.0 (see five_or_fewer_days_absent_rate).
Full description
Proportion of the subgroup absent more than fifteen days during the school year (0-1 scale; source publishes 0-100, divided by 100). Top tier of the three-tier partition; often used as a chronic-absenteeism proxy but distinct from chronically_absent_rate (different cutoff definitions). Zero-or-sub-threshold placeholder zeros NULLed in 2005-2020; 2023-2024 TFS rate cells decoded to 0.0 (see five_or_fewer_days_absent_rate).
chronically_absent_rateChronically Absent Ratenumberproportion—yesShare of the subgroup chronically absent (missing 10% or more of enrolled days), on a 0-1 scale; published from 2018.
Full description
Proportion of the subgroup chronically absent — absent 10% or more of enrolled days, the federal definition (0-1 scale; source publishes 0-100, divided by 100). Published 2018-2024 only: the column does not exist in the 2004-2010 and 2012-2017 sources, and the 2011 column's only non-null values are zero-or-sub-threshold placeholder zeros on count=0 rows (masked to NULL), so 2004-2017 is entirely NULL. In 2023-2024 the source writes TFS where no student in the subgroup was chronically absent (it prints no explicit 0 in the column; 1-student numerators such as 0.2% of 558 are published), so a 2023-2024 TFS cell is decoded to 0.0. NOT equal to over_15_days_absent_rate — the cutoffs differ (10% of enrolled days vs a fixed 15-day count).

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—
detaildetaildistrictsschoolsstatesenum-enforced, default: schools
district_codeforeign_keyany valuemulti-value
school_codeforeign_keyany valuemulti-value
demographicforeign_key
15 allowed values
  • all
  • asian_pacific_islander
  • black
  • economically_disadvantaged
  • english_learners
  • female
  • hispanic
  • male
  • migrant
  • multiracial
  • native_american
  • not_economically_disadvantaged
  • students_with_disabilities
  • students_without_disabilities
  • 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
school_leveldimension_attributeelementarymiddlehighk12othermulti-value, enum-enforced
localedimension_attributecitysuburbtownruralmulti-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), schools level

curl "https://georgiacivicdata.org/api/v1/education/attendance"

schools data for 2024

curl "https://georgiacivicdata.org/api/v1/education/attendance?year=2024"

One district (code 601), 2024

curl "https://georgiacivicdata.org/api/v1/education/attendance?district_code=601&year=2024&detail=districts"

Download 2024 as CSV

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

Suppressed cells are NULL (not zero), and the suppression regime changes by era: 2004 publishes the student count but blanks the tier rates for subgroups with fewer than 10 students (and blanks some cells outright, up to state level); 2005-2010 publish every count and rate down to a single student (no suppression — a 0 count is a real zero); 2011-2020 publish 0 for the count and every rate when a subgroup has fewer than 10 students (or none) — those 0 counts are NULLed as suppressed, so num_students is NULL on roughly a fifth of rows in those years and sums of school counts fall short of the district count by the suppressed students; 2021-2022 use the TFS (too few students) literal on every cell of a suppressed row; 2023-2024 use TFS only for a suppressed 1-9 count (NULL) and for a rate whose numerator is zero (decoded to 0.0), while an empty cell marks a zero-student subgroup (num_students = 0, rates NULL). In 2011-2022 the count and the tier rates are always NULL together; in 2023-2024 a suppressed count sits under published rates, so 2023-2024 rates cannot be re-weighted by num_students where the count is NULL. Small-population subgroups (notably native_american and migrant) are therefore mostly NULL from 2011 on. Real zeros in num_students exist in 2004-2010 and 2023-2024 only; most suppressed cells in the complementary subgroups (e.g. not_economically_disadvantaged at schools where every student is economically disadvantaged) are structural zeros, but the source does not distinguish 0 from 1-9 in 2011-2022. chronically_absent_rate is NULL for every year before 2018. Rate metrics are NULL (masked) on every num_students = 0 row. State rows have NULL district_code and school_code; district rows have NULL school_code. The race axis uses the combined asian_pacific_islander bucket — not comparable row-for-row with split-convention topics without aggregating those topics' asian + pacific_islander rows at query time.