daily_occ = FileAttachment("data/daily_occupancy.json").json()
bt_data = FileAttachment("data/city_bridging_triage.json").json()
shelter_flow = FileAttachment("data/shelter_flow.json").json()
seasonRug = FileAttachment("data/season_rug.csv").csv().then(rows =>
rows.map(d => ({ min_temp: +d.min_temp, winter_season: d.winter_season }))
)
binnedSC = FileAttachment("data/cold_response_binned_by_winter_sc.csv").csv().then(rows =>
rows.map(d => ({
min_temp_bin: +d.min_temp_bin,
winter_season: d.winter_season,
mean_unplaced: +d.mean_unplaced,
n: +d.n
}))
)BonQuery
Toronto Shelter System: An Independent Data Audit.
BonQuery turns humanitarian open data into clear, useful analyses — starting with Toronto’s shelter system capacity, demand, and flow. Built for journalists, researchers, advocates, policymakers, and anyone paying attention.
Winter Accountability Monitor
WINTER ACCOUNTABILITY MONITOR: 2026–2027. The City of Toronto activates its cold-weather response when temperatures reach −5 °C. Its own data shows what follows: across six winters, at least one person or couple was still unplaced at the 4 a.m. closeout on 257 of 268 nights at or below −5 °C (95.9%). A couple counts once in these figures, so the number of people left outside is higher still. Our standard is simple: no one left unplaced. Daily monitoring resumes when the 2026–2027 cold season opens in November.
COLD-WEATHER ACCOUNTABILITY
Singles and couples left unplaced on freezing nights — six winters of evidence
Note
Reading the chart. The chart shows data from up to six cold seasons (November 15 to April 15), colour-coded by winter year. The vertical lines across the background act as a temperature rug — each line marks one night’s recorded overnight minimum temperature, coloured to match its season. Where these lines cluster together, data is plentiful; where they thin out (below about −15 °C), individual nights carry more weight. Use the checkboxes above to show or hide individual seasons.
Figure 1: Observed mean number of singles and couples unplaced at 4 a.m. by overnight minimum temperature and cold season, binned in 2 °C intervals. A couple is counted once in the City’s data, so each unit represents one or two people and the number of people affected is at least this high. Bins are labelled by their midpoint (e.g., the −3 °C dot covers −4 °C up to but not including −2 °C). Dot size scales with the number of nights in that bin.
The data we’re tracking
NoteMonthly Shelter System Flow
The dashboards
Open each dashboard directly in your browser — they’re built for interactive use and work best full-screen on a phone.
The three tabs below show different views of the data, with interactive filters on every chart.
A point-in-time view of the shelter system for any month from January 2018 forward. Use the date filter at the top to change months.
Compares the current year’s cumulative figures against the same period the prior year. Useful for seeing whether the system is on track to exceed, match, or fall below last year.
Multi-year time series for the headline metrics, with filters for population group, year, and month. Useful for spotting long-term patterns or seasonal trends.
NoteDaily Occupancy & Capacity
BonQuery’s version of this table adds two features the City’s page doesn’t have. The date selector below lets you browse any date from January 2021 to the present; the City’s Daily Shelter & Overnight Service Usage page shows only its most recently published date. The Offline column (calculated as funded − actual) flags beds, rooms, or spaces temporarily out of service — see the data validation page for what these are and why they matter.
Daily Occupancy & Capacity for
This table reproduces the City of Toronto’s Daily Shelter & Overnight Service Usage report using the City’s open data. The All Shelter Programs subtotal and all breakdown rows are derived from the CKAN open data export. Bridging & Triage Programs are tracked in the City’s operational system but not published to open data; BonQuery scrapes this figure daily from the City’s shelter census page and displays it where available. The Total People Accommodated figure equals All Shelter Programs + Bridging & Triage when both are available. Some capacity and unoccupied-bed figures may differ slightly from the City’s live dashboard due to offline-bed reporting differences between the CKAN export and the City’s operational system. A full side-by-side comparison is available on the data validation page.
Contains information licensed under the Open Government Licence – Toronto. Source: City of Toronto Open Data — Daily Shelter & Overnight Service Occupancy & Capacity. Aggregated by BonQuery.
BonQuery’s aggregated data is available for download from 2021 to present: JSON · CSV
NoteShelter System Requests for Referrals
Monthly average daily calls to Toronto’s 24/7 shelter referral line — calls referred to a shelter space, unmatched individual callers, and total calls handled — with interactive date controls. Replicates and extends the City’s Shelter System Requests for Referrals page. Data sourced from two separate CKAN resources (call wrap-up codes and service queue); see the page for important caveats on combining the two series.
Contains information licensed under the Open Government Licence – Toronto. Source: City of Toronto Open Data — Central Intake Calls. Analysis and charts by BonQuery.
BonQuery is an independent data audit of Toronto’s shelter system, built on public records and reproducible methods. Data and methodology inquiries: info@BonQuery.ca.