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.
- 2011–2025
- annual
- 1.0.0
- 167aeba533a2
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.
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.
| Column | Type | Unit | Range | Null? | Description |
|---|---|---|---|---|---|
year | integer | — | — | no | Ending 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_code | string | — | — | yes | 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`).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`). |
school_code | string | — | — | yes | 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`).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`). |
employee_type | string | — | — | no | Which 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▾
|
num_staff_less_than_1_yr | integer | — | no | Headcount 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_yr | integer | — | no | Headcount 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_yr | integer | — | no | Headcount 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_yr | integer | — | no | Headcount 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_yr | integer | — | no | Headcount 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_experience | number | — | — | no | Mean 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.
| 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 |
employee_type | categorical | administratorspk_12_teacherssupport_personnel | multi-value, enum-enforced, pick one |
district_type | dimension_attribute | 7 allowed values▾
| multi-value, enum-enforced |
school_level | dimension_attribute | elementarymiddlehighk12other | multi-value, enum-enforced |
locale | dimension_attribute | citysuburbtownrural | 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/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.