This interactive visualization was developed with assistance from GitHub Copilot (Claude Sonnet 4.5) through an iterative prompt-driven workflow. The AI assisted with technical implementation while all analytical decisions, data interpretation, and narrative framing were directed by the research team.
- Integrated multiple data sources (NCES school locations, demographics, EPA sites, enrollment time series)
- Created data loader scripts to compile data into CSVs (see data/scripts_backup folder)
- Developed helper functions for distance calculations and data formatting
- Designed weighted risk scoring algorithm combining:
- Enrollment decline trends (greater than 10% decline threshold)
- Child population decline in census tracts (greater than 5% decline threshold)
- Poverty rate (normalized 15 to 35% range)
- Education attainment (bachelor's degree rates)
- Unemployment rates
- Implemented configurable weight controls for each risk factor
- Implemented color-coded school markers by risk score (green to yellow to red gradient)
- Added zoom functionality with scale-invariant dot sizing using D3 customization
- Created county labels at geographic centroids with zoom-responsive text sizing
- Built compact summary panel showing filtered school counts
- Displayed risk distribution (low/medium/high categories)
- Calculated enrollment statistics (total students, averages)
- Integrated environment and demographics metrics (EPA proximity, public/private counts)
- Designed slide-out detail panel triggered by school marker clicks
- Displayed comprehensive school information including:
- Risk score with color-coded background and contributing factors
- School profile (type, status, enrollment, grades, locale)
- Nearby EPA brownfield sites (within 2-mile radius)
- Census tract demographics (income, poverty, unemployment, education)
- Time series charts comparing enrollment vs. child population trends
- Implemented enrollment/population trend convergence/divergence analysis
- Added close button and off-screen hiding behavior
- School level filter (Elementary, Middle, High, Multi-Level, Other)
- School type filter (Public, Private)
- EPA proximity filter (Near sites, Not near sites)
- Locale filter (12 categories: City/Suburb/Town/Rural x Large/Midsize/Small/Fringe/Distant/Remote)
- Minimum risk score slider (0 to 10 range)
- Added page margins for better layout
- Created map header with instructional text
- Implemented algorithm tooltip button showing risk calculation formula
- Styled Observable Inputs with compact, cohesive design
- Implemented hover tooltips on school markers showing name and risk score
- Added click event handlers for detail panel population
- Created smooth panel slide-in/slide-out animations
- Added county boundary visualization with labels
- Implemented responsive scaling for markers and labels during zoom
- Styled range sliders with custom thumbs and gradients
- Styled checkboxes with blue accent colors
- Added hover effects on interactive elements
- Implemented form container styling with borders and backgrounds
- Created detail panel CSS for tables and sections
This iterative development approach allowed for rapid prototyping and incremental refinement of both functionality and design. All analytical judgments, methodological decisions, and interpretations remain the responsibility of the research team.