K-12 Revenues by Funding Source
K-12 dollars taken in by Georgia public school districts, broken out by funding source (local, federal, state QBE, lottery, other), 2011-2024.
- 2011–2024
- annual
- 1.0.0
- 4907a5512e84
Overview
K-12 revenues for every Georgia public school district and the state as a whole, by funding source, 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 6 revenue sources — local, federal, state QBE (Quality Basic Education formula), state lottery, state other, and other — covering school years 2010-11 through 2023-24. District and state detail only: the source never publishes school-level revenues. The spending side of the same GOSA report lives in the sibling topic `k12_expenditures` (K-12 expenditures by spending function, school detail included); 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.
Row grain: One row per year, district_code, school_code, revenue_source.
revenue_amount — Revenue Amount (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.
| Column | Type | Unit | Range | Null? | Description |
|---|---|---|---|---|---|
year | integer | — | — | no | 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.Full 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. |
district_code | string | — | — | yes | 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.Full 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. |
school_code | string | — | — | yes | Always NULL: the source publishes revenues at district and state detail only — there are no school-level revenue rows in any year (enforced by a quality check and a transform-time assertion). The column exists so every education fact table shares the same key-column shape. For school-level finance, see the sibling topic k12_expenditures (expenditures only).Full description▾Always NULL: the source publishes revenues at district and state detail only — there are no school-level revenue rows in any year (enforced by a quality check and a transform-time assertion). The column exists so every education fact table shares the same key-column shape. For school-level finance, see the sibling topic k12_expenditures (expenditures only). |
revenue_source | string | — | — | no | Funding source of the revenue: local, federal, state_qbe, state_lottery, state_other, or other.Full description▾Funding source of the revenue (6 values): local (local taxes and other local funds), federal, state_qbe (Georgia's Quality Basic Education formula allotment), state_lottery, state_other (state funds outside QBE and lottery), and other. NOTE: state_lottery revenue_amount is published as 0.0 on every row of every year in this source (lottery dollars evidently flow outside this ledger) — the category is kept for grid completeness, faithful to bronze. Every district and state row set carries all 6 sources in every year (enforced by quality checks), so summing revenue_amount over the 6 sources gives the entity's total revenue. 6 allowed values▾
|
revenue_amount | number | — | yes | Total dollars received from this revenue source at the row's level; negatives are real budget adjustments.Full description▾Total dollar amount received from this revenue source 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. | |
revenue_per_pupil | number | — | yes | Per-FTE (full-time-equivalent student) dollar amount received from this revenue source. Can be negative (budget adjustments). NULL only in 2013-2014 where the bronze FTE denominator was missing (192 district rows; enforced by a quality check). Caution — not always a true per-pupil amount: the 16 RESA service-agency district rows (codes 850-888, no FTE denominator) publish revenue_per_pupil equal to revenue_amount verbatim in EVERY year including 2023-2024 (all 438 nonzero verbatim rows across all years are exactly those RESAs). Standard-district and state rows carry true per-FTE values. Verify revenue_per_pupil <> revenue_amount (or sanity-check the magnitude) before treating a value as per-pupil revenue.Full description▾Per-FTE (full-time-equivalent student) dollar amount received from this revenue source. Can be negative (budget adjustments). NULL only in 2013-2014 where the bronze FTE denominator was missing (192 district rows; enforced by a quality check). Caution — not always a true per-pupil amount: the 16 RESA service-agency district rows (codes 850-888, no FTE denominator) publish revenue_per_pupil equal to revenue_amount verbatim in EVERY year including 2023-2024 (all 438 nonzero verbatim rows across all years are exactly those RESAs). Standard-district and state rows carry true per-FTE values. Verify revenue_per_pupil <> revenue_amount (or sanity-check the magnitude) before treating a value as per-pupil revenue. |
Filters
Query parameters the fact endpoint accepts. Comma-separated values are OR within a parameter; multiple parameters AND together.
| Parameter | Kind | Allowed values | Notes |
|---|---|---|---|
year | year_exact | any value | — |
year_min | year_range | any value | — |
year_max | year_range | any value | — |
detail | detail | districtsstates | enum-enforced, default: districts |
district_code | foreign_key | any value | multi-value |
school_code | foreign_key | any value | multi-value |
revenue_source | categorical | federallocalotherstate_lotterystate_otherstate_qbe | multi-value, enum-enforced, pick one |
district_type | dimension_attribute | 7 allowed values▾
| multi-value, enum-enforced |
school_level | dimension_attribute | elementarymiddlehighk12other | multi-value, enum-enforced |
locale | dimension_attribute | citysuburbtownrural | multi-value, enum-enforced |
Example requests
Run these against the base URL — they return live data.
All rows (first page), districts level
curl "https://georgiacivicdata.org/api/v1/education/k12_revenues"districts data for 2024
curl "https://georgiacivicdata.org/api/v1/education/k12_revenues?year=2024"Filtered to revenue_source = federal for 2024
curl "https://georgiacivicdata.org/api/v1/education/k12_revenues?year=2024&revenue_source=federal"One district (code 644), 2024
curl "https://georgiacivicdata.org/api/v1/education/k12_revenues?district_code=644&year=2024&detail=districts"Download 2024 as CSV
curl "https://georgiacivicdata.org/api/v1/education/k12_revenues?year=2024&format=csv"Notes & limitations
NULL handling
- Zero is a real, reported value.
Limitations
District and state detail only — the source never publishes school-level revenues, so school_code is always NULL (school-level finance exists only on the expenditure side; see the sibling topic k12_expenditures). State rows have NULL district_code and school_code. District detail includes the 16 RESA service-agency rollups (district codes 850-888) — exclude them when analyzing traditional districts only. State rows are published independently of district rows and do not always equal the sum of district values within a source — treat each detail level as its own published series. revenue_per_pupil is not a true per-pupil amount everywhere: a few dozen district rows per year publish it equal to revenue_amount verbatim (entities with no FTE denominator, mostly RESA rollups). No suppression exists in this topic — NULL never means suppressed; the only NULL metric values are 192 revenue_per_pupil district rows in 2013-2014 with a missing FTE denominator. Negative dollar values are legitimate budget adjustments and are preserved.