Skip to content
← All datasets

SAT Scores (Highest Section Score)

Average SAT scores by section for Georgia public high schools, using each student's highest score across test dates, 2004-2024.

Source
GOSA
Year coverage
20042024
Updated
annual
Version
1.0.0
Schema hash
54310a68e15a

Detail levels available

StateDistrictSchool · default

Overview

Average SAT scores by test section for Georgia public high schools, with official district and state rollups, using each student's HIGHEST section score across SAT administrations (the companion sat_scores_recent topic reports the most-recent administration instead). Spans the 2004-2024 GOSA publications across the old SAT (Verbal/Math, later +Writing) and the 2016 redesigned SAT (Evidence-Based Reading and Writing, Math, optional Essay).

Row grain: One row per year, district_code, school_code, demographic, test_component.

Key metric

avg_scoreAverage Score (score)

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
yearYearintegernoReporting year. For 2011-2024 this is the spring (ending) calendar year of the school year in the source's LONG_SCHOOL_YEAR; for 2004-2010 the source carries no year column and the filename publication year is used.
Full description
Reporting year. For 2011-2024 this is the spring (ending) calendar year of the school year in the source's LONG_SCHOOL_YEAR; for 2004-2010 the source carries no year column and the filename publication year is used.
district_codeDistrict CodestringyesGOSA district code (FK to districts dimension): 3-digit zero-padded county/city codes or 7-digit state-charter codes. NULL on state-level rows.
Full description
GOSA district code (FK to districts dimension): 3-digit zero-padded county/city codes or 7-digit state-charter codes. NULL on state-level rows.

Joins districts; adds its label columns.

school_codeSchool CodestringyesGOSA school code, zero-padded to 4 characters (composite FK to schools dimension with district_code; not globally unique on its own). NULL on district- and state-level rows.
Full description
GOSA school code, zero-padded to 4 characters (composite FK to schools dimension with district_code; not globally unique on its own). NULL on district- and state-level rows.

Joins schools; adds its label columns.

demographicDemographicstringnoStudent race or gender subgroup; breakdowns exist only for 2004-2010, every later row is 'all'.
Full description
Student demographic (FK to demographics dimension). Breakdowns exist only for 2004-2010: race buckets (asian_pacific_islander, black, hispanic, native_american, white, other, race_unknown) and gender (female, male); every 2011-2024 row is 'all'. The source's bare 'Asian' label is the pre-1997 OMB COMBINED Asian/Pacific Islander bucket (no era of this source publishes a separate Pacific Islander row), so it maps to asian_pacific_islander — race buckets are mutually exclusive within this topic. 2007-2010 subgroup rows carry counts only (avg_score is NULL); race_unknown ('No Response') carries data in 2004 only (the source's R columns exist through 2007 but are blank in 2005-2006 and literal-'NULL' in 2007).
10 allowed values
  • all
  • asian_pacific_islander
  • black
  • female
  • hispanic
  • male
  • native_american
  • other
  • race_unknown
  • white

Joins demographics; adds its label columns.

test_componentTest ComponentstringnoWhich SAT section or composite the score is for; scales differ, so never compare across components.
Full description
SAT section/composite, era-aware: 2004-2010 wide files publish reading (source 'High Verbal'), mathematics ('High Math'), verbal_math (their 400-1600 two-section total, equal to reading + mathematics) and writing (2008-2010); 2011-2016 old-SAT files publish reading, mathematics, writing and combined (the 600-2400 three-section total); 2016-2024 redesigned-SAT files publish combined_test_score (400-1600), math_section_score (200-800), reading_test_score / writlang_test_score (GOSA-rescaled 10-40 section tests, observed ~190-340), evidence_based_reading_and_writing (200-800, 2016-2019 only), and the essay components (essay_reading_score / essay_analysis_score / essay_writing_score on 2-8, essay_total on 6-24). Old-SAT and redesigned-SAT composites are NOT comparable across 2016.
14 allowed values
  • combined — total / aggregate
  • combined_test_score
  • essay_analysis_score
  • essay_reading_score
  • essay_total
  • essay_writing_score
  • evidence_based_reading_and_writing
  • math_section_score
  • mathematics
  • reading
  • reading_test_score
  • verbal_math
  • writing
  • writlang_test_score
num_testedNumber TestednumbercountyesNumber of students tested. Float64 by documented exception (data-cleaning-standards §16): 2016-2024 bronze publishes FRACTIONAL counts on the combined_test_score component because GOSA reports it as the equal-weight mean of the three SAT section test-taker counts (Math, Reading, Writing & Language), not a headcount (e.g. (47+37+37)/3 -> 40.3 — exact thirds in 2016-2019, rounded to one decimal from ~2020); rounding to an integer would lose precision, and every other component's count is integral (enforced by a quality check). 2004-2010 sources publish one count per (entity, demographic) administration, repeated on each of that demographic's component rows; 2011-2024 sources publish true per-component counts. Either way, summing num_tested across test_component double-counts students — filter to one component for headcounts. A count of 0 is a real observation (zero students in that demographic took the SAT).
Full description
Number of students tested. Float64 by documented exception (data-cleaning-standards §16): 2016-2024 bronze publishes FRACTIONAL counts on the combined_test_score component because GOSA reports it as the equal-weight mean of the three SAT section test-taker counts (Math, Reading, Writing & Language), not a headcount (e.g. (47+37+37)/3 -> 40.3 — exact thirds in 2016-2019, rounded to one decimal from ~2020); rounding to an integer would lose precision, and every other component's count is integral (enforced by a quality check). 2004-2010 sources publish one count per (entity, demographic) administration, repeated on each of that demographic's component rows; 2011-2024 sources publish true per-component counts. Either way, summing num_tested across test_component double-counts students — filter to one component for headcounts. A count of 0 is a real observation (zero students in that demographic took the SAT).
avg_scoreAverage ScorenumberscoreyesAverage highest-attempt SAT score; on the scale of the section named by test_component.
Full description
Average SAT score on the component's own scale (see test_component; scales range from essay 2-8 up to combined 600-2400, so never aggregate avg_score across components). Known source defects NULLed per data-cleaning-standards §4b (rows and num_tested preserved; 20 values): (a) 2009 Heritage High School (722:176) published reading=1022, mathematics=995, writing=976, verbal_math=2017 and South Atlanta Leadership (761:308) writing=811 — all above the 200-800 / 400-1600 scales; (b) 2010 Rockdale County High (722:3052) published reading=1055, mathematics=1113, writing=1009, verbal_math=2168 and Elberta Open Campus (676:3050) reading=822; (c) 2011-2015 published 10 old-SAT writing averages below the 200 section floor (7 school + 3 district rollup values, as low as 112). An average cannot leave the per-student scale, so these are publication errors; NULLing them revises the preserve-bronze default for this column and keeps the per-component range quality check enforceable. Preserved-but-flagged instead: 2010 Elberta verbal_math=1522 (in range, but its masked reading component makes it suspect) and the systematically low 2011-2016 writing averages (state 361-406 vs ~470 on the recent-SAT basis) — see limitations.

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
demographicforeign_key
10 allowed values
  • all
  • asian_pacific_islander
  • black
  • female
  • hispanic
  • male
  • native_american
  • other
  • race_unknown
  • white
multi-value, enum-enforced
test_componentcategorical
14 allowed values
  • combined
  • combined_test_score
  • essay_analysis_score
  • essay_reading_score
  • essay_total
  • essay_writing_score
  • evidence_based_reading_and_writing
  • math_section_score
  • mathematics
  • reading
  • reading_test_score
  • verbal_math
  • writing
  • writlang_test_score
multi-value, enum-enforced
district_typedimension_attribute
7 allowed values
  • commission_charter
  • resa
  • standard
  • state_agency
  • state_charter
  • state_school
  • state_special
multi-value, enum-enforced
demographic_categorydimension_attribute
12 allowed values
  • aggregate
  • disability
  • economic_status
  • esol
  • foster_care
  • gender
  • grade
  • homeless_status
  • migrant_status
  • military
  • race
  • sped
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/sat_scores_highest"

schools data for 2024

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

Filtered to test_component = combined_test_score for 2024

curl "https://georgiacivicdata.org/api/v1/education/sat_scores_highest?year=2024&test_component=combined_test_score"

One district (code 601), 2024

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

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/education/sat_scores_highest?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. avg_score scales differ by test_component — never compare or aggregate across components, and never sum num_tested across components (it double-counts students). Old-SAT (pre-2016) and redesigned-SAT (2016+) results are not comparable. HIGHEST-basis caveat for the old-SAT writing component (2011-2016): GOSA's published averages are systematically far below the recent-basis values (state 361-406 vs ~470) and 10 values fall below the section's 200 floor (NULLed); in-range writing values — and the combined composite that embeds them — appear deflated on the highest basis and should be used with caution. The 2010 Elberta Open Campus verbal_math value (1522) is preserved although its reading component (822) was impossible and NULLed.