Skip to content
← All datasets

Certified Personnel Years of Experience

Experience distribution of Georgia school staff -- headcounts in five experience bands plus mean years of experience for administrators, PK-12 teachers, and support personnel by school, district, and state, 2011-2025.

Year coverage
2011–2025
Updated
annual
Version
1.0.0
Schema hash
167aeba533a2

Detail levels available

StateDistrictSchool · default

Overview

Governor's Office of Education and Workforce Strategy (GOEWS, formerly GOSA) certified-personnel years-of-experience measures, compiled from local school systems' Certified/Classified Personnel Information (CPI) submissions. For every Georgia public school, for each school district (all but `799` State Schools in 2024-25; see limitations), and for the state as a whole, publishes the experience distribution of the certified-personnel roster for each of three employee groups (Administrators, PK-12 Teachers, Support Personnel): headcounts in five mutually exclusive experience bands (less than 1 year, 1-10, 11-20, 21-30, over 30 years) plus the mean years of experience. One row per school, district, or state per year for each employee group it reports staff in: a school or district that employs no certified staff in a group has no row for that group (about one school-year in seven lacks at least one), while the state rows always cover all three. Coverage runs from the 2010-11 school year through 2024-25. This is one of three topics derived from the same GOSA Certified Personnel source: `certified_personnel_composition` carries the staff headcount axes (certificate level, certification status, gender, employment status, race/ethnicity — including the total staff counts), and `certified_personnel_compensation` carries the FTE position counts and salary/contract-day measures.

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

Key metric

avg_years_experience — Average Years Experience

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 calendar year of the school year. Year 2024 = 2023-2024 school year. Derived from the bronze `LONG_SCHOOL_YEAR` column's ending year.
Full description
Ending calendar year of the school year. Year 2024 = 2023-2024 school year. Derived from the bronze `LONG_SCHOOL_YEAR` column's ending year.
district_codeDistrict Codestring——yesGOSA district code (FK to the education districts dimension): 3-digit zero-padded for standard districts, 7-digit for state/commission charter schools (present from 2012 onward). NULL for state-level aggregate rows (the bronze sentinel `ALL`).
Full description
GOSA district code (FK to the education districts dimension): 3-digit zero-padded for standard districts, 7-digit for state/commission charter schools (present from 2012 onward). NULL for state-level aggregate rows (the bronze sentinel `ALL`).

Joins districts; adds its label columns.

school_codeSchool Codestring——yes4-digit zero-padded GOSA school code (FK to the education schools dimension, composite key with district_code). NULL for district-level and state-level aggregate rows (the bronze sentinel `ALL`).
Full description
4-digit zero-padded GOSA school code (FK to the education schools dimension, composite key with district_code). NULL for district-level and state-level aggregate rows (the bronze sentinel `ALL`).

Joins schools; adds its label columns.

employee_typeEmployee Typestring——noWhich staff group the measurements cover: administrators, PK-12 teachers, or support personnel.
Full description
Employee group this row's experience measures cover. Snake_case recode of bronze EMPLOYEE_TYPE: `administrators`, `pk_12_teachers`, `support_personnel`.
3 allowed values
  • administrators
  • pk_12_teachers
  • support_personnel
num_staff_less_than_1_yrNumber Staff Less Than 1 Yrintegercount—noHeadcount of staff with less than 1 year of experience.
Full description
Whole-person headcount of staff in this employee group with less than 1 year of experience. One of five mutually exclusive experience bands (<1, 1-10, 11-20, 21-30, >30 years). The bands may be summed WITHIN a row to get the staff count reported in experience bands (at state level this can differ slightly from the totals of other staff attributes in the sibling certified_personnel_composition topic, so do not treat them as interchangeable), but school rows must never be summed to rebuild district or state counts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Zero counts are real (no suppression in this source).
num_staff_1_to_10_yrNumber Staff 1 to 10 Yrintegercount—noHeadcount of staff with 1-10 years of experience.
Full description
Whole-person headcount of staff in this employee group with 1 to 10 years of experience. One of five mutually exclusive experience bands (<1, 1-10, 11-20, 21-30, >30 years). The bands may be summed WITHIN a row to get the staff count reported in experience bands (at state level this can differ slightly from the totals of other staff attributes in the sibling certified_personnel_composition topic, so do not treat them as interchangeable), but school rows must never be summed to rebuild district or state counts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Zero counts are real (no suppression in this source).
num_staff_11_to_20_yrNumber Staff 11 to 20 Yrintegercount—noHeadcount of staff with 11-20 years of experience.
Full description
Whole-person headcount of staff in this employee group with 11 to 20 years of experience. One of five mutually exclusive experience bands (<1, 1-10, 11-20, 21-30, >30 years). The bands may be summed WITHIN a row to get the staff count reported in experience bands (at state level this can differ slightly from the totals of other staff attributes in the sibling certified_personnel_composition topic, so do not treat them as interchangeable), but school rows must never be summed to rebuild district or state counts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Zero counts are real (no suppression in this source).
num_staff_21_to_30_yrNumber Staff 21 to 30 Yrintegercount—noHeadcount of staff with 21-30 years of experience.
Full description
Whole-person headcount of staff in this employee group with 21 to 30 years of experience. One of five mutually exclusive experience bands (<1, 1-10, 11-20, 21-30, >30 years). The bands may be summed WITHIN a row to get the staff count reported in experience bands (at state level this can differ slightly from the totals of other staff attributes in the sibling certified_personnel_composition topic, so do not treat them as interchangeable), but school rows must never be summed to rebuild district or state counts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Zero counts are real (no suppression in this source).
num_staff_over_30_yrNumber Staff Over 30 Yrintegercount—noHeadcount of staff with more than 30 years of experience.
Full description
Whole-person headcount of staff in this employee group with more than 30 years of experience. One of five mutually exclusive experience bands (<1, 1-10, 11-20, 21-30, >30 years). The bands may be summed WITHIN a row to get the staff count reported in experience bands (at state level this can differ slightly from the totals of other staff attributes in the sibling certified_personnel_composition topic, so do not treat them as interchangeable), but school rows must never be summed to rebuild district or state counts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Zero counts are real (no suppression in this source).
avg_years_experienceAverage Years Experiencenumber——noMean years of experience across the employee group's certified-personnel roster.
Full description
Mean years of experience across this entity's certified-personnel roster for the employee group, in years (0.01 precision; observed range [0, 51] across all 15 source years, enforced to [0, 60] by a quality check). An ENTITY-LEVEL mean: never sum it across entities, and a state mean is not the sum (or simple average) of district means. Carries no `unit` marker — a mean in years fits none of the unit vocabulary values — and no `metric_component` counts: the source publishes no separate N for this mean. The five band columns summed within a row give the count reported in experience bands; source totals across measure families can differ (at state level by up to 0.26% in 2024-25), so do not use a sibling `certified_personnel_composition` total as this mean's denominator.

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
employee_typecategoricaladministratorspk_12_teacherssupport_personnelmulti-value, enum-enforced, pick one
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

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/certified_personnel_experience"

schools data for 2025

curl "https://georgiacivicdata.org/api/v1/education/certified_personnel_experience?year=2025"

Filtered to employee_type = administrators for 2025

curl "https://georgiacivicdata.org/api/v1/education/certified_personnel_experience?year=2025&employee_type=administrators"

One district (code 644), 2025

curl "https://georgiacivicdata.org/api/v1/education/certified_personnel_experience?district_code=644&year=2025&detail=districts"

Download 2025 as CSV

curl "https://georgiacivicdata.org/api/v1/education/certified_personnel_experience?year=2025&format=csv"

Notes & limitations

NULL handling

  • Zero is a real, reported value.

Limitations

This source has no suppression; a 0 is a real reported value. State rows have NULL district_code and school_code. District rows have NULL school_code. District rows are served where the source publishes them. For a single-school state charter (7-digit district code) whose district row the source omits, the district row is a copy of its one school row (6 charters in 2017-18, 2 in 2018-19, 29 in 2024-25); where the source does publish such a charter's district row, it equals the school row. `799` State Schools has school rows but no district row in 2024-25; its schools and the state rows are still served, and no other district row is built from school rows. A school or district has a row only for the employee groups it reports staff in (no row has zero staff in every band): 5,894 of 40,860 school-years and 72 of 3,145 district-years lack at least one of the three groups, so a missing group means no certified staff of that kind were reported there, not a suppressed row.