Student Attendance and Chronic Absenteeism
Student attendance tiers and chronic-absence rates by Georgia school, district, and demographic subgroup, 2004-2024.
- 2004–2024
- annual
- 1.0.0
- 9033e13d86bf
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.
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.
| Column | Type | Unit | Range | Null? | Description |
|---|---|---|---|---|---|
year | integer | — | — | no | 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.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_code | string | — | — | yes | 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.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. |
school_code | string | — | — | yes | 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.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. |
demographic | string | — | — | no | Student 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▾
|
num_students | integer | — | yes | Number of students in the subgroup used as the denominator for the rate metrics. A real 0 means the subgroup has no students at that entity. §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. A real 0 means the subgroup has no students at that entity. §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_rate | number | — | yes | 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 has zero students; those placeholder zeros are NULLed (rates of an empty population are undefined; 2004 already publishes NULL there).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 has zero students; those placeholder zeros are NULLed (rates of an empty population are undefined; 2004 already publishes NULL there). | |
six_to_fifteen_days_absent_rate | number | — | yes | 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-population placeholder zeros NULLed in 2005-2020 (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-population placeholder zeros NULLed in 2005-2020 (see five_or_fewer_days_absent_rate). | |
over_15_days_absent_rate | number | — | yes | 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-population placeholder zeros NULLed in 2005-2020 (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-population placeholder zeros NULLed in 2005-2020 (see five_or_fewer_days_absent_rate). | |
chronically_absent_rate | number | — | yes | Share 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-population placeholder zeros (masked to NULL), so 2004-2017 is entirely NULL. 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.
| Parameter | Kind | Allowed values | Notes |
|---|---|---|---|
year | year_exact | any value | — |
year_min | year_range | any value | — |
year_max | year_range | any value | — |
detail | detail | districtsschoolsstates | enum-enforced, default: schools |
district_code | foreign_key | any value | multi-value |
school_code | foreign_key | any value | multi-value |
demographic | foreign_key | 15 allowed values▾
| multi-value, enum-enforced |
district_type | dimension_attribute | 7 allowed values▾
| multi-value, enum-enforced |
demographic_category | dimension_attribute | 12 allowed values▾
| 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): 2004 publishes blank cells for many subgroups (including some state-level rows); 2021-2022 use the TFS (too few students) literal; 2023-2024 mix TFS and blank cells per cell, so the tier metrics are not co-suppressed and small-population subgroups (notably native_american) are mostly NULL in 2021-2024. chronically_absent_rate is NULL for every year before 2018. Rate metrics are NULL (masked) where a subgroup has zero students. 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.