{"main_topic":"education","sub_topic":"gosa","topic":"k12_expenditures","key":"education/gosa/k12_expenditures","version":"1.0.0","year_min":2011,"year_max":2024,"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-2024.","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 Student Achievement (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 2023-24. This is the full function-level spending ledger: all expenditures, broken out by function. The revenue side of the same GOSA 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.","source":"Governor's Office of Student Achievement (GOSA)","source_url":"https://gosa.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). 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.","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 district and state row set carries all 11 functions in every year (enforced by quality checks; school rows may publish partial function sets), so summing expenditure_amount over the 11 functions gives a district'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; and it frequently equals expenditure_amount on aggregate / non-school rows in other years. Standard-district and state rows in 2023-2024 do carry true per-FTE values (the 16 RESA rollup district rows, codes 850-888, do not). 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 facilities) in every year, and district detail includes the 16 RESA service-agency rollups (district codes 850-888) — exclude both when analyzing traditional schools/districts only. 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, and it frequently equals expenditure_amount on aggregate / non-school rows in other years — for a reliable school-level per-pupil spending series use the per_pupil_expenditure topic (FESR methodology) instead. State rows are published independently of district rows and do not always equal the sum of district values within a function (e.g. the 2014 renovation_and_capital_projects district sum runs about 5x the published state total) — 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],"schema_hash":"f87003f1c86b66a23d9bbff2d9be52e9cc0d51ab3dc8843636c6532f81ebee6c","tags":["education","governor's office of student achievement","k12_expenditures"],"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 (2024), schools detail","query":"SELECT * FROM k12_expenditures WHERE year = 2024 LIMIT 100"},{"description":"District 644 in 2024","query":"SELECT * FROM k12_expenditures WHERE district_code = '644' AND year = 2024 LIMIT 100"},{"description":"Filter by expenditure_function = instruction","query":"SELECT * FROM k12_expenditures WHERE expenditure_function = 'instruction' AND year = 2024 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":[],"values_endpoint":"/api/v1/education/k12_expenditures/values"}