Skip to content
← All datasets

High School Graduation Rates

Georgia high school graduation rates by school, district, and demographic subgroup, 2012-2025.

Year coverage
20122025
Updated
annual
Version
1.0.0
Schema hash
cf373e5d8659

Detail levels available

StateDistrictSchool · default

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.

Key metric

graduation_rateGraduation 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
yearYearintegernoGraduation (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_codeDistrict Codestringyes3-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.

Joins districts; adds its label columns.

school_codeSchool Codestringyes4-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).

Joins schools; adds its label columns.

demographicDemographicstringnoStudent 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
  • active_duty
  • all
  • asian_pacific_islander
  • black
  • economically_disadvantaged
  • english_learners
  • female
  • foster_care
  • hispanic
  • homeless
  • male
  • migrant
  • multiracial
  • native_american
  • not_economically_disadvantaged
  • students_with_disabilities
  • students_without_disabilities
  • white

Joins demographics; adds its label columns.

rate_typeRate TypestringnoWhich 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
  • 4_year
  • 5_year
  • on_time
graduation_rateGraduation RatenumberproportionyesShare 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_cohortNumber CohortintegercountyesPublished 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_graduatesNumber GraduatesintegercountyesPublished 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_targetIndicator TargetnumberproportionyesCCRPI 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_flagCCRPI FlagstringyesCCRPI 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
  • green
  • red
  • yellow

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
18 allowed values
  • active_duty
  • all
  • asian_pacific_islander
  • black
  • economically_disadvantaged
  • english_learners
  • female
  • foster_care
  • hispanic
  • homeless
  • male
  • migrant
  • multiracial
  • native_american
  • not_economically_disadvantaged
  • students_with_disabilities
  • students_without_disabilities
  • white
multi-value, enum-enforced
rate_typecategorical4_year5_yearon_timemulti-value, enum-enforced, pick one
ccrpi_flagcategoricalgreenredyellowmulti-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), 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.