{"main_topic":"education","sub_topic":"gosa","topic":"certified_personnel_composition","key":"education/gosa/certified_personnel_composition","version":"1.0.0","year_min":2011,"year_max":2024,"year_gaps":[],"update_frequency":"annual","detail_levels":["districts","schools","states"],"default_detail":"schools","path_template":"education/certified_personnel_composition/year={year}/{detail}.parquet","grain":["year","district_code","school_code","employee_type","staff_attribute_category","staff_attribute"],"title":"Certified Personnel Composition (Staff Characteristics)","summary":"Staff headcounts by certificate level, certification status, gender, employment status, and race/ethnicity for Georgia schools and districts, 2011-2024.","description":"Georgia certified-personnel staff composition, from the Governor's Office of Student Achievement (GOSA) Certified Personnel report (compiled from local school systems' Certified/Classified Personnel Information (CPI) submissions). For every Georgia public school, school district, and the state as a whole, publishes staff headcounts along five mutually exclusive staff-attribute axes — certificate level (Bachelor's through Doctoral, plus Other), certification status (Professional / Provisional), gender, employment status (Full/Part-time), and race/ethnicity — for each of three employee groups (Administrators, PK-12 Teachers, Support Personnel), school years 2010-11 through 2023-24. This topic covers WHO the staff are; its sibling topics from the same GOSA source cover how experienced they are (`certified_personnel_experience`: years-of-experience band headcounts and the mean) and their positions and pay (`certified_personnel_compensation`: FTE position counts and average salary/contract days).","source":"Governor's Office of Student Achievement (GOSA)","source_url":"https://gosa.georgia.gov/dashboards-data-report-card/downloadable-data","endpoint":"/api/v1/education/certified_personnel_composition","columns":[{"name":"year","type":"integer","role":"year","nullable":false,"label":"Year","short_description":"","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.","valid_values":null,"example":2024,"unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"district_code","type":"string","role":"fk_district","nullable":true,"label":"District Code","short_description":"","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`).","valid_values":null,"example":"644","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"school_code","type":"string","role":"fk_school","nullable":true,"label":"School Code","short_description":"","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`).","valid_values":null,"example":"0189","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"employee_type","type":"string","role":"categorical","nullable":false,"label":"Employee Type","short_description":"Which staff group the headcount covers: administrators, PK-12 teachers, or support personnel.","description":"Employee group this headcount covers. Snake_case recode of bronze EMPLOYEE_TYPE: `administrators`, `pk_12_teachers`, `support_personnel`.","valid_values":["administrators","pk_12_teachers","support_personnel"],"example":"pk_12_teachers","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"staff_attribute_category","type":"string","role":"categorical","nullable":false,"label":"Staff Attribute Category","short_description":"Which staff-attribute axis the row slices by: certificate level, certification status, gender, employment status, or race/ethnicity.","description":"The staff-attribute axis this row belongs to. Each of the five axes partitions the SAME certified-personnel population a different way, so rows from different axes must never be summed together. Renamed from the confusing bronze DATA_CATEGORY family names: bronze `Certified Personnel` -> `certification_status`, bronze `Personnel` -> `employment_status`; the other three are direct snake_case recodes. The axis is functionally determined by `staff_attribute` (17 valid pairs, enforced by a quality check).","valid_values":["certificate_level","certification_status","employment_status","gender","race_ethnicity"],"example":"race_ethnicity","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"staff_attribute","type":"string","role":"categorical","nullable":false,"label":"Staff Attribute","short_description":"The specific attribute value within the chosen axis (e.g. 5_yr_masters, professional, female, full_time, black).","description":"Specific attribute value within the axis. Snake_case recode of bronze DATA_SUB_CATEGORY — e.g. `5_yr_masters` (axis `certificate_level`), `professional` (axis `certification_status`), `full_time` (axis `employment_status`). `other` is the fifth CERTIFICATE LEVEL bucket (bronze `Other *`; the asterisk flags a source footnote), not a race value. Gender and race values reuse the canonical demographic vocabulary but describe STAFF — there is no `demographic` column and no join to the demographics dimension. `asian_pacific_islander` is the bronze staff-race label `Asian`: the source publishes only 6 race buckets with no separate Pacific Islander label in any year, and state-level race-bucket sums equal the gender-bucket sums (same population, residuals under 0.04% in both directions) — the pre-1997 OMB combined Asian + Pacific Islander bucket per data-cleaning-standards §5b. Certification status caveat: two source-defect windows on this axis are masked to NULL (see num_staff) — the whole axis in 2017 and the provisional bucket in 2020.","valid_values":["4_yr_bachelors","5_yr_masters","6_yr_specialists","7_yr_doctoral","asian_pacific_islander","black","female","full_time","hispanic","male","multiracial","native_american","other","part_time","professional","provisional","white"],"example":"5_yr_masters","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"num_staff","type":"integer","role":"metric","nullable":true,"label":"Number Staff","short_description":"Whole-person headcount of staff in the employee group with the given attribute value.","description":"Whole-person headcount of certified personnel in the employee group carrying the row's staff-attribute value. All 17 labels are verified-integral counts; the source has no suppression (zeros are real). Each staff_attribute_category axis partitions the same population, so only sum num_staff across rows WITHIN one axis (one staff_attribute_category value) — never across axes. Do not sum school rows to rebuild district or state headcounts (staff serving multiple schools are counted once per school assignment but deduplicated at higher levels). Two known source-defect windows on the certification_status axis are masked to NULL per §4b (the certification-axis staff sums otherwise match the gender-axis sums within ~0.3% — the internal test both windows fail): the ENTIRE axis in the 2016-17 file (captured ~3% of staff at every level, e.g. state professional PK-12 teachers 2,689 vs ~110,000 in adjacent years) and the provisional bucket in the 2019-20 file (state teachers 900 vs 4,745/4,716 neighbors; 102 of 214 districts at zero; professional passes the axis-sum test and is served). The bad values are recorded in the transform manifest and remain in bronze; they are not served.","valid_values":null,"example":42,"unit":"count","value_min":null,"value_max":null,"null_meaning":"Known-source-defect mask (§4b), NOT suppression: the 2016-17 certification_status axis (all values) and the 2019-20 provisional counts are demonstrably wrong at the source and are NULLed rather than served. All other cells are never NULL.","key_metric_grain_contributor":false,"metric_component":null}],"key_metric":"num_staff","usage":"Star-schema fact table. Join the districts dimension on district_code; the schools dimension on district_code + school_code. Read directly with DuckDB over Parquet.","limitations":"This source has no suppression markers in any year (2010-11 through 2023-24); zero counts are published as real `0` values. num_staff is NULL only on the two masked source-defect windows described below. The five staff_attribute_category axes each partition the SAME certified-personnel population a different way — sum num_staff only across rows within a single axis, never across axes (the total would multiply-count every person). staff_attribute_category is functionally determined by staff_attribute (17 valid pairs). Gender and race/ethnicity values reuse the canonical demographic vocabulary but describe STAFF, not the student demographic axis — there is no `demographic` column and these rows do not join the demographics dimension. The race_ethnicity axis uses the pre-1997 OMB combined `asian_pacific_islander` bucket (no separate Pacific Islander label exists in the source). Two known source-defect windows on the certification_status axis are MASKED to NULL rather than served (§4b known-source-defect rule; both fail the internal certification-vs-gender axis-sum test that every other year passes within ~0.3%): the entire axis in the 2016-17 file (captured ~3% of staff at every level) and the provisional bucket in the 2019-20 file (~19% of adjacent years; 102 of 214 districts at zero; professional passes the test and is served). The published defect values remain in bronze and in the transform manifest's mask ledger. School rows must not be summed to rebuild district or state headcounts: staff serving multiple schools are counted once per school assignment but deduplicated at higher levels, so a district count can even be smaller than a single school's count (observed only in employment_status/part_time; 1,811 cells). State rows have NULL district_code and school_code; district rows have NULL school_code. Experience and compensation/salary measures from the same GOSA source live in the sibling topics `certified_personnel_experience` and `certified_personnel_compensation`.","null_semantics":{"suppressed_to_null":false,"zero_is_real":true},"available_years":[2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024],"schema_hash":"67f87ed56ccdb8c85a96fa881bb5572287a273f2d73b9d43c15d3fee280ab9aa","tags":["education","governor's office of student achievement","certified_personnel_composition"],"granularity_description":"One row per year, district_code, school_code, employee_type, staff_attribute_category, staff_attribute (geography columns are NULL at higher aggregation levels).","example_queries":[{"description":"Latest year (2024), schools detail","query":"SELECT * FROM certified_personnel_composition WHERE year = 2024 LIMIT 100"},{"description":"District 644 in 2024","query":"SELECT * FROM certified_personnel_composition WHERE district_code = '644' AND year = 2024 LIMIT 100"},{"description":"Filter by employee_type = pk_12_teachers","query":"SELECT * FROM certified_personnel_composition WHERE employee_type = 'pk_12_teachers' AND year = 2024 LIMIT 100"}],"foreign_keys":[{"column":"district_code","target_object":"districts","target_columns":["district_code"],"attribute_columns_added":["district_name","district_census_id","district_type"],"scope":"domain"},{"column":"school_code","target_object":"schools","target_columns":["district_code","school_code"],"attribute_columns_added":["school_name"],"scope":"domain"}],"filters":[{"param":"year","kind":"year_exact","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_min","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_max","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"detail","kind":"detail","type":"string","multi_value":false,"enum_enforced":true,"values":["districts","schools","states"],"default":"schools"},{"param":"district_code","kind":"foreign_key","column":"district_code","type":"string","multi_value":true,"enum_enforced":false,"values":null},{"param":"school_code","kind":"foreign_key","column":"school_code","type":"string","multi_value":true,"enum_enforced":false,"values":null},{"param":"employee_type","kind":"categorical","column":"employee_type","type":"string","multi_value":true,"enum_enforced":true,"values":["administrators","pk_12_teachers","support_personnel"],"has_total":false,"total_value":null,"requires_single_value":true,"nullable":false,"null_filter_token":null},{"param":"staff_attribute_category","kind":"categorical","column":"staff_attribute_category","type":"string","multi_value":true,"enum_enforced":true,"values":["certificate_level","certification_status","employment_status","gender","race_ethnicity"],"has_total":false,"total_value":null,"requires_single_value":true,"nullable":false,"null_filter_token":null},{"param":"staff_attribute","kind":"categorical","column":"staff_attribute","type":"string","multi_value":true,"enum_enforced":true,"values":["4_yr_bachelors","5_yr_masters","6_yr_specialists","7_yr_doctoral","asian_pacific_islander","black","female","full_time","hispanic","male","multiracial","native_american","other","part_time","professional","provisional","white"],"has_total":false,"total_value":null,"requires_single_value":true,"nullable":false,"null_filter_token":null},{"param":"district_type","kind":"dimension_attribute","dimension":"districts","column":"district_type","type":"string","multi_value":true,"enum_enforced":true,"values":["commission_charter","resa","standard","state_agency","state_charter","state_school","state_special"]},{"param":"school_level","kind":"dimension_attribute","dimension":"schools","column":"school_level","type":"string","multi_value":true,"enum_enforced":true,"values":["elementary","middle","high","k12","other"]},{"param":"locale","kind":"dimension_attribute","dimension":"schools","column":"locale","type":"string","multi_value":true,"enum_enforced":true,"values":["city","suburb","town","rural"]}],"filter_hints":[{"primary":"staff_attribute_category","dependent":"staff_attribute","note":"Filter staff_attribute together with staff_attribute_category — the valid attribute set depends on the chosen axis (5 certificate levels, 2 certification statuses, 2 genders, 2 employment statuses, 6 race/ethnicity buckets)."}],"values_endpoint":"/api/v1/education/certified_personnel_composition/values"}