High School Graduation Rates
Georgia high school graduation rates by school, district, and demographic subgroup, 2012-2025.
- 2012–2025
- annual
- 1.0.0
- cf373e5d8659
Overview
Georgia high school graduation rates at the school, district, and state level by demographic subgroup, 2012-2025. A single `graduation_rate` column (0-1 scale) carries three distinct methodologies discriminated by `rate_type`: the federal adjusted 4-year cohort rate (2012-2025), the 5-year cohort variant (2018-2024), and the Senate Bill 431 on-time rate (2021-2024, school-level only). `num_cohort` and `num_graduates` carry the published denominator/numerator where a source ships them; CCRPI accountability years add an improvement `indicator_target` and color `ccrpi_flag`. Sources span six release families (CCRPI workbooks, legacy 2012-2014 releases, standalone 4-year and 5-year cohort releases, SB 431 on-time releases, and a GOSA-portal CSV that fills the 2023 4-year count gap), merged by source precedence. This topic publishes the underlying graduation rates by methodology and demographic; the CCRPI Graduation Rate component score as it feeds the accountability index (a distinct benchmarked value, not equal to the raw 4-year rate) — alongside the overall CCRPI score and the other four component scores — lives in the `ccrpi_scoring_by_component` topic (the CCRPI overview).
Row grain: One row per year, district_code, school_code, demographic, rate_type.
graduation_rate — Graduation 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 | Graduation (cohort end) calendar year. For `4_year` rows, the spring the cohort was due to graduate; for `5_year` rows, the cohort's 4-year year + 1 had already passed (the rate is published one year later but keyed to the cohort year measured); for `on_time` rows, the SB 431 graduation year. Sourced from the bronze year column where one exists (CCRPI/legacy/on-time files; cross-checked against the filename) and from the filename for the standalone cohort releases. The February 2018 standalone release carries 2017-cohort data and lands in 2017.Full description▾Graduation (cohort end) calendar year. For `4_year` rows, the spring the cohort was due to graduate; for `5_year` rows, the cohort's 4-year year + 1 had already passed (the rate is published one year later but keyed to the cohort year measured); for `on_time` rows, the SB 431 graduation year. Sourced from the bronze year column where one exists (CCRPI/legacy/on-time files; cross-checked against the filename) and from the filename for the standalone cohort releases. The February 2018 standalone release carries 2017-cohort data and lands in 2017. |
district_code | string | — | — | yes | 3-digit GOSA district code (zero-padded) for standard districts; 7-digit code for state-charter/state-school operators; the allowlisted pseudo-district code `RTC` (Residential Treatment Center aggregate, data years 2015-2018 only). NULL for state-level rows. FK to the districts dimension.Full description▾3-digit GOSA district code (zero-padded) for standard districts; 7-digit code for state-charter/state-school operators; the allowlisted pseudo-district code `RTC` (Residential Treatment Center aggregate, data years 2015-2018 only). NULL for state-level rows. FK to the districts dimension. |
school_code | string | — | — | yes | 4-digit GOSA school code (zero-padded; later bronze years strip leading zeros). NULL for district- and state-level rows. FK to the schools dimension (composite key with district_code).Full description▾4-digit GOSA school code (zero-padded; later bronze years strip leading zeros). NULL for district- and state-level rows. FK to the schools dimension (composite key with district_code). |
demographic | string | — | — | no | Student subgroup the row reports — race, gender, economic status, disability, and more; 'all' is the total.Full description▾Canonical demographic code (FK to demographics dimension). 10 subgroups are reported across every era (all, asian_pacific_islander, black, hispanic, white, multiracial, native_american, economically_disadvantaged, english_learners, students_with_disabilities); 8 more (active_duty, female, male, foster_care, homeless, migrant, not_economically_disadvantaged, students_without_disabilities) appear ONLY in 2023 via the GOSA 4-year cohort CSV's wider breakdown. Race uses the combined `asian_pacific_islander` bucket — no source file publishes separate Asian or Pacific Islander rows. `American Indian/Alaskan [Native]` label drift folds to `native_american`; the GOSA CSV's `Limited English Proficient` folds to `english_learners`. 18 allowed values▾
|
rate_type | string | — | — | no | Which graduation-rate methodology the row uses: 4-year cohort, 5-year cohort, or the SB 431 on-time rate.Full description▾Graduation-rate methodology: `4_year` (federal adjusted 4-year cohort rate, 2012-2025), `5_year` (5-year cohort variant, 2018-2024), or `on_time` (SB 431 statutory measure — continuous enrollment from Oct 1 of 9th grade — 2021-2024, school-level rows only). Denominator semantics differ per type (see num_cohort). 3 allowed values▾
|
graduation_rate | number | — | yes | Share of the cohort that graduated, on a 0-1 scale; which methodology applies is set by rate_type.Full description▾Graduation rate on the 0-1 decimal scale (bronze ships 0-100; divided by 100). Interpretation follows rate_type. For overlapping 4-year keys the CCRPI accountability value wins by source precedence; standalone cohort releases fill years CCRPI does not cover, and ~200 small-cell 2023 keys carry the GOSA CSV rate that the CCRPI workbook suppressed. CAVEAT: the rate and the count pair can come from releases published at different cutoffs — do NOT assume num_graduates / num_cohort equals graduation_rate for `4_year` rows (it reconciles only to ~0.4pp even within one release). For `on_time` rows the identity holds to published rounding and is enforced as a quality check. | |
num_cohort | integer | — | yes | Published cohort denominator. For `4_year` rows: the federal adjusted cohort (first-time 9th graders four years prior, adjusted for transfers) from the standalone cohort releases — ALL-Students demographic only in 2015-2022/2024-2025, all 18 demographics in 2023 via the GOSA CSV. For `on_time` rows: `Total Enrolled` per SB 431 (continuous enrollment from Oct 1). Never published for `5_year` rows or the 2012-2014 legacy years.Full description▾Published cohort denominator. For `4_year` rows: the federal adjusted cohort (first-time 9th graders four years prior, adjusted for transfers) from the standalone cohort releases — ALL-Students demographic only in 2015-2022/2024-2025, all 18 demographics in 2023 via the GOSA CSV. For `on_time` rows: `Total Enrolled` per SB 431 (continuous enrollment from Oct 1). Never published for `5_year` rows or the 2012-2014 legacy years. | |
num_graduates | integer | — | yes | Published count of graduates (cohort numerator). Same source coverage as num_cohort. Never exceeds num_cohort (0 violations source-wide; enforced as a quality check). CAVEAT: published at a different cutoff than the CCRPI graduation_rate for 4-year rows — see graduation_rate.Full description▾Published count of graduates (cohort numerator). Same source coverage as num_cohort. Never exceeds num_cohort (0 violations source-wide; enforced as a quality check). CAVEAT: published at a different cutoff than the CCRPI graduation_rate for 4-year rows — see graduation_rate. | |
indicator_target | number | — | yes | CCRPI improvement target on the same 0-1 scale as graduation_rate (observed range [0.022, 0.9]). Published for 4-year and 5-year rows in 2018-2019 and 2023-2025 releases: years 2018, 2019, 2023, 2024 carry both rate types, 2022 carries 5-year only (the 2023 workbook's prior-year slice; the 2022 release itself omitted the column), 2025 carries 4-year only (its 5-year slice lands in 2024). 2020 is all NULL (COVID CCRPI suspension). NOT cross-topic comparable: each CCRPI topic's target inherits its companion metric's scale (§16).Full description▾CCRPI improvement target on the same 0-1 scale as graduation_rate (observed range [0.022, 0.9]). Published for 4-year and 5-year rows in 2018-2019 and 2023-2025 releases: years 2018, 2019, 2023, 2024 carry both rate types, 2022 carries 5-year only (the 2023 workbook's prior-year slice; the 2022 release itself omitted the column), 2025 carries 4-year only (its 5-year slice lands in 2024). 2020 is all NULL (COVID CCRPI suspension). NOT cross-topic comparable: each CCRPI topic's target inherits its companion metric's scale (§16). | |
ccrpi_flag | string | — | — | yes | CCRPI performance color (green/yellow/red) for whether the school met its graduation improvement target.Full description▾CCRPI performance color flag: `green` (met the improvement target), `yellow` (improved but short of target), or `red` (did not improve); bronze G/Y/R recoded per §16. The graduation indicator never awards `green_star` in any bronze year (2018-2025, verified). Same publication coverage as indicator_target. A derived performance attribute functionally determined by the rest of the row key, so it is excluded from the contract grain. 3 allowed values▾
|
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 | 18 allowed values▾
| multi-value, enum-enforced |
rate_type | categorical | 4_year5_yearon_time | multi-value, enum-enforced, pick one |
ccrpi_flag | categorical | greenredyellow | 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/ccrpi_graduation_rate"schools data for 2025
curl "https://georgiacivicdata.org/api/v1/education/ccrpi_graduation_rate?year=2025"Filtered to rate_type = 4_year for 2025
curl "https://georgiacivicdata.org/api/v1/education/ccrpi_graduation_rate?year=2025&rate_type=4_year"One district (code 601), 2025
curl "https://georgiacivicdata.org/api/v1/education/ccrpi_graduation_rate?district_code=601&year=2025&detail=districts"Download 2025 as CSV
curl "https://georgiacivicdata.org/api/v1/education/ccrpi_graduation_rate?year=2025&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). State rows have NULL district_code and school_code. District rows have NULL school_code.