Where the data comes from
Every ER in Quebec reports its situation to the health ministry’s provincial emergency console (MSSS). The ministry publishes those numbers as open data once an hour.
Boussole Santé reads that file every 15 minutes. The numbers are shown as-is: functional stretchers, occupied stretchers, people in the ER, people waiting, average stay. We do no estimating.
The occupancy rate is occupied stretchers divided by functional stretchers. A hospital at 140% has 14 stretcher patients for 10 spots.
The time of the ministry’s last publication appears at the top of the home page. A yellow banner shows up if the source has published nothing for more than two hours.
These numbers measure crowding. They do not predict your personal wait, which depends on triage and on how sick the people ahead of you are.
The public file only keeps 7 days of history. We have archived every reading since August 10, 2026. The typical-hours charts for each hospital are built from that history.
The API
The same data is served as JSON. No key, no account, no rate limit. Every response carries Access-Control-Allow-Origin: *, so a browser-side call works. Responses are cached for 120 seconds.
GET /api/now— the current reading for all 120 ERs (stretchers, present, waiting, average stay, occupancy)GET /api/facilities— the ER directory: name, establishment, region, address, coordinatesGET /api/facility/<id>/history— one ER’s hourly historyGET /api/cliniques— walk-in clinicsGET /api/chirurgies— surgery wait times by hospital
Fields come straight out of the MSSS file. id is the facility permit number, which is what the history endpoint takes. History starts 10 August 2026; MSSS itself keeps only 7 days.
MSSS open data, republished under the source dataset’s licence. Cite MSSS as the source.
The CSV extracts
These files come out of our archive, not out of the MSSS file. No account, no key, and each one is dated the day it was computed. Cite MSSS as the source of the readings.
- Patients on a stretcher for more than 48 hours — 108 ERs — For every ER that publishes the column: hours observed from 10 August to 1 September 2026, how many of those hours had at least one patient stranded on a stretcher past 48 hours, the peak count and the hour it happened, next to the number of functional stretchers. Thirteen ERs never had a single hour without a patient stranded past 48 hours. (108 rows, CSV)
- Full hourly archive — 120 ERs — One reading per ER per hour since 2 September 2026: published occupancy rate, people waiting, people present. Blank rows are the ERs that publish nothing. (32,035 rows, CSV)
- Hourly archive — Montreal’s 17 ERs — The same hourly readings, limited to the island of Montreal. (5,607 rows, CSV)
- Stretchers in the denominator — 98 ERs — How many stretchers each ER divides by, derived from the step size of its published percentage. MSSS does not publish that number. (98 rows, CSV)
- Gauge resolution — step size in percentage points — How many distinct values each ER’s occupancy rate can take, and how far it jumps when one stretcher changes hands. (120 rows, CSV)
- The denominator never moves — functional stretchers, 120 ERs — Across 519 consecutive hours, all 120 ERs report a single functional-stretcher count each. An occupancy rate therefore never moves because capacity changed. (120 rows, CSV)
- Average length of stay — stretcher and ambulatory — Both duration columns, per ER: mean, minimum, maximum, and how many hours read zero. (120 rows, CSV)
- The hour the room is least full — 108 ERs — Each ER’s calmest window, how often it held over the days tested, and how many fewer people were in the room on average. (108 rows, CSV)
- Day of week — calmest and busiest — There is no province-wide bad day: the worst day is specific to each hospital, and the gap reaches 157% of the mean. (108 rows, CSV)
- Honoré-Mercier — 163 hours, reading by reading — A single hospital hour by hour, with recomputed occupied stretchers beside the published rate. (163 rows, CSV)
- How long an ER stays above 100% — The hourly readings cut into consecutive runs above 100% stretcher occupancy. Per ER: how many crossings, the median episode length, the longest one. Eight ERs never came back under 100% across the whole observed period, four of them in Montreal. Seventeen never reached the threshold. (107 rows, CSV)
- Waiting a few hours before going: the test — Take 22,547 decision moments and compare two choices: leave now, or aim for the calmest of the next six hours according to history. The history always drops the current day, otherwise it would already know the answer. Result: in 23.8% of hours both choices land in the same place; across the rest, aiming for the calm hour wins 55.0% of the time, for one fewer person in the room at the median. The file names the 23 ERs, out of 108, where the method does worse than a coin flip. (108 rows, CSV)
- Hourly archive — Anna-Laberge Hospital (Châteauguay) — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (832 rows, CSV)
- Hourly archive — Montreal General Hospital — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Haut-Richelieu Hospital (Saint-Jean-sur-Richelieu) — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Hôtel-Dieu de Lévis — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Lachine Hospital — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Lakeshore General Hospital (Pointe-Claire) — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — LaSalle Hospital — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Royal Victoria Hospital — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
- Hourly archive — Suroît Hospital (Salaberry-de-Valleyfield) — One reading per hour from 10 August to 14 September 2026 for this ER alone: functional stretchers, stretchers occupied, published occupancy rate, patients past 24 h and past 48 h, people present, people waiting to see a doctor, average ambulatory wait and average stretcher stay. (834 rows, CSV)
What has been measured in these files
Each page below is a computation redone on the hourly archive, with the method and the data at the bottom of the page.
- 421 ER pairs graded: does the published percentage name the right door? — 92 pairs score under 50 %, i.e. worse than a coin flip. Full CSV on the page. Page in French.
- Mean stretcher stay: all 108 ERs, ranked — The number nobody reprints, computed hour by hour since 10 August. Page in French.
- Patients on a stretcher past 48 hours: all 108 ERs, ranked — Thirteen ERs never had a single hour without one. Page in French.
- What the occupancy rate divides by, confirmed in writing by CISSS des Laurentides — The denominator is licensed stretchers, and it never moves in 97 of 120 ERs. Page in French.
- Register: which Montréal-island ER is least loaded, hour by hour — The kept hourly record, not today’s reading. Page in French.
- Saint-Hyacinthe’s occupancy rate, recomputed by hand — One case, redone from the two published columns. Page in French.
Official sources
The iPhone app
The site already does the real-time numbers, the map and the which-ER-to-drive-to part.
It opens from an icon, no address to type. And whatever you loaded last is still there when the signal drops, which it does in most hospital basements.
The app is free to download and everything inside it is free too: the wait times, the clinics, the surgery lists, one ER's last seven days with the hours it is usually quietest, and your own ERs pinned to the top of the list. No subscription, nothing left to unlock.
On the App Store it is called "Urgences Québec: temps attente".
No Android version yet. In the meantime your browser’s ⋮ menu has “Add to Home screen”: the site comes back from an icon, with no address to type.
On a computer? The button above just loads a web page. Point your iPhone camera at this instead.
This site is free and will stay free
No ads, no account, nothing to install. One person builds it and pays for it. If it got you out of a jam today, a donation covers the hosting.
More about this