Skip to content
← All datasets

SAT Scores (Most Recent Administration)

Average SAT scores by section for Georgia public high schools, using each student's most recent test date, 2004-2024.

Source
GOSA
Year coverage
20042024
Updated
annual
Version
1.0.0
Schema hash
675005c92aa4

Detail levels available

StateDistrictSchool · default

Overview

Average SAT scores (most recent administration per student) and number of students tested for Georgia public high schools, with official district and state rollups, by SAT test component. 2004-2010 additionally break out demographic subgroups; 2011 onward is all-students only. Spans the 2016 SAT redesign: pre-redesign components (verbal_math, reading, mathematics, writing, combined, verbal_math_writing) and redesigned components (combined_test_score, math_section_score, evidence_based_reading_and_writing, reading_test_score, writlang_test_score, essay components) are distinct categorical values because they measure on different scales. Best-attempt scores live in the sibling topic sat_scores_highest.

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 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 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
Demographic subgroup (FK to the global demographics dimension). Subgroup breakdowns exist only for 2004-2010; from 2011 onward the source publishes all-students rows only, so every 2011+ row is 'all'. The asian_pacific_islander key reflects the source's pre-1997 OMB combined Asian + Pacific Islander bucket (the bronze label is bare 'Asian', but no era publishes a separate Pacific Islander row and sibling GOSA reports use the explicit combined label) — it is NOT an Asian-only count, per data-cleaning-standards section 5b. race_unknown (no-response) carries data only in 2004; 2005-2007 publish the slot empty and 2008+ drop it.
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 test component. Pre-redesign (scales in parentheses): reading (200-800; published as 'Verbal' until 2011, the same Critical Reading section, 2004-2016), mathematics (200-800, 2004-2016), writing (200-800, 2008-2016), verbal_math (V+M composite, 400-1600, 2004-2010), verbal_math_writing (V+M+W composite, 600-2400, 2008-2010, all-students only), combined (V+M+W composite, 600-2400, 2011-2016). Redesigned SAT (2016 onward): combined_test_score (Math+EBRW, 400-1600), math_section_score (200-800), evidence_based_reading_and_writing (200-800, 2016-2019 only), reading_test_score and writlang_test_score (GOSA-rescaled test scores, observed 180-338), essay_reading_score / essay_analysis_score / essay_writing_score (2-8) and essay_total (6-24, a GOSA-derived sum of the three essay dimensions, not an official College Board score). Old and redesigned components are distinct values because they measure on different scales.
15 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
  • verbal_math_writing
  • writing
  • writlang_test_score
num_testedNumber TestednumbercountyesNumber of students tested. Float64, NOT Int64 — a documented exception to the integer-count convention (data-cleaning-standards section 16): 2016-2024 sources publish 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 where published full-precision, rounded to one decimal from ~2020), and 2023-24 district counts are fractional throughout (e.g. 4159.3). Rounding to an integer would silently lose precision, so values are carried as published. 2004-2010 sources publish one count per (entity, demographic), repeated on each of that demographic's component rows; 2011-2024 publish true per-component counts. Either way, summing num_tested across test_component double-counts students — filter to one component for headcounts. A 0 means the source reported zero test-takers for that demographic (2004-2010 only).
Full description
Number of students tested. Float64, NOT Int64 — a documented exception to the integer-count convention (data-cleaning-standards section 16): 2016-2024 sources publish 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 where published full-precision, rounded to one decimal from ~2020), and 2023-24 district counts are fractional throughout (e.g. 4159.3). Rounding to an integer would silently lose precision, so values are carried as published. 2004-2010 sources publish one count per (entity, demographic), repeated on each of that demographic's component rows; 2011-2024 publish true per-component counts. Either way, summing num_tested across test_component double-counts students — filter to one component for headcounts. A 0 means the source reported zero test-takers for that demographic (2004-2010 only).
avg_scoreAverage ScorenumberscoreyesAverage most-recent-attempt SAT score; on the scale of the section named by test_component.
Full description
Average SAT score. The scale varies by test_component (sections 200-800; verbal_math / combined_test_score 400-1600; combined / verbal_math_writing 600-2400; essay dimensions 2-8; essay_total 6-24), so this column carries no single value_min/value_max — the avg_score_within_component_scale quality check enforces the per-component ranges instead. reading_test_score and writlang_test_score are excluded from that check: GOSA publishes them on a rescaled axis (observed 180-338, consistent with 10x the College Board 10-40 test-score scale) with no clean published ceiling. Known source defects NULLed by the transform per data-cleaning-standards section 4b (rows and num_tested preserved): seven values above their component ceilings — the 2009 Carroll County district verbal_math_writing of 2751 (> 2400), and in 2010 Rockdale County High School (722:3052) verbal_math_writing=3114, verbal_math=2133, reading=1039, mathematics=1094, writing=981 plus Elberta Open Campus (676:3050) reading=819 (> 800) — and nine 2011-2015 writing averages below the 200 section floor (as low as 92, all small schools/districts). This revises the preserve-bronze default for those values; the per-component range check remains enforceable because of it. Extreme-but-conceivable values are preserved: Elberta Open Campus's 2010 verbal_math_writing of 2287 is within the 600-2400 scale and is carried as published (suspect — the same row's reading section is impossible — but not provably wrong itself).

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
15 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
  • verbal_math_writing
  • 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_recent"

schools data for 2024

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

Filtered to test_component = combined_test_score for 2024

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

One district (code 601), 2024

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

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/education/sat_scores_recent?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. Scores are NOT comparable across the 2016 SAT redesign boundary — use the distinct pre-redesign vs redesigned test_component values, never mix them in one time series. Demographic subgroups exist only for 2004-2010. num_tested can be fractional (see column description). reading_test_score / writlang_test_score are on a GOSA-rescaled axis, not the College Board 10-40 scale and not the 200-800 section scale.