Skip to contents

Executive Summary

This report provides cohort survival analysis and enrollment projections for 10 representative Illinois school districts. The analysis uses the Grade Progression Ratio (GPR) method to forecast future enrollment based on historical patterns.

Key Findings:

  • Illinois statewide enrollment declined ~11% from peak (2.08M in 2007 to ~1.85M in 2025)
  • Urban districts show the sharpest declines (Chicago: -13% since 2019)
  • Rural districts show mixed patterns with some stabilization
  • COVID impact visible in 2020-2021 data across all districts

Methodology

Grade Progression Ratio (GPR)

The GPR method calculates the ratio of students moving from grade N to grade N+1:

GPRgg+1=Enrollmentgrade=g+1,year=t+1Enrollmentgrade=g,year=tGPR_{g \to g+1} = \frac{Enrollment_{grade=g+1, year=t+1}}{Enrollment_{grade=g, year=t}}

A GPR of: - 1.00 = No net change (in-migration offsets attrition) - < 1.00 = Net student loss - > 1.00 = Net student gain (in-migration exceeds losses)

Cohort Survival

We track student cohorts from Kindergarten entry through 12th grade to measure:

  1. Overall survival rate: Final enrollment / Entry enrollment
  2. Grade-specific attrition: Where students are lost (or gained)
  3. Trends over time: Are newer cohorts showing different patterns?

District Analysis

Chicago

Insufficient data for analysis

East St Louis

Insufficient data for analysis

Evanston

Insufficient data for analysis

Naperville

Insufficient data for analysis

Springfield

Insufficient data for analysis

Champaign

Insufficient data for analysis

Cairo

Insufficient data for analysis

Galena

Insufficient data for analysis

Payson

Insufficient data for analysis

Rockford

Insufficient data for analysis

Statewide Comparison

Appendix: Data Quality Notes

Available Years

  • Modern format (2019-2025): Complete data with grade-level breakdowns
  • Legacy format (2006-2017): Reconstructed from historical archives
  • Missing years: 2008, 2018 (data files not available from ISBE)

COVID-19 Impact

The 2020-2021 school year shows anomalous patterns in many districts due to: - Remote learning enrollment fluctuations - Delayed kindergarten enrollment - Increased homeschooling and private school transfers

Methodology Notes

  • GPR calculations use year-over-year grade transitions
  • Cohort survival tracks students from Kindergarten entry
  • Projections assume historical patterns continue (no external shocks)

Generated by ilschooldata package - Illinois school data integration

Powered by enrollforecast methodology

Session Info

## R version 4.5.2 (2025-10-31)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8       
##  [4] LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8    LC_MESSAGES=C.UTF-8   
##  [7] LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C          
## [10] LC_TELEPHONE=C         LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C   
## 
## time zone: UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] tidyr_1.3.2        scales_1.4.0       ggplot2_4.0.2      dplyr_1.2.0       
## [5] ilschooldata_0.1.0
## 
## loaded via a namespace (and not attached):
##  [1] rappdirs_0.3.4     sass_0.4.10        generics_0.1.4     hms_1.1.4         
##  [5] digest_0.6.39      magrittr_2.0.4     evaluate_1.0.5     grid_4.5.2        
##  [9] RColorBrewer_1.1-3 fastmap_1.2.0      cellranger_1.1.0   jsonlite_2.0.0    
## [13] purrr_1.2.1        codetools_0.2-20   textshaping_1.0.5  jquerylib_0.1.4   
## [17] cli_3.6.5          rlang_1.1.7        crayon_1.5.3       bit64_4.6.0-1     
## [21] withr_3.0.2        cachem_1.1.0       yaml_2.3.12        tools_4.5.2       
## [25] downloader_0.4.1   parallel_4.5.2     tzdb_0.5.0         vctrs_0.7.1       
## [29] R6_2.6.1           lifecycle_1.0.5    fs_1.6.7           bit_4.6.0         
## [33] vroom_1.7.0        ragg_1.5.1         pkgconfig_2.0.3    desc_1.4.3        
## [37] pkgdown_2.2.0      pillar_1.11.1      bslib_0.10.0       gtable_0.3.6      
## [41] glue_1.8.0         systemfonts_1.3.2  xfun_0.56          tibble_3.3.1      
## [45] tidyselect_1.2.1   knitr_1.51         farver_2.1.2       htmltools_0.5.9   
## [49] rmarkdown_2.30     readr_2.2.0        compiler_4.5.2     S7_0.2.1          
## [53] readxl_1.4.5