Skip to content
← All datasets

Financial Efficiency Star Rating (FESR)

Per-pupil spending, CCRPI scores, and 0.5-5 financial efficiency star ratings for Georgia school districts and schools, 2014-2024.

Year coverage
20142024
Updated
annual
Version
1.0.0
Schema hash
96d511f347d1

Detail levels available

DistrictSchool · default

Overview

Georgia Office of Student Achievement (GOSA) Financial Efficiency Star Rating (FESR) dataset at two detail levels in one fact table: district (one row per traditional Georgia school system, FY2014-FY2024) and school (one row per school, FY2017-FY2024). Reports per-pupil expenditure (PPE) inputs — total, federal, and state/local — full-time-equivalent K-12 enrollment, a CCRPI-derived annual Single Score, and the FESR star rating (0.5-5.0 in 0.5 increments). District rows additionally carry the federal vs state/local split of total expenditures, three-year rolling PPE and Single Score averages, and a PPE percentile rank; school rows additionally carry the pre-allocation included/excluded expenditure split and the school's share of district enrollment. Coverage in tidy long form, one row per (district[, school], fiscal year). FESR and the rolling metrics are populated only on the fiscal year each publishing report treats as its newest year (FY2016-FY2019, FY2024 for districts; FY2017-FY2019, FY2024 for schools); GOSA paused the program 2020-2023. Merges the formerly separate financial_efficiency_star_rating_fesr_district and financial_efficiency_star_rating_fesr_school topics.

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

Key metric

per_pupil_expenditurePer-Pupil Expenditure (currency)

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
yearYearintegernoFiscal year the row's PPE inputs refer to (e.g. FY2024 = 2023-24 school year). Differs from the bronze filename year for back-window rows: each rolling report covers up to 3 fiscal years, but gold keys every row by the actual fiscal year.
Full description
Fiscal year the row's PPE inputs refer to (e.g. FY2024 = 2023-24 school year). Differs from the bronze filename year for back-window rows: each rolling report covers up to 3 fiscal years, but gold keys every row by the actual fiscal year.
district_codeDistrict CodestringnoGOSA district/system code (FK to districts dimension), zero-padded to 3 digits (7-digit codes are charter authorizers, school rows only). District-detail rows cover the 180 traditional school systems (codes 601-793); school-detail rows additionally include charter authorizer codes. Populated on every row.
Full description
GOSA district/system code (FK to districts dimension), zero-padded to 3 digits (7-digit codes are charter authorizers, school rows only). District-detail rows cover the 180 traditional school systems (codes 601-793); school-detail rows additionally include charter authorizer codes. Populated on every row.

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). Populated on school rows only — district aggregate rows carry NULL.
Full description
GOSA school code, zero-padded to 4 characters (composite FK to schools dimension with district_code; not globally unique on its own). Populated on school rows only — district aggregate rows carry NULL.

Joins schools; adds its label columns.

total_expendituresTotal ExpendituresnumbercurrencyyesTotal expenditures for the fiscal year (nominal dollars, not inflation-adjusted). For DISTRICT rows this is the district's total included expenditures (= federal_expenditures + state_local_expenditures within $1, enforced by a quality check). For SCHOOL rows this is the per-school total — included expenditures plus the school's allocated share of district central costs (= total_federal_expenditures + total_state_local_expenditures within $10; from FY22 also folds in Allocated CCA and Alternative Program costs, so FY22+ school totals are not strictly comparable to FY17-FY21). per_pupil_expenditure = total_expenditures / fte_enrollment at both levels.
Full description
Total expenditures for the fiscal year (nominal dollars, not inflation-adjusted). For DISTRICT rows this is the district's total included expenditures (= federal_expenditures + state_local_expenditures within $1, enforced by a quality check). For SCHOOL rows this is the per-school total — included expenditures plus the school's allocated share of district central costs (= total_federal_expenditures + total_state_local_expenditures within $10; from FY22 also folds in Allocated CCA and Alternative Program costs, so FY22+ school totals are not strictly comparable to FY17-FY21). per_pupil_expenditure = total_expenditures / fte_enrollment at both levels.
fte_enrollmentFTE EnrollmentintegercountyesFull-time-equivalent K-12 enrollment, the denominator of per_pupil_expenditure (per_pupil_expenditure = total_expenditures / fte_enrollment within rounding at both detail levels, enforced by a quality check).
Full description
Full-time-equivalent K-12 enrollment, the denominator of per_pupil_expenditure (per_pupil_expenditure = total_expenditures / fte_enrollment within rounding at both detail levels, enforced by a quality check).
per_pupil_expenditurePer-Pupil ExpenditurenumbercurrencyyesTotal dollars spent per student for the fiscal year (nominal, not inflation-adjusted).
Full description
Per-pupil expenditure for the fiscal year (nominal dollars) = total_expenditures / fte_enrollment, as published (rounded to cents by the source). A few Atlanta (district 660) school rows in FY21/FY22 are negative — faithful GOSA restatements preserved per §4b, not errors.
federal_per_pupil_expenditureFederal per Pupil ExpenditurenumbercurrencyyesFederal portion of per_pupil_expenditure (nominal dollars). federal_per_pupil_expenditure + state_local_per_pupil_expenditure = per_pupil_expenditure within rounding (enforced by a quality check). NULL for district FY2014.
Full description
Federal portion of per_pupil_expenditure (nominal dollars). federal_per_pupil_expenditure + state_local_per_pupil_expenditure = per_pupil_expenditure within rounding (enforced by a quality check). NULL for district FY2014.
state_local_per_pupil_expenditureState Local per Pupil ExpenditurenumbercurrencyyesState + local portion of per_pupil_expenditure (nominal dollars). NULL for district FY2014.
Full description
State + local portion of per_pupil_expenditure (nominal dollars). NULL for district FY2014.
federal_expendituresFederal ExpendituresnumbercurrencyyesFederal portion of the district's total_expenditures (nominal dollars). District-detail rows only. The school-level analogue of this quantity is total_federal_expenditures (both split the shared total_expenditures column); they are kept as separate columns because the school download names them differently and additionally publishes the pre-allocation included_* split, which districts do not.
Full description
Federal portion of the district's total_expenditures (nominal dollars). District-detail rows only. The school-level analogue of this quantity is total_federal_expenditures (both split the shared total_expenditures column); they are kept as separate columns because the school download names them differently and additionally publishes the pre-allocation included_* split, which districts do not.
state_local_expendituresState Local ExpendituresnumbercurrencyyesState + local portion of the district's total_expenditures (nominal dollars). District-detail rows only; the school-level analogue is total_state_local_expenditures.
Full description
State + local portion of the district's total_expenditures (nominal dollars). District-detail rows only; the school-level analogue is total_state_local_expenditures.
included_expendituresIncluded ExpendituresnumbercurrencyyesTotal included expenditures for the school (nominal dollars), BEFORE allocation of district central costs — the school's total_expenditures equals included_expenditures plus its allocated central-cost share. School-detail rows only. Placeholder $0 values on unreported/non-compliant FY17-FY18 rows are NULLed per §4b (see limitations).
Full description
Total included expenditures for the school (nominal dollars), BEFORE allocation of district central costs — the school's total_expenditures equals included_expenditures plus its allocated central-cost share. School-detail rows only. Placeholder $0 values on unreported/non-compliant FY17-FY18 rows are NULLed per §4b (see limitations).
included_federal_expendituresIncluded Federal ExpendituresnumbercurrencyyesFederal portion of the school's included_expenditures (nominal dollars). included_federal_expenditures + included_state_local_expenditures = included_expenditures (exact in the canonical bronze blocks; enforced by a quality check). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
Full description
Federal portion of the school's included_expenditures (nominal dollars). included_federal_expenditures + included_state_local_expenditures = included_expenditures (exact in the canonical bronze blocks; enforced by a quality check). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
included_state_local_expendituresIncluded State Local ExpendituresnumbercurrencyyesState + local portion of the school's included_expenditures (nominal dollars). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
Full description
State + local portion of the school's included_expenditures (nominal dollars). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
excluded_expendituresExcluded ExpendituresnumbercurrencyyesExpenditures excluded from the PPE computation (nominal dollars) per the FESR methodology. NOT a component of total_expenditures (totals = included + allocated central costs). School-detail rows only. A few rows per year carry negative values — faithful GOSA restatements preserved per §4b. FY17-FY18 placeholder $0 values NULLed per §4b.
Full description
Expenditures excluded from the PPE computation (nominal dollars) per the FESR methodology. NOT a component of total_expenditures (totals = included + allocated central costs). School-detail rows only. A few rows per year carry negative values — faithful GOSA restatements preserved per §4b. FY17-FY18 placeholder $0 values NULLed per §4b.
total_federal_expendituresTotal Federal ExpendituresnumbercurrencyyesFederal portion of the school's total_expenditures (post-allocation; nominal dollars). The school-level analogue of the district's federal_expenditures (both split the shared total_expenditures). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
Full description
Federal portion of the school's total_expenditures (post-allocation; nominal dollars). The school-level analogue of the district's federal_expenditures (both split the shared total_expenditures). School-detail rows only. FY17-FY18 placeholder $0 values NULLed per §4b.
total_state_local_expendituresTotal State Local ExpendituresnumbercurrencyyesState + local portion of the school's total_expenditures (post-allocation; nominal dollars). School-detail rows only; the district analogue is state_local_expenditures. FY17-FY18 placeholder $0 values NULLed per §4b.
Full description
State + local portion of the school's total_expenditures (post-allocation; nominal dollars). School-detail rows only; the district analogue is state_local_expenditures. FY17-FY18 placeholder $0 values NULLed per §4b.
pct_of_district_enrollmentPercent of District EnrollmentnumberproportionyesThe school's share of its district's total enrollment, 0-1 decimal (0.2912 = 29.12%), used by the FESR methodology to allocate district central costs. School-detail rows only. Caveat: within-district sums are not a strict partition — they exceed 1.0 in 55 district-years (up to 1.82), faithful to bronze.
Full description
The school's share of its district's total enrollment, 0-1 decimal (0.2912 = 29.12%), used by the FESR methodology to allocate district central costs. School-detail rows only. Caveat: within-district sums are not a strict partition — they exceed 1.0 in 55 district-years (up to 1.82), faithful to bronze.
ccrpi_single_scoreCCRPI Single ScorenumberscoreyesCCRPI-derived annual Single Score, preserved as published (a GOSA score, not a rate). Typically a 0-100 scale; FY17 school scores may exceed 100 due to early-CCRPI challenge-point scoring (29 rows reach ~108.2), so no upper bound is enforced (a negative score is impossible — enforced). NULL for FY2020-FY2022 (program pause).
Full description
CCRPI-derived annual Single Score, preserved as published (a GOSA score, not a rate). Typically a 0-100 scale; FY17 school scores may exceed 100 due to early-CCRPI challenge-point scoring (29 rows reach ~108.2), so no upper bound is enforced (a negative score is impossible — enforced). NULL for FY2020-FY2022 (program pause).
per_pupil_expenditure_three_year_avgPer Pupil Expenditure Three Year AveragenumbercurrencyyesThree-year rolling average of per_pupil_expenditure (nominal dollars), attributed to the publishing district report's newest fiscal year (FY2016, FY2017, FY2018, FY2019, FY2024) and NULL elsewhere. FY2024's window is non-contiguous (FY19+FY23+FY24). District-detail rows only. C-1 rename of the former ppe_three_year_avg.
Full description
Three-year rolling average of per_pupil_expenditure (nominal dollars), attributed to the publishing district report's newest fiscal year (FY2016, FY2017, FY2018, FY2019, FY2024) and NULL elsewhere. FY2024's window is non-contiguous (FY19+FY23+FY24). District-detail rows only. C-1 rename of the former ppe_three_year_avg.
ccrpi_three_year_avgCCRPI Three Year Averagenumberscore0–100yesThree-year rolling average of ccrpi_single_score (0-100 scale), attributed to district report-year rows only (see per_pupil_expenditure_three_year_avg). District-detail rows only.
Full description
Three-year rolling average of ccrpi_single_score (0-100 scale), attributed to district report-year rows only (see per_pupil_expenditure_three_year_avg). District-detail rows only.
per_pupil_expenditure_percentilePer Pupil Expenditure PercentileintegerpercentileyesPercentile rank (1-100 integer) of the district's per_pupil_expenditure_three_year_avg among all 180 Georgia districts in the same report — population-based, not a national percentile. Higher = more spending per pupil. District report-year rows only. C-1 rename of the former ppe_percentile.
Full description
Percentile rank (1-100 integer) of the district's per_pupil_expenditure_three_year_avg among all 180 Georgia districts in the same report — population-based, not a national percentile. Higher = more spending per pupil. District report-year rows only. C-1 rename of the former ppe_percentile.
fesr_star_ratingFESR Star Ratingnumberrating0.5–5yesFinancial Efficiency Star Rating in 0.5 increments. Districts: observed 1.0-5.0; schools: 0.5-5.0 (the value range spans both levels). Populated only on report-year rows; half-steps enforced by a quality check. Bronze stores it as Float64 in early files and as strings in later files; non-numeric publisher statuses (district 'Non-Compliant'; school '.', 'Non-Compliant[ in 20YY]') are NULLed here, with non-compliance preserved via is_non_compliant.
Full description
Financial Efficiency Star Rating in 0.5 increments. Districts: observed 1.0-5.0; schools: 0.5-5.0 (the value range spans both levels). Populated only on report-year rows; half-steps enforced by a quality check. Bronze stores it as Float64 in early files and as strings in later files; non-numeric publisher statuses (district 'Non-Compliant'; school '.', 'Non-Compliant[ in 20YY]') are NULLed here, with non-compliance preserved via is_non_compliant.
is_non_compliantIs Non CompliantbooleanyesTrue when the district or school was flagged non-compliant with financial reporting (no star rating issued); false when a rating was published.
Full description
FESR publication outcome: true when the source flags the entity non-compliant (no star rating exists, so fesr_star_rating is NULL — enforced by a quality check); false when a numeric rating was published; NULL when no FESR outcome was published. Districts: the 2018 report's 'Non-Compliant' status (Talbot County 730). Schools: FY17/FY18 string sentinels, the FY19 note (Cirrus Charter, 7830611/0611), and the FY21 PPE sentinel (7830629/0629).

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
detaildetaildistrictsschoolsenum-enforced, default: schools
district_codeforeign_keyany valuemulti-value
school_codeforeign_keyany valuemulti-value
is_non_compliantcategoricalany valuemulti-value
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/financial_efficiency_star_rating"

schools data for 2024

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

One district (code 657), 2024

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

Download 2024 as CSV

curl "https://georgiacivicdata.org/api/v1/education/financial_efficiency_star_rating?year=2024&format=csv"

Notes & limitations

NULL handling

  • Zero is a real, reported value.

Limitations

Two detail levels (district, school) in one fact table, split by parquet filename; school_code is NULL on district rows. Detail level is read from the geography-key NULL pattern. The district level covers FY2014-FY2024 (180 traditional systems, codes 601-793, no charters/RESAs/state agencies); the school level covers FY2017-FY2024 (all schools, including charter authorizers). School-level and district-level rows come from two independent GOSA downloads whose K-12 bases need not reconcile, so school rows are NOT guaranteed to sum to their district row. Level-specific columns are NULL on the other level: federal_expenditures / state_local_expenditures and the three rolling/percentile metrics are district-only; included_* / excluded_expenditures / total_federal_expenditures / total_state_local_expenditures / pct_of_district_enrollment are school-only. The district federal_expenditures and the school total_federal_expenditures are the same federal share of total_expenditures but are kept as separate columns (different source naming; schools also publish the distinct pre-allocation included_* split). fesr_star_rating and the rolling/percentile metrics are populated only on the report-year row of each rolling-window publication; GOSA paused the program FY2020-FY2023 (those years carry only PPE inputs), and ccrpi_single_score is additionally NULL for FY2020-FY2022 (CCRPI paused). District federal/state-local breakdowns are NULL for FY2014 (the only source covering FY14 published totals only). FY2022 methodology change: from FY22 school total_expenditures (and per_pupil_expenditure) additionally include Allocated CCA and Alternative Program costs, so FY22+ school totals are not strictly comparable to FY17-FY21. Placeholder $0 school expenditure amounts on unreported/non-compliant FY17-FY18 rows are NULLed per §4b (see _transform_manifest.json masked_values). A small number of district 660 (Atlanta) school rows carry negative expenditure / per-pupil values — faithful GOSA restatements preserved as-is. Currency is nominal dollars (not inflation-adjusted). No cell-level small-cell suppression exists in this source; NULLs are structural or §4b masks, never suppression.