Skip to content
← All datasets

Enrollment by Grade Level

Student enrollment counts by grade (K-12) for each Georgia school, district, and the state, per Fall/Spring snapshot, 2011-2024.

Year coverage
20112024
Updated
annual
Version
1.0.0
Schema hash
0a3f9211501c

Detail levels available

StateDistrictSchool · default

Overview

Student enrollment counts by grade level for every Georgia public school, school district, and the state, published by GOSA for school years 2010-11 through 2023-24. Each row is the total number of students enrolled in one grade (K through 12) at one entity in one enrollment-snapshot period — GaDOE counts enrollment twice per school year (Fall and Spring collection cycles), and both snapshots are preserved as distinct rows. There is no demographic breakdown: every row is a total count for its (year, geography, period, grade) cell.

Row grain: One row per year, district_code, school_code, enrollment_period, grade_level.

Key metric

num_studentsNumber Students (count)

The single headline value most answers want.

Variables

Every column in the fact table. The code is the exact field name the API returns.

ColumnTypeUnitRangeNull?Description
yearYearintegernoEnding calendar year of the school year (2024 = 2023-24). Parsed from the bronze LONG_SCHOOL_YEAR and cross-checked against the filename year.
Full description
Ending calendar year of the school year (2024 = 2023-24). Parsed from the bronze LONG_SCHOOL_YEAR and cross-checked against the filename year.
district_codeDistrict CodestringyesGOSA district code (FK to districts dimension): 3-character zero-padded code for standard county/city districts, or 7-character code for state-charter (782 prefix), commission-charter (783 prefix), and state school (799 prefix) entities — 7-character codes appear in every year 2011-2024. NULL on state-level aggregate rows (bronze sentinel 'ALL').
Full description
GOSA district code (FK to districts dimension): 3-character zero-padded code for standard county/city districts, or 7-character code for state-charter (782 prefix), commission-charter (783 prefix), and state school (799 prefix) entities — 7-character codes appear in every year 2011-2024. NULL on state-level aggregate rows (bronze sentinel 'ALL').

Joins districts; adds its label columns.

school_codeSchool Codestringyes4-character zero-padded GOSA school code (composite FK to schools dimension with district_code; school codes are not globally unique on their own). NULL on district- and state-level aggregate rows (bronze sentinel 'ALL').
Full description
4-character zero-padded GOSA school code (composite FK to schools dimension with district_code; school codes are not globally unique on their own). NULL on district- and state-level aggregate rows (bronze sentinel 'ALL').

Joins schools; adds its label columns.

enrollment_periodEnrollment PeriodstringnoEnrollment snapshot within the school year: fall (October) or spring (March); never sum across them.
Full description
Enrollment-count snapshot within the school year: 'fall' (October collection) or 'spring' (March collection). Both snapshots exist for nearly every entity — queries wanting one headline count per year must filter to a single period, never sum across them.
2 allowed values
  • fall
  • spring
grade_levelGrade LevelstringnoGrade of the students counted: 'k' for kindergarten, '01'-'12' for grades 1-12; no pre-K or all-grades row.
Full description
Grade level of the students counted: 'k' for kindergarten, '01' through '12' for grades 1-12 (canonical zero-padded codes per the shared grade vocabulary). This source publishes no pre-K row and no cross-grade aggregate row, so 'pk' and 'all' never appear. Bronze spellings were K and 1st..12th.
13 allowed values
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • k
num_studentsNumber StudentsintegercountyesNumber of students enrolled in this grade and period at this entity.
Full description
Number of students enrolled in this grade and period at this entity. Three source regimes govern 0 vs NULL: (1) 2011-2020 — no suppression; an explicit 0 is a true zero (grade not served) and is preserved; (2) 2021-2022 — the source replaces both true zeros and counts 1-9 with 'TFS' (Too Few Students), stored as NULL here; (3) 2023-2024 — TFS suppression continues AND rows for non-applicable grade x entity combinations are no longer emitted, roughly halving the row count per year.

Filters

Query parameters the fact endpoint accepts. Comma-separated values are OR within a parameter; multiple parameters AND together.

ParameterKindAllowed valuesNotes
yearyear_exactany value
year_minyear_rangeany value
year_maxyear_rangeany value
detaildetaildistrictsschoolsstatesenum-enforced, default: schools
district_codeforeign_keyany valuemulti-value
school_codeforeign_keyany valuemulti-value
enrollment_periodcategoricalfallspringmulti-value, enum-enforced, pick one
grade_levelcategorical
13 allowed values
  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12
  • k
multi-value, enum-enforced, pick one
district_typedimension_attribute
7 allowed values
  • commission_charter
  • resa
  • standard
  • state_agency
  • state_charter
  • state_school
  • state_special
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/enrollment_by_grade_level"

schools data for 2024

curl "https://georgiacivicdata.org/api/v1/education/enrollment_by_grade_level?year=2024"

Filtered to enrollment_period = fall for 2024

curl "https://georgiacivicdata.org/api/v1/education/enrollment_by_grade_level?year=2024&enrollment_period=fall"

One district (code 601), 2024

curl "https://georgiacivicdata.org/api/v1/education/enrollment_by_grade_level?district_code=601&year=2024&detail=districts"

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/education/enrollment_by_grade_level?year=2024&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. State and district rows are independently published GOSA aggregates and may differ from the sum of their component rows by up to ~0.02% (e.g., students enrolled in more than one district during a collection period); do not treat component sums as exact reconciliations.