{"main_topic":"education","sub_topic":"gosa","topic":"k12_expenditures","key":"education/gosa/k12_expenditures","version":"1.0.0","year_min":2011,"year_max":2025,"year_gaps":[],"update_frequency":"annual","detail_levels":["districts","schools","states"],"default_detail":"schools","path_template":"education/k12_expenditures/year={year}/{detail}.parquet","grain":["year","district_code","school_code","expenditure_function"],"title":"K-12 Expenditures by Spending Function","summary":"K-12 dollars spent by Georgia public schools and districts, broken out by spending function (instruction, transportation, administration, ...), 2011-2025.","description":"K-12 expenditures for every Georgia public school, school district, and the state as a whole, by spending function, published by the Governor's Office of Education and Workforce Strategy (GOEWS, formerly GOSA). Each row reports the total dollar amount and the per-FTE (full-time-equivalent student) dollar amount for one of 11 expenditure functions — instruction, pupil services, instructional support, school administration, general administration, maintenance and operations, transportation, media, school food services, debt services, and renovation and capital projects — covering school years 2010-11 through 2024-25. This is the full function-level spending ledger: all expenditures, broken out by function. The revenue side of the same report lives in the sibling topic `k12_revenues` (K-12 revenues by funding source, district/state detail); the two topics split the retired combined `revenues_and_expenditures` topic (one measure family per fact table) and share one bronze source, so they join cleanly on year and district_code. Distinct from the `per_pupil_expenditure` topic (FESR methodology), which is an included-cost per-pupil spending series whose totals intentionally differ from this full ledger.","explorer":true,"source":"Governor's Office of Education and Workforce Strategy (GOEWS, formerly GOSA)","source_url":"https://goews.georgia.gov/dashboards-data-report-card/downloadable-data","endpoint":"/api/v1/education/k12_expenditures","columns":[{"name":"year","type":"integer","role":"year","nullable":false,"label":"Year","short_description":"","description":"Ending (spring) calendar year of the school year (e.g. 2024 for 2023-24), parsed from the source's SCHOOL_YEAR / LONG_SCHOOL_YEAR column and cross-checked against the filename year.","valid_values":null,"example":2024,"unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"district_code","type":"string","role":"fk_district","nullable":true,"label":"District Code","short_description":"","description":"GOSA district code (FK to districts dimension): 3-digit zero-padded county/city codes or 7-digit compound codes for commission / state charter schools. Codes 850-888 are RESA service agencies (typed 'resa' in the dimension): their district-level rollup rows are published 2011-2024 only (none in 2025); RESA codes also appear on school-detail rows for GNETS and other programs (2012, 2017, 2019-2025; in 2025 only there). NULL on state-level rows — the bronze sentinel 'ALL' is mapped to NULL.","valid_values":null,"example":"644","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"school_code","type":"string","role":"fk_school","nullable":true,"label":"School Code","short_description":"","description":"4-digit zero-padded GOSA school code (composite FK to schools dimension with district_code). NULL on district- and state-level rows (bronze sentinel 'ALL' mapped to NULL). The 2012 file publishes a minority of codes as 3-digit; they are zero-padded to match the other years. 2023-2024 'DOE OTHER' rows (GNETS programs, alternative schools, Pre-K centers, central offices) carry real institution numbers and appear under the school detail level, matching where the pre-2023 files placed the same entities in the years that publish them (2011-2012, 2017, 2019-2022; the 2013-2016 and 2018 files publish traditional schools only). The 2025 file has no DOE OTHER level and labels the same entities School directly.","valid_values":null,"example":"0189","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"expenditure_function","type":"string","role":"categorical","nullable":false,"label":"Expenditure Function","short_description":"Spending function of the expenditure: instruction, pupil_services, transportation, school_administration, and 7 more.","description":"Spending function of the expenditure (11 values): instruction, pupil_services, instructional_support, school_administration, general_administration, maintenance_and_operations, transportation, media, school_food_services, debt_services, and renovation_and_capital_projects. Every school, district and state row set carries all 11 functions in every year it appears (enforced by quality checks), so summing expenditure_amount over the 11 functions gives the entity's total expenditure. The bronze spelling 'School food Services' (lowercase food) is an upstream-report typo normalized to school_food_services.","valid_values":["debt_services","general_administration","instruction","instructional_support","maintenance_and_operations","media","pupil_services","renovation_and_capital_projects","school_administration","school_food_services","transportation"],"example":"instruction","unit":null,"value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":true,"metric_component":null},{"name":"expenditure_amount","type":"number","role":"metric","nullable":true,"label":"Expenditure Amount","short_description":"Total dollars spent on this function at the row's level; negatives are real budget adjustments.","description":"Total dollar amount spent on this expenditure function at the row's detail level. Never NULL (enforced by a quality check — the source publishes no suppression). Negative values are legitimate budget adjustments / corrections and are preserved; no range check applies. This is the full-ledger figure; it is NOT comparable to the FESR-methodology totals in the per_pupil_expenditure topic, which count only included costs.","valid_values":null,"example":3960000.0,"unit":"currency","value_min":null,"value_max":null,"null_meaning":null,"key_metric_grain_contributor":false,"metric_component":null},{"name":"expenditure_per_pupil","type":"number","role":"metric","nullable":true,"label":"Expenditure per Pupil","short_description":"","description":"Per-FTE (full-time-equivalent student) dollar amount spent on this function. Can be negative (budget adjustments). NULL only in 2012-2014 where the bronze FTE denominator was missing or zero (475 rows; enforced by a quality check). Caution — not always a true per-pupil amount: in the 2024 file the source publishes expenditure_per_pupil equal to expenditure_amount verbatim on EVERY school-detail row (all 35,398 rows, traditional schools included), so 2024 school-level values carry no per-pupil information at all; in 2023 the same artifact covers all 9,526 DOE OTHER school rows plus 151 other nonzero school rows; in 2012 it covers the rows with a missing FTE_COUNT; in 2025 it covers 3,375 of the 18,228 nonzero school rows (890 entities: 825 non-traditional entities such as the former DOE OTHER programs, central offices and facilities, plus 65 schools with a grade span, e.g. Cass High School), while the other 14,853 nonzero 2025 school rows carry true per-FTE values; and in the other years that publish non-traditional entities it covers about 3,000 school rows a year, 90-95% of them on the non-traditional entities (school codes 6xxx-8xxx: central offices, facilities, programs), which carry it on nearly every nonzero row. On district and state rows the artifact is confined to the 16 RESA rollup district rows (codes 850-888; every nonzero RESA row in 2011-2012 and 2015-2024, NULL in 2013-2014, no RESA rows in 2025): standard-district, charter and state rows carry true per-FTE values in every year (enforced by a quality check). For a reliable school-level per-pupil spending series, use the per_pupil_expenditure topic (FESR methodology) instead; here, verify expenditure_per_pupil <> expenditure_amount (or sanity-check the magnitude) before treating a school-level value as per-pupil spending.","valid_values":null,"example":6696.37,"unit":"currency","value_min":null,"value_max":null,"null_meaning":"NULL = the entity has no FTE denominator (district central offices, zero-FTE programs) in the 2012-2014 source files — the only years whose bronze carried an FTE_COUNT column (475 rows), NOT suppression.","key_metric_grain_contributor":false,"metric_component":null}],"key_metric":"expenditure_amount","usage":"Star-schema fact table. Join the districts dimension on district_code; the schools dimension on district_code + school_code. Read directly with DuckDB over Parquet.","limitations":"State rows have NULL district_code and school_code; district rows have NULL school_code. The school detail level includes non-traditional entities (central offices, GNETS programs, Pre-K centers, maintenance/transportation facilities — school codes 6xxx-8xxx) only in 2011-2012, 2017 and 2019-2025 (~650 central-office/facility and ~200 program entities per year); the 2013-2016 and 2018 files publish traditional schools only (~2,260 entities), so school-level totals in those five years cover roughly 74-80% of the state total, do not sum to district totals, and are not comparable with the other years (state rows are complete in every year; district rows cover every entity with school rows except Talbot County (730), which is absent from the 2018 file entirely, so the 2018 state row excludes it too, three charters with school rows but no district row in 2018-2019 (7820618 in 2018; 7830620 and 7830621 in 2019), and the 2025 coverage change below). District detail includes the 16 RESA service-agency rollups (district codes 850-888) in 2011-2024 only (the 2025 file has none) — exclude the non-traditional school entities and the RESA rows when analyzing traditional schools/districts only. The 2025 file (2024-25) publishes fewer district rows: 203 district entities (180 standard districts + 23 single-school charters; 2024: 180 + 52 charters + 16 RESAs). 29 charters in the 2025 file (26 carried over from 2024, 3 new) and 34 RESA-coded entities (16 RESA central offices, 6 auxiliary facilities, 12 GNETS or academy programs) have school rows but no district row, and 3 of 2024's charters are absent from the file, so a charter's district-level series may end in 2024 and 2025 school-level sums exceed district sums (by 0.1-52% per function, 1.7% overall); no district rows are synthesized. expenditure_per_pupil is not a true per-pupil amount everywhere: the 2024 file publishes it equal to expenditure_amount on every school-detail row (traditional schools included — 2024 school-level per-FTE values are totals, not per-pupil amounts), the 2023 file does so on all DOE OTHER school rows plus 151 other nonzero school rows, the 2012 file on its missing-FTE rows, the 2025 file on 3,375 of its 18,228 nonzero school rows (890 entities, mostly non-traditional), the other years on most non-traditional school rows (school codes 6xxx-8xxx), and every year on the RESA district rows that carry a value (2011-2012, 2015-2024) — for a reliable school-level per-pupil spending series use the per_pupil_expenditure topic (FESR methodology) instead. State rows do not always equal the sum of all district rows within a function: in 2011-2013 the state row equals the sum of all district rows (within $0.47), but from 2014 on it equals the sum of the standard districts only, excluding the charter and RESA district rows, so a sum over all district rows overstates the state total (e.g. the 2014 renovation_and_capital_projects district sum runs about 5x the published state total, all of the excess charter spending; 2025 debt_services 1.34x) — exclude charters and RESAs to reconcile to the state row from 2014 on, and otherwise treat each detail level as its own published series. This topic is the full function-level ledger; its totals intentionally differ from the FESR included-cost figures in per_pupil_expenditure. No suppression exists in this topic — NULL never means suppressed; the only NULL metric values are 475 expenditure_per_pupil rows in 2012-2014 with a missing/zero FTE denominator. Negative dollar values are legitimate budget adjustments and are preserved.","null_semantics":{"suppressed_to_null":false,"zero_is_real":true},"available_years":[2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025],"schema_hash":"f87003f1c86b66a23d9bbff2d9be52e9cc0d51ab3dc8843636c6532f81ebee6c","tags":["education","governor's office of education and workforce strategy","k12_expenditures","goews","gosa"],"granularity_description":"One row per year, district_code, school_code, expenditure_function (geography columns are NULL at higher aggregation levels).","example_queries":[{"description":"Latest year (2025), schools detail","query":"SELECT * FROM k12_expenditures WHERE year = 2025 LIMIT 100"},{"description":"District 644 in 2025","query":"SELECT * FROM k12_expenditures WHERE district_code = '644' AND year = 2025 LIMIT 100"},{"description":"Filter by expenditure_function = instruction","query":"SELECT * FROM k12_expenditures WHERE expenditure_function = 'instruction' AND year = 2025 LIMIT 100"}],"foreign_keys":[{"column":"district_code","target_object":"districts","target_columns":["district_code"],"attribute_columns_added":["district_name","district_census_id","district_type"],"scope":"domain"},{"column":"school_code","target_object":"schools","target_columns":["district_code","school_code"],"attribute_columns_added":["school_name"],"scope":"domain"}],"filters":[{"param":"year","kind":"year_exact","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_min","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"year_max","kind":"year_range","type":"integer","multi_value":false,"enum_enforced":false,"values":null},{"param":"detail","kind":"detail","type":"string","multi_value":false,"enum_enforced":true,"values":["districts","schools","states"],"default":"schools"},{"param":"district_code","kind":"foreign_key","column":"district_code","type":"string","multi_value":true,"enum_enforced":false,"values":null},{"param":"school_code","kind":"foreign_key","column":"school_code","type":"string","multi_value":true,"enum_enforced":false,"values":null},{"param":"expenditure_function","kind":"categorical","column":"expenditure_function","type":"string","multi_value":true,"enum_enforced":true,"values":["debt_services","general_administration","instruction","instructional_support","maintenance_and_operations","media","pupil_services","renovation_and_capital_projects","school_administration","school_food_services","transportation"],"has_total":false,"total_value":null,"requires_single_value":true,"nullable":false,"null_filter_token":null},{"param":"district_type","kind":"dimension_attribute","dimension":"districts","column":"district_type","type":"string","multi_value":true,"enum_enforced":true,"values":["commission_charter","resa","standard","state_agency","state_charter","state_school","state_special"]},{"param":"school_level","kind":"dimension_attribute","dimension":"schools","column":"school_level","type":"string","multi_value":true,"enum_enforced":true,"values":["elementary","middle","high","k12","other"]},{"param":"locale","kind":"dimension_attribute","dimension":"schools","column":"locale","type":"string","multi_value":true,"enum_enforced":true,"values":["city","suburb","town","rural"]}],"filter_hints":[],"non_additive":[],"value_implications":[],"year_meaning":null,"pooled_rates":[],"series_breaks":[],"values_endpoint":"/api/v1/education/k12_expenditures/values"}