flowchart TD
subgraph sources["Data sources"]
UGRC["UGRC / Open SGID\ncounty, district, school and college boundaries and locations; DOE school counts (BY2023 snapshot, 2024-25)"]
NCES["NCES\nCCD public schools and Private School Universe Survey (2023-24), postsecondary locations"]
IPEDS["IPEDS\nFall 2023 Enrollment and institutional control"]
CENSUS["Census TIGER (via pygris)\ncounties and blocks; blocks are not used in the crosswalks"]
MAZSRC["MAZ microzones\ndraft layer supplied for Utah"]
TAZSRC["WFRC WasatchFrontTAZ\nreference layer only"]
USHE["USHE\nenrollment by institution and site (AY 2025)"]
PSIM["PopulationSim persons\n2023 synthetic population, local only"]
end
UGRC --> GEO
NCES --> GEO
CENSUS --> GEO
MAZSRC --> GEO
TAZSRC -.-> GEO
GEO["1_geography.qmd\nschool and college crosswalks"] --> XWALK[("crosswalk_school.csv\ncrosswalk_college.csv")]
XWALK --> ENR
UGRC --> ENR
NCES --> ENR
IPEDS --> ENR
USHE --> ENR
ENR["2_enrollment.qmd\nreal enrollment by district and county"] --> ENR_OUT[("real_enrollment_by_district.csv\nreal_enrollment_by_county.csv")]
XWALK --> SYN
PSIM --> SYN
SYN["3_synthetic.qmd\nPopulationSim rollups"] --> SYN_OUT[("synthetic_k12_by_district.csv\nsynthetic_college_by_county.csv")]
ENR_OUT --> VAL
SYN_OUT --> VAL
VAL["4_validation.qmd\nreal against synthetic"]
School and College Enrollment Validation
Does PopulationSim’s synthetic population match real K-12 and college enrollment?
Purpose
This site checks the PopulationSim synthetic population behind WFRC’s travel demand model against real school and college enrollment. The study area is Box Elder, Davis, Weber, Salt Lake, and Utah counties. K-12 enrollment is compared by school district. College enrollment is compared by county.
PopulationSim does not control on school enrollment, so each comparison runs two ways:
- Enrollment status (the real test). The synthetic population’s school-grade label (
SCHG) is uncontrolled, so it is compared directly with actual enrollment. - Age population (a sanity bound). Age is controlled in PopulationSim. The population in the school-age band should meet or exceed enrollment. It is not expected to match exactly.
Comparisons at a glance
Synthetic counts are from the 2023 PopulationSim run.
| Level | Real reference | Synthetic: enrolled | Synthetic: age band |
|---|---|---|---|
| K-12, by district | Utah DOE school counts, 2024-25 (K-12 + preschool); NCES CCD public schools, 2023-24 (K-12 + PK) | SCHG 1-14, any age |
Ages 3-18 |
| College, by county | USHE (public institutions, all levels, Academic Year 2025 Term 2); IPEDS campus-based (fall 2023) | SCHG 15 (undergraduate) and 16 (graduate), any age |
Ages 18-24 |
Pages
| Page | What it does | Status |
|---|---|---|
| 1. Geography | Builds the school-to-district and college-to-county crosswalks. MAZ rows in both let PopulationSim output roll up. Checks coverage and maps the study area. | Done |
| 2. Enrollment | Real K-12 enrollment by district (Utah DOE, NCES CCD, NCES private) and college enrollment by county (USHE, IPEDS). Compares the sources. | Done |
| 3. Synthetic population | Rolls PopulationSim persons up to district and county by school grade and by age. | Done, except the Box Elder clip |
| 4. Validation | Real against synthetic, by district and by county: tables, scatter plots, and level charts. | Districts and counties done; Box Elder and the summary are still to do |
How the site is built
The pages run in order. Each one writes CSV and GeoJSON files to _data/intermediate/, and the next page reads them. The charts are built in Observable JavaScript from those files, so they update on every render.
Known limitations
- Box Elder is only partly inside the model region. Synthetic persons exist only inside model MAZs, so Box Elder needs clipping to the model boundary before it can be compared. That clip is still a TODO.
- USHE and IPEDS are not like-for-like. USHE covers public institutions only and is Academic Year
- IPEDS includes private institutions and is fall 2023. The county validation has an option to include private institutions.
- Residence against location. Synthetic college counts are where students live. IPEDS counts by institution location, and USHE counts by site.
- Charter schools are included in the district totals. Whether Utah DOE credits their enrollment to the resident district has not been checked against DOE’s published totals.
- Online-only schools have no geographic catchment, so they are left out of the district totals and reported separately.
- Private schools (NCES Private School Universe Survey) appear on the enrollment page but not in the district validation table.
Code, setup, and how to re-render the site are in the project README.