Inspiration

Toronto’s shelter system often operates under intense pressure, especially during extreme weather events, economic downturns, or sudden migration inflows. We were inspired to build a tool that could quantify how resilient the system truly is—and what it would take to make it more stable. With thousands relying on shelters daily, we wanted to combine data science and public policy to inform real-world decisions. By simulating stress scenarios and identifying vulnerable shelter programs, we aimed to provide insights that are both technically robust and socially impactful.

What it does

Our project analyzes daily occupancy data from Toronto shelters and answers the following questions: How close does the system operate to full capacity under normal conditions? Which shelter programs are most vulnerable to demand shocks? How does the system respond to sudden increases in demand? What level of capacity buffer is needed to stabilize the system? We built a Fragility Index to rank shelters by vulnerability and simulated multiple demand shock and capacity expansion scenarios. The result is a stress-testing framework for Toronto’s shelter system that is actionable and evidence-based.

How we built it

Cleaned and standardized ~100,000 records from the City of Toronto Open Data portal Created new variables (e.g., capacity loss ratio, available capacity, unique shelter ID) Developed a Fragility Index combining: Mean occupancy Peak stress (95th percentile) Occupancy volatility Operational capacity loss Simulated demand shocks (+5%, +10%) and capacity increases (0–25%) to assess system resilience Generated summary tables and visualizations across sectors and program models All work was completed in Python using pandas, NumPy, and Matplotlib, and documented in a reproducible Jupyter Notebook.

Challenges we ran into

Normalizing messy categorical and capacity data across thousands of program-day combinations Designing a fragility metric that fairly balances multiple indicators of stress Creating simulations that are both simple enough to interpret and realistic enough to be useful Managing large datasets and ensuring efficient processing in notebooks

Accomplishments that we're proud of

Successfully built a reproducible analysis pipeline from raw data to simulation results Developed a Fragility Index that can help policymakers target vulnerable shelters Generated clear visualizations that illustrate system-wide and sector-specific vulnerabilities Identified the minimum capacity buffer needed to reduce stress across the system Translated raw occupancy data into insightful policy recommendations

What we learned

The Toronto shelter system frequently operates near or above critical occupancy (95%) Vulnerability is not evenly distributed—some shelter types and sectors are consistently more fragile Even modest increases in capacity (5–10%) can significantly reduce system-wide stress Clean, well-structured data makes advanced modeling and simulation possible—and powerful

What's next for Stress Testing Toronto’s Shelter Capacity

Deploy the model for real-time monitoring and weekly fragility updates Integrate weather, emergency events, or migration data for predictive modeling Expand the framework to other cities and regions with similar shelter systems Build an interactive dashboard to allow policymakers to explore scenarios dynamically Publish insights in collaboration with public service agencies or advocacy groups

Built With

Share this project:

Updates