Student Growth Model (SGM) End-of-Course Results
Student growth percentiles on Georgia Milestones end-of-course tests by school, district, and subject, 2015-2023.
- 2015–2023
- annual
- 1.0.0
- b61cbc13276d
Overview
Georgia Student Growth Model (GSGM / Student Growth Percentile) results on Georgia Milestones End-of-Course assessments, at the state, district/system, and school level per subject. Core metrics are the median Student Growth Percentile (1-99), the count of students receiving an SGP, and growth-share metrics. 2015-2019 publish the count and share of tested students with an SGP, two achievement-level cumulative shares (Proficient / Developing Learner or above), and the share with Typical-or-High growth (SGP >= 35). The Full-Year 2022-2023 report (year 2023) redesigns the metric set: a three-band SGP split (Low < 35, Typical 35-65, High > 65) replaces the single typical-or-high share, and the tested counts, received-SGP share, and achievement shares are no longer reported. No GSGM was published for 2020-2022 (COVID). Subject coverage narrows from 8-10 subjects (2015-2016) to six (2017-2019) to two algebra courses (2023).
Row grain: One row per year, district_code, school_code, subject.
sgp_median — SGP Median (percentile, 1–99)
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., 2017 = school year 2016-2017). Published years: 2015-2019 and 2023 (the Full-Year 2022-2023 report). No 2020-2022 data exists.Full description▾Ending calendar year of the school year (e.g., 2017 = school year 2016-2017). Published years: 2015-2019 and 2023 (the Full-Year 2022-2023 report). No 2020-2022 data exists. |
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) — the 2015-2017 School files published those rows under the bare system code inside the compound Key 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) — the 2015-2017 School files published those rows under the bare system code inside the compound Key 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. |
subject | string | — | — | no | The end-of-course subject (e.g. algebra_i, biology, american_literature_and_composition).Full description▾Snake-case EOC subject. 2015 reports eight subjects (9th_grade_literature_and_composition, american_literature_and_composition, coordinate_algebra, analytic_geometry, biology, physical_science, us_history, economics_business_free_enterprise); 2016 adds algebra_i and geometry (ten); 2017-2019 report the six literature/math subjects; 2023 reports only coordinate_algebra and algebra_i. 10 allowed values▾
|
num_tested | integer | — | yes | Number of students who took the EOC assessment. Never suppressed where published. NULL in 2023 (the Full-Year 2022-2023 report does not publish tested counts).Full description▾Number of students who took the EOC assessment. Never suppressed where published. NULL in 2023 (the Full-Year 2022-2023 report does not publish tested counts). | |
num_sgp_received | integer | — | yes | Number of students with enough prior-year scores to receive a Student Growth Percentile (a subset of num_tested). Suppressed (NULL) for small cohorts in the 2019 files only.Full description▾Number of students with enough prior-year scores to receive a Student Growth Percentile (a subset of num_tested). Suppressed (NULL) for small cohorts in the 2019 files only. | |
sgp_received_rate | number | — | yes | Share of tested students who received an SGP (num_sgp_received / num_tested), 0-1 scale (bronze 0-100 divided by 100). NULL in 2023 (not reported).Full description▾Share of tested students who received an SGP (num_sgp_received / num_tested), 0-1 scale (bronze 0-100 divided by 100). NULL in 2023 (not reported). | |
sgp_median | number | 1–99 | yes | Median student growth percentile (1-99); 50 is average growth, higher means faster growth than similar peers.Full description▾Median Student Growth Percentile on the 1-99 percentile-rank scale (preserved verbatim — not a share; there is no SGP of 0 or 100, so the range guard is tightened from the percentile default [0, 100] to [1, 99]). Float64 because bronze publishes half-point medians (e.g., 43.5). The 2016 System Physical Science sheet stored an undocumented 9999 suppression sentinel in 11 rows — impossible on this scale, NULLed per §4b. | |
pct_proficient_learner_or_above | number | — | yes | Share of tested students at the Proficient Learner achievement level or higher on the EOC assessment itself (0-1 scale). Published 2015-2019 only; NULL in 2023. The 9999 sentinel note on sgp_median also applies (11 NULLed values in 2016 Physical Science system rows).Full description▾Share of tested students at the Proficient Learner achievement level or higher on the EOC assessment itself (0-1 scale). Published 2015-2019 only; NULL in 2023. The 9999 sentinel note on sgp_median also applies (11 NULLed values in 2016 Physical Science system rows). | |
pct_developing_learner_or_above | number | — | yes | Share of tested students at the Developing Learner achievement level or higher on the EOC assessment (0-1 scale). Published 2015-2019 only; NULL in 2023.Full description▾Share of tested students at the Developing Learner achievement level or higher on the EOC assessment (0-1 scale). Published 2015-2019 only; NULL in 2023. | |
pct_sgp_typical_or_high_growth | number | — | yes | Share of SGP-scored students with SGP >= 35 (Typical or High growth), 0-1 scale. Published 2015-2019 only — 2023 replaces it with the three-band split. NOT equal to pct_sgp_typical_growth, which excludes High.Full description▾Share of SGP-scored students with SGP >= 35 (Typical or High growth), 0-1 scale. Published 2015-2019 only — 2023 replaces it with the three-band split. NOT equal to pct_sgp_typical_growth, which excludes High. | |
pct_sgp_low_growth | number | — | yes | Share of SGP-scored students in the Low Growth band (SGP < 35), 0-1 scale. 2023 only; NULL for 2015-2019.Full description▾Share of SGP-scored students in the Low Growth band (SGP < 35), 0-1 scale. 2023 only; NULL for 2015-2019. | |
pct_sgp_typical_growth | number | — | yes | Share of SGP-scored students in the Typical Growth band (35 <= SGP <= 65), 0-1 scale. 2023 only; NULL for 2015-2019. Excludes High growth — not comparable to pct_sgp_typical_or_high_growth.Full description▾Share of SGP-scored students in the Typical Growth band (35 <= SGP <= 65), 0-1 scale. 2023 only; NULL for 2015-2019. Excludes High growth — not comparable to pct_sgp_typical_or_high_growth. | |
pct_sgp_high_growth | number | — | yes | Share of SGP-scored students in the High Growth band (SGP > 65), 0-1 scale. 2023 only; NULL for 2015-2019.Full description▾Share of SGP-scored students in the High Growth band (SGP > 65), 0-1 scale. 2023 only; NULL for 2015-2019. |
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 |
subject | categorical | 10 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_student_growth_model_end_of_course"schools data for 2023
curl "https://georgiacivicdata.org/api/v1/education/georgia_student_growth_model_end_of_course?year=2023"Filtered to subject = 9th_grade_literature_and_composition for 2023
curl "https://georgiacivicdata.org/api/v1/education/georgia_student_growth_model_end_of_course?year=2023&subject=9th_grade_literature_and_composition"One district (code 601), 2023
curl "https://georgiacivicdata.org/api/v1/education/georgia_student_growth_model_end_of_course?district_code=601&year=2023&detail=districts"Download 2023 as CSV
curl "https://georgiacivicdata.org/api/v1/education/georgia_student_growth_model_end_of_course?year=2023&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.