R packages
Education Finance Data
Education Finance Mapping
EdBuild Data Resources
Master Data
codebook = master_codebook()
Variable.Name | Description | Data.Source |
---|---|---|
State | State Name | F33 |
STATE_FIPS | ANSI/FIPS State Code | F33 |
CONUM | County Code | F33 |
NCESID | Agency ID - NCES Assigned | NCES |
Name | School System Name | F33 |
ENROLL | Fall Membership | F33 |
SLR | Total Revenue from State and Local Sources | F33/EdBuild |
SR | Total Revenue from State Sources | F33/EdBuild |
LR | Total Revenue from Local Sources | F33/EdBuild |
SLRPP | Total Revenue from State and Local Sources Per Pupil | F33/EdBuild |
SRPP | Total Revenue from State Sources Per Pupil | F33/EdBuild |
LRPP | Total Revenue from Local Sources Per Pupil | F33/EdBuild |
SLRPP_cola | Total Revenue from State and Local Sources Per Pupil Cost-adjusted | F33/C2ER/EdBuild |
SRPP_cola | Total Revenue from State Sources Per Pupil Cost-adjusted | F33/C2ER/EdBuild |
LRPP_cola | Total Revenue from Local Sources Per Pupil Cost-adjusted | F33/C2ER/EdBuild |
County | County Name | NCES |
state_id | State Agency ID for District | NCES |
dType | Local Educaion Agency Type | NCES |
dUrbanicity | Locale, Urban-Centric | NCES |
dOperational_schools | Total Number Operational Schools | NCES |
dEnroll_district | Total Students, All Grades (Excludes AE) | NCES |
FRL | Free and Reduced Lunch Students | NCES |
FRL_rate | Percent of Free and Reduced Lunch Students | NCES/EdBuild |
LEP | Limited English Proficient (LEP) / English Language Learners (ELL) | NCES |
IEP | Individualized Education Program Students | NCES |
dWhite | White Students | NCES |
pctNonwhite | Nonwhite Enrollment | NCES |
dBlack | Black Students | NCES |
dHispanic | Hispanic Students | NCES |
dHawaiian_PI | Hawaiian Nat./Pacific Isl. Students | NCES |
dAsian_PI | Asian or Asian/Pacific Islander Students | NCES |
dAmIndian_Aknative | American Indian/Alaska Native Students | NCES |
d2plus_races | Two or More Races Students | NCES |
Tpop | Estimated Total Population | SAIPE |
StPop | Estimated Population age 5-17 | SAIPE |
StPov | Estimated number of relevant children 5 to 17 years old in poverty who are related to the householder | SAIPE |
StPovRate | StPov/StPop | SAIPE |
MHI | Median Household Income | EDGE, ACS 5-year |
MPV | Median Owner-Occupied Property Value | EDGE, ACS 5-year |
sd_area | Area (square miles) | EdBuild |
students_per_sq_mile | Students per square mile | EdBuild/NCES |
Taming the System: Common Data Questions... and Answers!
library(openxlsx)
library(ggplot2)
library(scales)
library(knitr)
master17 <- masterpull(data_year = "2017", data_type = "geo")
### this file was downloaded from https://apps.dese.mo.gov/MCDS/home.aspx
### Current Expenditure Per ADA 2009-10 to 2017-18
mo_ada <- read.xlsx("/MO_ADA.xlsx", sheet = "2016-2017") %>%
select(District.Code, ADA) %>%
mutate(state_id = gsub("-", "", District.Code))
st_louis_county <- master17 %>%
right_join(mo_ada, by = "state_id")%
filter(CONUM == "29189" | CONUM == "29510") %>%
select(NAME, ENROLL, ADA, StPovRate, SR) %>%
mutate(`ADA/Enrollment Ratio` = ADA/ENROLL,
StateRevper_ADA = SR/ADA,
StateRevper_Enroll = SR/ENROLL,
`Miscount Per Student` = StateRevper_ADA - StateRevper_Enroll) %>%
rename(`Student Poverty Rate` = StPovRate)
st_louis_f <- st_louis_county %>%
rename(`School District` = NAME) %>%
arrange(desc(`Student Poverty Rate`)) %>%
mutate(Enrollment = comma(ENROLL, big.mark = ","),
ADA = comma(ADA, big.mark = ","),
`State Revenue Per ADA` = dollar(StateRevper_ADA, accuracy=1, big.mark = ","),
`State Revenue Per Enrollment` = dollar(StateRevper_Enroll, accuracy=1, big.mark = ","),
`Miscount of revenue per student` = dollar(`Miscount Per Student`, accuracy=1, big.mark = ","),
`Student Poverty Rate` = percent(`Student Poverty Rate`, accuracy = 1),
`ADA/Enrollment Ratio` = percent(`ADA/Enrollment Ratio`, accuracy = 1),
`State Revenue` = dollar(SR, accuracy=1, big.mark = ",")) %>%
select(`School District`, `Student Poverty Rate`, Enrollment, ADA, `ADA/Enrollment Ratio`,
`State Revenue`, `State Revenue Per ADA`, `State Revenue Per Enrollment`,
`Miscount of revenue per student`)
kable(st_louis_f)
School District | Student Poverty Rate | Enrollment | ADA | ADA/Enrollment Ratio | State Revenue | State Revenue Per ADA | State Revenue Per Enrollment | Miscount of revenue per student |
---|---|---|---|---|---|---|---|---|
Normandy Schools Collaborative | 31% | 3,770 | 3,390 | 90% | $28,116,000 | $8,295 | $7,458 | $837 |
St. Louis City School District | 31% | 28,270 | 21,422 | 76% | $105,949,000 | $4,946 | $3,748 | $1,198 |
Riverview Gardens School District | 31% | 5,915 | 5,235 | 88% | $38,849,000 | $7,421 | $6,568 | $854 |
Jennings School District | 29% | 2,570 | 2,369 | 92% | $17,127,000 | $7,229 | $6,664 | $565 |
Ferguson-Florissant R-II School District | 22% | 10,748 | 9,027 | 84% | $56,426,000 | $6,251 | $5,250 | $1,001 |
Hancock Place School District | 21% | 1,283 | 1,413 | 110% | $9,514,000 | $6,732 | $7,415 | $-684 |
Ritenour School District | 20% | 6,485 | 5,687 | 88% | $33,276,000 | $5,851 | $5,131 | $720 |
Hazelwood School District | 18% | 17,952 | 16,508 | 92% | $90,920,000 | $5,508 | $5,065 | $443 |
University City School District | 14% | 2,818 | 2,443 | 87% | $14,928,000 | $6,112 | $5,297 | $814 |
Valley Park School District | 13% | 751 | 824 | 110% | $2,999,000 | $3,638 | $3,993 | $-356 |
Pattonville R-III School District | 13% | 5,793 | 5,287 | 91% | $24,106,000 | $4,559 | $4,161 | $398 |
Bayless School District | 13% | 1,571 | 1,640 | 104% | $9,077,000 | $5,535 | $5,778 | $-243 |
Maplewood-Richmond Heights School District | 10% | 1,366 | 1,194 | 87% | $5,526,000 | $4,628 | $4,045 | $582 |
Affton 101 School District | 8% | 2,474 | 2,409 | 97% | $8,760,000 | $3,636 | $3,541 | $95 |
Mehlville R-IX School District | 6% | 10,140 | 9,558 | 94% | $36,377,000 | $3,806 | $3,587 | $219 |
Brentwood School District | 5% | 676 | 728 | 108% | $3,553,000 | $4,877 | $5,256 | $-379 |
Lindbergh School District | 4% | 6,677 | 6,116 | 92% | $18,660,000 | $3,051 | $2,795 | $256 |
Parkway C-2 School District | 4% | 16,603 | 16,752 | 101% | $54,630,000 | $3,261 | $3,290 | $-29 |
Ladue School District | 4% | 4,063 | 3,832 | 94% | $16,757,000 | $4,373 | $4,124 | $248 |
Webster Groves School District | 4% | 4,518 | 4,198 | 93% | $18,701,000 | $4,455 | $4,139 | $316 |
Clayton School District | 3% | 2,254 | 2,455 | 109% | $10,987,000 | $4,475 | $4,874 | $-400 |
Rockwood R-VI School District | 3% | 19,675 | 19,852 | 101% | $76,819,000 | $3,870 | $3,904 | $-35 |
Kirkwood R-VII School District | 3% | 5,780 | 5,263 | 91% | $18,844,000 | $3,580 | $3,260 | $320 |
stlouis <- ggplot(st_louis_county, aes(`Student Poverty Rate`, `Miscount Per Student`, color = `Student Poverty Rate`)) +
geom_point(mapping = aes(size = ENROLL)) +
scale_color_gradient(low="#dff3fe", high="#19596d") +
theme_bw() +
theme(legend.position="none")
Using master data
library(scales)
master_fin = masterpull(data_year = "2017", data_type = "fin")
averages_fin <- master_fin %>%
summarise(Exclusion = "finance",
Districts = comma(n()),
`Average Student Poverty Rate` = percent(mean(StPovRate, na.rm = TRUE), accuracy = 1L),
`Average Local Rev Per Pupil` = dollar(round(mean(LRPP, na.rm = TRUE), 0)),
`Average Total Rev Per Pupil` = dollar(round(mean(SLRPP, na.rm = TRUE), 0)))
Exclusion | Districts | Average Student Poverty Rate | Average Local Rev Per Pupil | Average Total Rev Per Pupil |
---|---|---|---|---|
finance | 13,037 | 17% | $7,308 | $14,413 |
general | 13,184 | 17% | $7,439 | $14,581 |
with geography | 13,287 | 17% | $7,457 | $14,601 |
all districts | 18,381 | 17% | $7,923 | $15,633 |
Education Finance Mapping
Common School District Mapping Questions
What years are school district shapes available?
What's with elementary and secondary districts?
master_shp <- sd_shapepull()
sdType <- as.data.frame(master_shp) %>%
select(-geometry) %>%
group_by(sdType) %>%
summarise(districts = n())
sdType | districts |
---|---|
unified | 10,865 |
elementary | 1,958 |
secondary | 486 |