Georgia Milestones End-of-Course (EOC) Results
Georgia Milestones high-school end-of-course test results by school, district, and subject, 2015-2025.
- 2015–2025
- triannual
- 1.0.0
- 1b2606493498
Overview
Georgia Milestones End-of-Course (EOC) assessment results for high-school core content areas, published for each of up to three administrations per school year (Winter mid-year retest, Spring primary, Full-Year aggregate) at the state, district/system, and school level. Core 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. Literature subjects add a Reading Status split against a per-course Lexile threshold (9th Grade Literature 1050L through 2020; American Literature 1185L). Student Growth Percentile (SGP) metrics appear in the source layout from Spring 2024 but carry data only from the 2024-2025 school year (Algebra: Concepts & Connections and American Literature). Full-Year 2020-2021 uniquely includes enrolled_tested_rate, reflecting COVID-era participation drops.
Row grain: One row per year, district_code, school_code, administration, subject.
avg_scale_score — Average Scale Score (score, 140–820)
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., 2024 = school year 2023-2024). Winter administrations are stored under the school year they fall inside: Winter 2014 EOC is the 2014-2015 mid-year retest, stored as year=2015.Full description▾Ending calendar year of the school year (e.g., 2024 = school year 2023-2024). Winter administrations are stored under the school year they fall inside: Winter 2014 EOC is the 2014-2015 mid-year retest, stored as year=2015. |
district_code | string | — | — | yes | 3-digit GOSA district/system code (FK to districts dimension). School-level rows for State/Commission Charter campuses use the 7-digit campus code (system 782/783 + school code) — 2015-2017 bronze published those rows under the bare system code and they are promoted here. NULL for state-level rows.Full description▾3-digit GOSA district/system code (FK to districts dimension). School-level rows for State/Commission Charter campuses use the 7-digit campus code (system 782/783 + school code) — 2015-2017 bronze published those rows under the bare system code and they are promoted here. 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. |
administration | string | — | — | no | Which test window the row covers: winter retest, spring primary, or the full-year aggregate.Full description▾Which of the three publications a row comes from: winter = mid-year retest, spring = primary end-of-year administration, full_year = fall+winter+spring aggregate. The three slices are distinct cohorts, not duplicates. 3 allowed values▾
|
subject | string | — | — | no | The high-school course tested (e.g. biology, us_history, american_literature_and_composition).Full description▾Snake-case EOC content area. The tested slate changed over time: 8-10 subjects through 2020 (incl. 9th Grade Literature, Physical Science, Economics, two algebra and two geometry courses), 5 from 2021, and 4 from 2024 (american_literature_and_composition, algebra_concepts_and_connections, biology, us_history). Full-Year 2020-2021's 8th-grade Physical Science administration is folded into physical_science. 11 allowed values▾
|
num_tested | integer | — | yes | Number of students tested. Never suppressed by the source — non-null on every row.Full description▾Number of students tested. Never suppressed by the source — non-null on every row. | |
avg_scale_score | number | 140–820 | yes | Average end-of-course scale score (about 400-650 in practice); higher means stronger performance.Full description▾Mean scale score on the Georgia Milestones EOC scale. Reported scores span roughly 400-650; the contract enforces the full published EOC scale range of 140-820 (per-course bounds differ; Biology spans the full range per the GaDOE EOC Score Interpretation Guide). Preserved on its natural scale. | |
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 only by Spring 2015 system-level files, Winter 2021 files, and every file from Spring 2022 onward; NULL elsewhere.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 only by Spring 2015 system-level files, Winter 2021 files, and every file from Spring 2022 onward; NULL elsewhere. |
pct_beginning_learner | number | — | yes | Share of tested students at the Beginning Learner level (0-1 scale; bronze 0-100 divided by 100).Full description▾Share of tested students at the Beginning Learner level (0-1 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 tested students reading below the course's Lexile threshold. Populated only for literature subjects. The threshold is per course, not per year: 9th Grade Literature uses 1050L (reported 2018-2020) and American Literature 1185L (reported 2018 onward; the 2018-2020 American Literature files label the threshold 1050L in their headers but the course moved to 1185L from 2021).Full description▾Reading Status: share of tested students reading below the course's Lexile threshold. Populated only for literature subjects. The threshold is per course, not per year: 9th Grade Literature uses 1050L (reported 2018-2020) and American Literature 1185L (reported 2018 onward; the 2018-2020 American Literature files label the threshold 1050L in their headers but the course moved to 1185L from 2021). | |
pct_grade_level_or_above_lexile | number | — | yes | Reading Status: share reading at or above the Lexile threshold; complement of pct_below_grade_level_lexile. Populated only for literature subjects.Full description▾Reading Status: share reading at or above the Lexile threshold; complement of pct_below_grade_level_lexile. Populated only for literature subjects. | |
num_sgp_received | integer | — | yes | Number of tested students who received a Student Growth Percentile. SGP columns exist in the source layout from Spring 2024, but the 2024 Algebra CC sheets are empty templates — populated data starts with the 2024-2025 school year (year=2025) for algebra_concepts_and_connections and american_literature_and_composition. NULL elsewhere.Full description▾Number of tested students who received a Student Growth Percentile. SGP columns exist in the source layout from Spring 2024, but the 2024 Algebra CC sheets are empty templates — populated data starts with the 2024-2025 school year (year=2025) for algebra_concepts_and_connections and american_literature_and_composition. 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 2025 bronze publishes half-point medians (e.g. 61.5).Full description▾Median Student Growth Percentile (1-99 percentile rank, preserved on its natural scale per data-cleaning-standards §4). Float64 because 2025 bronze publishes half-point medians (e.g. 61.5). | |
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). | |
enrolled_tested_rate | number | — | yes | Share of enrolled students who actually tested. Published ONLY by the Full-Year 2020-2021 files (COVID participation year); NULL for every other administration.Full description▾Share of enrolled students who actually tested. Published ONLY by the Full-Year 2020-2021 files (COVID participation year); NULL for every other administration. |
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 |
administration | categorical | winterspringfull_year | multi-value, enum-enforced, pick one |
subject | categorical | 11 allowed values▾
| 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_course"schools data for 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_course?year=2025"Filtered to administration = winter for 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_course?year=2025&administration=winter"One district (code 601), 2025
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_course?district_code=601&year=2025&detail=districts"Download 2025 as CSV
curl "https://georgiacivicdata.org/api/v1/education/georgia_milestones_end_of_course?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.