Daily Occupancy & Capacity Data Validation

A transparency check comparing BonQuery’s Toronto shelter occupancy figures against the City of Toronto’s live dashboard, with a full account of known data differences.

Author

Miriam Marling

This page is a transparency check. It places BonQuery’s open-data figures for daily shelter occupancy directly beside the City of Toronto’s published live-dashboard figures for the same date, and gives a precise account of every difference. BonQuery’s table is built entirely from the City’s own open data (CKAN export); the City’s live dashboard includes some figures that cannot be reproduced from their own CKAN export. Most figures match exactly. Where they don’t, the reason is documented below.

Comparison reference date: May 14, 2026. The City side of this table is a one-time snapshot captured from the live dashboard on May 14, which is no longer visible on the City’s site.


Legend

Mark Meaning
Matches — BonQuery’s open-data figure equals the City’s published figure
* Known difference — figures differ by a documented, explained amount (see notes below)

Rows labelled Not published to open data are absent from the CKAN export entirely and receive no mark.


Side-by-side comparison — May 14, 2026


Why do some numbers differ?

The section immediately under the header Shelter Programs, Bed-Based contains a few flagged values (indicated with an asterisk mark, *). The * mark appears in the Unoccupied Beds, Actual Bed Capacity, and Occupancy Rate columns for emergency bed programs and the Singles Sectors, Total row. These are not errors in BonQuery’s data pipeline or its reconstruction of the City’s tables. The City does not publicly document the exact derivation of its dashboard figures, which is why BonQuery’s aggregation of CKAN cannot reproduce them exactly. BonQuery is contacting the City for clarification and will publish an update once a response is received.

The funded figure in parentheses next to the BQ Actual Bed Capacity is the number of beds the City has contracted a shelter operator to operate; the City does not display this figure in its dashboard. It is shown here to help calculate how many beds are currently offline, defined by funded − actual = offline.

The figures in the BQ column come from the City’s own published CKAN data, aggregated by BonQuery. Where BQ shows a funded figure in grey parentheses, that too comes from the CKAN export. The comparison on this page exists to confirm that BonQuery’s aggregation reproduces the City’s data correctly — and to document where the two City data products (the CKAN export and the live Daily Occupancy & Capacity dashboard) differ from each other.

What are offline beds?

An offline bed is a real, funded shelter bed that has been temporarily taken out of service — the same way a hotel might take a room off the market for repairs. Reasons include maintenance, pest control, staffing shortages, and medical isolation. The shelter operator records the offline status; the City compiles the figures in its open-data export.

The City does not report the offline count as a standalone number in either data product. BonQuery discovered it by placing the two figures side by side: funded − actual = offline. This Offline count takes on particular weight during extreme weather events, when every funded bed matters.

Reconstructing the gap, program by program

The breakdown below isolates the emergency bed programs row by row, showing three capacity figures alongside three computed differences. The Actual Bed Capacity City − BQ Gap column shows how far the City’s dashboard figure sits from BonQuery’s Actual Bed Capacity — the discrepancy this page sets out to explain. The Offline Beds (Actual BQ − Funded) column shows BonQuery’s Actual Bed Capacity minus the funded capacity: a negative number is the count of contracted beds temporarily out of service (for maintenance, repair, isolation, staffing shortages, or pest control). The Offline Beds (Actual City − Funded) column shows the City’s dashboard figure minus the funded capacity; a positive value in the Mixed Adult row signals the anomaly discussed in the note below.

Bridging & Triage programs (not published to open data)

The City’s live dashboard shows 29 people in Bridging & Triage programs on May 14, 2026. This program type does not appear in the CKAN open-data export at all — the programs are tracked in the City’s internal operational system but not published to the open data portal. BonQuery cannot reproduce this figure from open data, and the row is labelled accordingly in the main table. BonQuery will contact the City to see whether it is willing to add this program type to its CKAN dataset, either going forward or retroactively. This is the most significant omission between the City’s table and the CKAN dataset.

Daily audit for retroactive CKAN updates

BonQuery runs a per-program audit on every CKAN pull: a diffing algorithm compares today’s raw rows against the most recent prior raw snapshot on a record-by-record basis, with each record uniquely identified by (PROGRAM_ID, OCCUPANCY_DATE). If any program’s values change for an already-published date, an email notification fires. As of the latest pull, no retroactive revisions have been detected for any historical date in the comparison above — the values for May 14 and every preceding day have remained stable since BonQuery’s earliest archived snapshot (2026-05-17). If CKAN ever does revise a previously-published row, the audit will surface it.

The takeaway

BonQuery’s table is built entirely from the City’s published open data. The CKAN export, BonQuery’s aggregation of the raw data to reproduce the City’s tables, and this comparison page together form a complete audit trail. The City’s daily dashboard draws on internal system state not fully present in the open-data export.


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