Out-of-Field Teachers
Share of Georgia teachers assigned to a subject they are not certified in, by school, district, and poverty stratum, 2018-2024.
- 2018–2024
- annual
- 1.0.0
- 35a095021777
Resumen
Georgia Office of Student Achievement (GOSA) Out-of-Field teacher FTE report. For every Georgia public school, school district, and the state as a whole, reports the total teacher full-time equivalent (`total_fte`), the FTE of teachers assigned to a subject for which they are not certified (`out_of_field_fte`), and the out-of-field FTE as a percentage of total FTE (`out_of_field_fte_rate`, on a 0-1 decimal scale). Each entity has three rows — Total, High Poverty, and Low Poverty — reporting the same three metrics across poverty strata of schools. Coverage spans the 2017-2018 school year through 2023-2024.
Granularidad de fila: Una fila por year, district_code, school_code, poverty_subgroup.
out_of_field_fte_rate — Out of Field FTE Rate (proportion)
El valor principal que la mayoría de las consultas busca.
Variables
Todas las columnas de la tabla de hechos. El código es el nombre exacto del campo que devuelve la API.
| Columna | Tipo | Unidad | Rango | ¿Nulo? | Descripción |
|---|---|---|---|---|---|
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.Descripción completa▾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 | 3-digit GOSA district code (zero-padded) for standard districts; 7-digit charter code for charter / specialty-school districts; NULL for state-level aggregate rows. FK to the education districts dimension. Because the source publishes only district NAMES (no codes), codes are resolved against `data/gold/education/_dimensions/districts.parquet` via the shared educator-topic resolver (year-aware certified_personnel lookups, curated code pins, and guarded name matching — see src/etl/education/gosa/_educator_lookups.py). Rows whose names cannot be resolved are dropped only under documented predicates; the transform manifest records each dropped class and count per year.Descripción completa▾3-digit GOSA district code (zero-padded) for standard districts; 7-digit charter code for charter / specialty-school districts; NULL for state-level aggregate rows. FK to the education districts dimension. Because the source publishes only district NAMES (no codes), codes are resolved against `data/gold/education/_dimensions/districts.parquet` via the shared educator-topic resolver (year-aware certified_personnel lookups, curated code pins, and guarded name matching — see src/etl/education/gosa/_educator_lookups.py). Rows whose names cannot be resolved are dropped only under documented predicates; the transform manifest records each dropped class and count per year. |
school_code | string | — | — | yes | 4-digit GOSA school code (zero-padded); NULL for district-level and state-level aggregate rows. FK to the education schools dimension (composite key with district_code). Resolved by name via the shared educator-topic resolver; school-level rows whose name cannot be resolved to a dimension entry are dropped under documented source-gap predicates only (counts in the transform manifest).Descripción completa▾4-digit GOSA school code (zero-padded); NULL for district-level and state-level aggregate rows. FK to the education schools dimension (composite key with district_code). Resolved by name via the shared educator-topic resolver; school-level rows whose name cannot be resolved to a dimension entry are dropped under documented source-gap predicates only (counts in the transform manifest). |
poverty_subgroup | string | — | — | no | School-poverty stratum the row covers: all schools (total), or only the highest- or lowest-poverty quartile; a school-poverty level, not a student demographic.Descripción completa▾Poverty stratum of the schools whose FTE this row aggregates. `total` covers all schools in the entity; `high_poverty` covers only the entity's schools in the state's highest-poverty quartile; `low_poverty` only those in the lowest-poverty quartile. Per GOSA's K-12 Teacher & Leader Workforce Reports, a school's poverty level is defined by its direct-certification rate (the share of students directly certified for free/reduced-price meals) — higher direct certification means higher poverty. For a school-level row the stratum describes the school itself, so `high_poverty`/`low_poverty` rows duplicate that school's `total` row (enforced by a quality check). This is a SCHOOL-poverty stratum, NOT a student demographic — it does not map to the global demographics dimension. 3 valores permitidos▾
|
total_fte | number | — | yes | Total teacher full-time equivalent count in the entity (or in the poverty subgroup). Fractional FTEs are real (e.g. 42.5). NULL when suppressed by the GOSA reporting floor (`TFS`, < 10 teachers; 2022 onward only). Denominator of `out_of_field_fte_rate`. The 2019 statewide level (162,256.2) is ~37% above neighboring years (2018: 118,009.1; 2020: 110,800.8) — a broader teacher population GOSA reported that year at every detail level; and the 2018 file mixes scopes across levels (school rows broad, district/state rows narrow). Preserved faithfully per data-cleaning-standards §4b (extreme-but-conceivable).Descripción completa▾Total teacher full-time equivalent count in the entity (or in the poverty subgroup). Fractional FTEs are real (e.g. 42.5). NULL when suppressed by the GOSA reporting floor (`TFS`, < 10 teachers; 2022 onward only). Denominator of `out_of_field_fte_rate`. The 2019 statewide level (162,256.2) is ~37% above neighboring years (2018: 118,009.1; 2020: 110,800.8) — a broader teacher population GOSA reported that year at every detail level; and the 2018 file mixes scopes across levels (school rows broad, district/state rows narrow). Preserved faithfully per data-cleaning-standards §4b (extreme-but-conceivable). | |
out_of_field_fte | number | — | yes | Teacher FTE assigned to a subject for which the teacher is not certified (teaching out of field) in the entity (or poverty subgroup). NULL when suppressed (`TFS`, < 10 FTE) — observed from 2022 onward (~88% of school-level rows). KNOWN ANOMALY: 2018-2021 files have no explicit suppression but carry implausibly high concentrations of literal 0 (2020: 48% of school-level rows; 2021: 18%) that almost certainly encode suppression as zero. True zeros cannot be mechanically separated, so every bronze 0 is preserved as 0.0 — treat 2018-2021 zeros with caution (school-level aggregates including 2020 are biased toward zero). Numerator of `out_of_field_fte_rate`. In this topic the 2018-2022 bronze OUTOFFIELD_FTE column carries genuine out-of-field values (unlike the sibling emergency-credentials topic, whose 2018-2021 bronze mislabels Emergency values under the same header).Descripción completa▾Teacher FTE assigned to a subject for which the teacher is not certified (teaching out of field) in the entity (or poverty subgroup). NULL when suppressed (`TFS`, < 10 FTE) — observed from 2022 onward (~88% of school-level rows). KNOWN ANOMALY: 2018-2021 files have no explicit suppression but carry implausibly high concentrations of literal 0 (2020: 48% of school-level rows; 2021: 18%) that almost certainly encode suppression as zero. True zeros cannot be mechanically separated, so every bronze 0 is preserved as 0.0 — treat 2018-2021 zeros with caution (school-level aggregates including 2020 are biased toward zero). Numerator of `out_of_field_fte_rate`. In this topic the 2018-2022 bronze OUTOFFIELD_FTE column carries genuine out-of-field values (unlike the sibling emergency-credentials topic, whose 2018-2021 bronze mislabels Emergency values under the same header). | |
out_of_field_fte_rate | number | — | yes | Share of teacher FTE assigned out of field, on a 0-1 scale (out_of_field_fte / total_fte).Descripción completa▾`out_of_field_fte` / `total_fte` on a 0-1 decimal scale. Bronze publishes an integer 0-100 percent (verified range 0-100 across all years); divided by 100 per data-cleaning-standards §4. Because GOSA rounds the percent to an integer computed from unrounded FTE values, the published rate deviates from out_of_field_fte/total_fte by up to 0.0124 at entities with total_fte >= 3 (enforced within 0.015 by a quality check scoped to total_fte >= 3). At 26 tiny-FTE rows (total_fte < 3, 2018-2021 alternative programs) the published percent deviates by up to 0.57 from the rounded-FTE quotient (e.g. 1.0/1.0 published as 50%) — GOSA evidently computed those percents from unrounded FTE values; the published rate is preserved per §4b (extreme-but-conceivable, not impossible). |
Filtros
Parámetros de consulta que acepta el endpoint de hechos. Los valores separados por comas son OR dentro de un parámetro; varios parámetros se combinan con AND.
| Parámetro | Tipo | Valores permitidos | Notas |
|---|---|---|---|
year | year_exact | cualquier valor | — |
year_min | year_range | cualquier valor | — |
year_max | year_range | cualquier valor | — |
detail | detail | districtsschoolsstates | enum validado, predeterminado: schools |
district_code | foreign_key | cualquier valor | valores múltiples |
school_code | foreign_key | cualquier valor | valores múltiples |
poverty_subgroup | categorical | high_povertylow_povertytotal | valores múltiples, enum validado |
district_type | dimension_attribute | 7 valores permitidos▾
| valores múltiples, enum validado |
Ejemplos de solicitudes
Ejecútalos contra la URL base: devuelven datos en vivo.
All rows (first page), schools level
curl "https://georgiacivicdata.org/api/v1/education/educator_qualifications_out_of_field_teachers"schools data for 2024
curl "https://georgiacivicdata.org/api/v1/education/educator_qualifications_out_of_field_teachers?year=2024"Filtered to poverty_subgroup = high_poverty for 2024
curl "https://georgiacivicdata.org/api/v1/education/educator_qualifications_out_of_field_teachers?year=2024&poverty_subgroup=high_poverty"One district (code 601), 2024
curl "https://georgiacivicdata.org/api/v1/education/educator_qualifications_out_of_field_teachers?district_code=601&year=2024&detail=districts"Download 2024 as CSV
curl "https://georgiacivicdata.org/api/v1/education/educator_qualifications_out_of_field_teachers?year=2024&format=csv"Notas y limitaciones
Manejo de NULL
- Las celdas suprimidas (muy pocos estudiantes para reportar) son NULL, nunca cero.
- El cero es un valor real y reportado.
Limitaciones
Cross-topic lineage caveat: the sibling emergency-credentials topic's 2018-2021 bronze files re-use the column headers OUTOFFIELD_FTE / OUTOFFIELD_FTE_PCT for Emergency-credential values (its 2021 state total is 9,796.9). THIS topic's bronze is the genuine out-of-field report (2021 state total 6,281.9) — do not reconcile the two by column name. Suppression is era-asymmetric: 2018-2021 files contain no TFS markers at all, while 2022 onward suppress values below 10 with TFS (treat NULL as 'value < 10' for 2022+; NULL does not occur before 2022). KNOWN ANOMALY: 2018-2021 out_of_field_fte carries implausibly many literal zeros (48% of 2020 school rows) that almost certainly encode suppression as 0; all zeros are preserved per bronze fidelity and consumers must handle 2018-2021 zeros explicitly. The FTE denominator has scope shifts: the 2019 file reports a ~37% broader teacher population at every detail level, and the 2018 file mixes scopes ACROSS levels (school rows broad — statewide school-row total_fte sums to 157,557.3 — while district and state rows are narrow, state row 118,009.1), so 2018 school rows do NOT sum to their district or state aggregates. The source publishes only district/school NAMES, so codes are resolved by name against the education dimensions via the shared educator-topic resolver (year-aware certified_personnel lookups, curated code pins, guarded matching); rows that cannot be resolved are dropped only under documented predicates — redundant 2023 truncated charter-container aggregates and cataloged source gaps — with per-year counts in the transform manifest. State rows have NULL district_code and school_code; district rows have NULL school_code.