Georgia Milestones End-of-Grade (EOG) Results
Georgia Milestones grades 3-8 test results by school, district, grade, and subject, 2015-2025.
- 2015–2025
- annual
- 1.0.0
- 809585caadc3
Overview
Georgia Milestones End-of-Grade (EOG) assessment results for grades 3-8 — published annually (except 2020, cancelled due to COVID) at the state, district/system, and school level. The primary metrics are the count of students tested, the mean scale score, and the share of students at each of the four achievement levels (Beginning / Developing / Proficient / Distinguished Learner) plus the two cumulative shares. English Language Arts rows additionally carry Reading Status metrics (pct_below_grade_level_lexile / pct_grade_level_or_above_lexile) from 2018 onward, anchored to grade-specific Lexile thresholds (520L for grade 3, 740L for grade 4, 830L for grade 5, 925L for grade 6, 970L for grade 7, 1010L for grade 8). 2016-2021 grade 6-8 rows split affected subjects into EOG / EOC / Combined variants to represent middle-schoolers taking end-of-course exams early (captured in the assessment_type column). 2022+ drops the EOC variants (moved to the georgia_milestones_end_of_course topic), adds a Standard Deviation metric per subject, and adds Physical Science for grade 8. 2024-2025 adds Student Growth Percentile (SGP) metrics — num_sgp_received, sgp_median, pct_sgp_low_growth, pct_sgp_typical_growth, pct_sgp_high_growth — reported on the parent ELA / Mathematics rows for grades 4-8.
Row grain: One row per year, district_code, school_code, grade_level, subject, assessment_type.
avg_scale_score — Average Scale Score (score, 140–830)
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 (e.g., 2025 = school year 2024-2025). 2020 is absent — the COVID-19 pandemic cancelled the administration.Full description▾Ending calendar year of the school year (e.g., 2025 = school year 2024-2025). 2020 is absent — the COVID-19 pandemic cancelled the administration. |
district_code | string | — | — | yes | 3-digit GOSA district/system code (FK to districts dimension). 7-digit charter / state-school campus codes are preserved in full; 2015 school-level rows published under the bare charter SYSTEM codes 782/783 are promoted to the 7-digit campus code (system + school code), and the 2015 shared state-school code 799 is remapped to the unique 7991893/7991894/7991895 codes used from 2016. NULL for state-level rows.Full description▾3-digit GOSA district/system code (FK to districts dimension). 7-digit charter / state-school campus codes are preserved in full; 2015 school-level rows published under the bare charter SYSTEM codes 782/783 are promoted to the 7-digit campus code (system + school code), and the 2015 shared state-school code 799 is remapped to the unique 7991893/7991894/7991895 codes used from 2016. NULL for state-level rows. |
school_code | string | — | — | yes | 4-digit GOSA school code (FK to schools dimension, composite with district_code). NULL for district- and state-level rows.Full description▾4-digit GOSA school code (FK to schools dimension, composite with district_code). NULL for district- and state-level rows. |
grade_level | string | — | — | no | Tested grade, 03 through 08 (Milestones EOG covers only grades 3-8).Full description▾Grade level, zero-padded 2-char string ('03'..'08'). Georgia Milestones EOG is administered only to grades 3-8. Same encoding as the other per-grade education topics. 6 allowed values▾
|
subject | string | — | — | no | The content area tested (english_language_arts, mathematics, science, social_studies, physical_science).Full description▾Snake-case academic content area: english_language_arts, mathematics, science, social_studies, physical_science (grade 8 only, from 2022 — 8th-graders taking the high-school Physical Science course early; bronze labels it 'HS Physical Science'). Bronze ships Reading Status and Student Growth Percentile (SGP) as parallel "subject" blocks, but those are metric families computed on the ELA / Mathematics test-taker population — the transform folds their metric columns onto the parent ELA / Mathematics row (pct_below_grade_level_lexile, pct_grade_level_or_above_lexile, num_sgp_received, sgp_median, pct_sgp_*) and drops the parallel rows. 5 allowed values▾
|
assessment_type | string | — | — | no | Marks regular EOG vs the 2016-2021 early end-of-course variants; use eog for year-over-year comparisons.Full description▾Differentiates regular EOG from the middle-school EOG / EOC / Combined triples that existed in 2016-2021 (middle-schoolers taking End-of-Course exams early: Mathematics 2016-2019, Science 2016-2021, English Language Arts 2018-2019 — never Social Studies). 2015 and 2022+ data is always `eog`. Filter assessment_type = 'eog' for the canonical comparison-safe year-over-year EOG-only time series. 3 allowed values▾
|
num_tested | integer | — | yes | Number of students who took the test. NULL when the source suppresses the cell ('--') for small populations.Full description▾Number of students who took the test. NULL when the source suppresses the cell ('--') for small populations. | |
avg_scale_score | number | 140–830 | yes | Average end-of-grade scale score (140-830 scale); higher means stronger performance.Full description▾Mean scale score on the EOG scale. Georgia Milestones EOG scale scores span 140-830 across grades/subjects (per-grade min/max differ; the envelope runs from the grade-6 ELA floor of 140 to the grade-3 ELA ceiling of 830, per the GaDOE EOG Score Interpretation Guide); the contract enforces that range. NOT converted to 0-1 — scale scores are preserved as-is per education CLAUDE.md. Never published for eoc / eog_and_eoc_combined rows (the bronze EOC blocks ship no Mean Scale Score column). | |
scale_score_std_dev | number | — | — | yes | Standard deviation of the scale scores — a dispersion measure, NOT a bounded score. Units are scale-score points; the value is always >= 0. Exempt from unit/range checks (it has no fixed upper bound). Published from 2022 onward; NULL for all earlier years.Full description▾Standard deviation of the scale scores — a dispersion measure, NOT a bounded score. Units are scale-score points; the value is always >= 0. Exempt from unit/range checks (it has no fixed upper bound). Published from 2022 onward; NULL for all earlier years. |
pct_beginning_learner | number | — | yes | Share of tested students at the Beginning Learner level (0-1 decimal scale; bronze 0-100 divided by 100).Full description▾Share of tested students at the Beginning Learner level (0-1 decimal scale; bronze 0-100 divided by 100). | |
pct_developing_learner | number | — | yes | Share at Developing Learner (0-1 scale).Full description▾Share at Developing Learner (0-1 scale). | |
pct_proficient_learner | number | — | yes | Share at Proficient Learner (0-1 scale).Full description▾Share at Proficient Learner (0-1 scale). | |
pct_distinguished_learner | number | — | yes | Share at Distinguished Learner (0-1 scale).Full description▾Share at Distinguished Learner (0-1 scale). | |
pct_developing_learner_or_above | number | — | yes | Share at Developing Learner or higher (= developing + proficient + distinguished). Published by the source and preserved verbatim rather than re-derived.Full description▾Share at Developing Learner or higher (= developing + proficient + distinguished). Published by the source and preserved verbatim rather than re-derived. | |
pct_proficient_learner_or_above | number | — | yes | Share at Proficient Learner or higher (= proficient + distinguished). Published by the source and preserved verbatim.Full description▾Share at Proficient Learner or higher (= proficient + distinguished). Published by the source and preserved verbatim. | |
pct_below_grade_level_lexile | number | — | yes | Reading Status: share of ELA test takers reading BELOW the grade-specific Lexile threshold (2018 onward). Populated only on english_language_arts rows. The threshold is 520L / 740L / 830L / 925L / 970L / 1010L for grades 3 / 4 / 5 / 6 / 7 / 8 — documented here rather than encoded in the column name so the schema stays grade-agnostic.Full description▾Reading Status: share of ELA test takers reading BELOW the grade-specific Lexile threshold (2018 onward). Populated only on english_language_arts rows. The threshold is 520L / 740L / 830L / 925L / 970L / 1010L for grades 3 / 4 / 5 / 6 / 7 / 8 — documented here rather than encoded in the column name so the schema stays grade-agnostic. | |
pct_grade_level_or_above_lexile | number | — | yes | Reading Status: share of ELA test takers reading at or above the grade-specific Lexile threshold; complement of pct_below_grade_level_lexile. Populated only on english_language_arts rows (2018 onward).Full description▾Reading Status: share of ELA test takers reading at or above the grade-specific Lexile threshold; complement of pct_below_grade_level_lexile. Populated only on english_language_arts rows (2018 onward). | |
enrolled_tested_rate | number | — | yes | Share of enrolled students who actually tested. Published ONLY by the 2021 files (testing was optional during COVID, so participation is essential context); NULL for every other year. The 2021 grade-8 system file leaves this sub-header blank in the ELA-EOG block (a merged-cell artifact); the transform repairs the header so the published participation rates are preserved.Full description▾Share of enrolled students who actually tested. Published ONLY by the 2021 files (testing was optional during COVID, so participation is essential context); NULL for every other year. The 2021 grade-8 system file leaves this sub-header blank in the ELA-EOG block (a merged-cell artifact); the transform repairs the header so the published participation rates are preserved. | |
num_sgp_received | integer | — | yes | Number of students with a Student Growth Percentile. Populated only on english_language_arts / mathematics rows at grades 4-8 from 2024 onward. Counted on the SGP-scored subset of test takers — distinct from num_tested. NULL elsewhere.Full description▾Number of students with a Student Growth Percentile. Populated only on english_language_arts / mathematics rows at grades 4-8 from 2024 onward. Counted on the SGP-scored subset of test takers — distinct from num_tested. NULL elsewhere. | |
sgp_median | number | — | yes | Median Student Growth Percentile (1-99 percentile rank, preserved on its natural scale per data-cleaning-standards §4). Float64 because even-population groups yield half-integer medians.Full description▾Median Student Growth Percentile (1-99 percentile rank, preserved on its natural scale per data-cleaning-standards §4). Float64 because even-population groups yield half-integer medians. | |
pct_sgp_low_growth | number | — | yes | Share of SGP-scored students in the Low Growth band (0-1 scale).Full description▾Share of SGP-scored students in the Low Growth band (0-1 scale). | |
pct_sgp_typical_growth | number | — | yes | Share in the Typical Growth band (0-1 scale).Full description▾Share in the Typical Growth band (0-1 scale). | |
pct_sgp_high_growth | number | — | yes | Share in the High Growth band (0-1 scale).Full description▾Share in the High Growth band (0-1 scale). |
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 |
grade_level | categorical | 030405060708 | multi-value, enum-enforced, pick one |
subject | categorical | english_language_artsmathematicssciencesocial_studiesphysical_science | multi-value, enum-enforced, pick one |
assessment_type | categorical | eogeoceog_and_eoc_combined | multi-value, enum-enforced, pick one |
district_type | dimension_attribute | 7 allowed values▾
| 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/georgia_milestones_end_of_grade"schools data for 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_grade?year=2025"Filtered to grade_level = 03 for 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_grade?year=2025&grade_level=03"One district (code 601), 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_grade?district_code=601&year=2025&detail=districts"Download 2025 as CSV
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_grade?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.