Canadian AQHI air-quality episode intelligence (daily)
Air Quality Health Index (AQHI, 1-10+ scale) episode intelligence for every Canadian monitoring station, as a station x date panel from ECCC's keyless MSC GeoMet OGC API. Observed episodes cover the last two complete UTC days; forecast episodes come from the latest published forecast. Each row is one (station, date): max/mean AQHI, time of the daily max, hours with AQHI >= 4 and >= 7, the official ECCC band of the max and an e0/e1/e2/e3 episode tier, a documented 0-100 episode_score (0.45 peak severity + 0.30 moderate+ persistence + 0.25 high+ persistence) ranked as episode_rank within (kind, date) with a top-10 dirtiest flag. Amendment observations replace originals (never double-counted); station-days below the 18-observation / 12-forecast coverage gates are dropped, never interpolated. Units: AQHI index points; hours; UTC datetimes. Caveats: AQHI is a health-risk communication index, not a raw pollutant concentration; forecasts are model output superseded by the next publication; same-day re-ingests can legitimately differ when the realtime feed drifts. ECCC Data Services End-use Licence v2.1.1 — commercial_use = yes, attribution required. Primary key: (as_of, kind, date, location_id). Cadence: daily.
- Rows
- 276
- Columns
- 24
- Source cadence
- Daily
- Last refreshed
- Sep 26, 2026
- Theme
- environment
| Column | Type | Description |
|---|---|---|
| as_of | string | Reference day: the last complete UTC day (YYYY-MM-DD). Fixed per run so identical input produces an identical content hash. (unit: date) |
| kind | string | Episode source: 'observed' (ECCC AQHI observations) or 'forecast' (latest published AQHI forecast). (unit: category) |
| date | string | The day the episode row covers (UTC; forecast dates run into the forecast window). (unit: date) |
| location_id | string | ECCC AQHI station code (e.g. DAFQX). (unit: id) |
| station_name_en | string | Station name in English. |
| station_name_fr | string | Station name in French. |
| region_en | string | ECCC administrative zone in English (Atlantic, Quebec, Ontario, Prairies, Pacific). |
| lat | float | Station latitude (WGS84). (unit: degrees) |
| lon | float | Station longitude (WGS84). (unit: degrees) |
| country_code | string | ISO alpha-3 country code; constant 'CAN' — every ECCC AQHI station is in Canada. |
| n_records | integer | Raw AQHI records behind the row (>= 18 for observed, >= 12 for forecast station-days). (unit: count) |
| aqhi_max | float | Maximum AQHI value in the station-day (AQHI scale 1-10+; observed values may be fractional). (unit: AQHI index points) |
| aqhi_max_time_utc | string | UTC datetime of the daily AQHI maximum (earliest when tied). (unit: datetime) |
| aqhi_mean | float | Mean AQHI across the station-day's records. (unit: AQHI index points) |
| hours_ge4 | integer | Records with AQHI >= 4 (moderate or worse) — a persistence measure of the episode. (unit: hours) |
| hours_ge7 | integer | Records with AQHI >= 7 (high or worse) — a persistence measure of severe episodes. (unit: hours) |
| max_aqhi_band | string | Official ECCC AQHI band of aqhi_max: low (<4), moderate (4-6), high (7-10), very_high (>10). (unit: category) |
| episode_tier | string | Episode tier from the max band: e0 clean (low), e1 moderate, e2 high, e3 very high. (unit: category) |
| episode_score | float | Documented 0-100 episode score: 100 * (0.45 * clip((aqhi_max - 1) / 9, 0, 1) + 0.30 * clip(hours_ge4 / 12, 0, 1) + 0.25 * clip(hours_ge7 / 6, 0, 1)) — absolute across days and snapshots. (unit: score) |
| episode_rank | integer | Episode rank within (kind, date) (1 = worst; ties broken by hours_ge4 desc, aqhi_max desc, location_id asc). (unit: rank) |
| is_top10 | boolean | True for the 10 worst episodes per (kind, date) — the 'dirtiest leaderboard'. |
| publication_datetime | string | Forecast publication datetime (UTC); the panel keeps only the latest publication. Null for observed rows. (unit: datetime) |
| source_url | string | The exact GeoMet OGC API items URL queried for this run (per kind). (unit: URL) |
| row_hash | string | SHA-256 (16 hex chars) over the row's content fields; identical input yields an identical hash. (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| as_of | kind | date | location_id | station_name_en | station_name_fr | region_en | lat | lon | country_code | n_records | aqhi_max | aqhi_max_time_utc | aqhi_mean | hours_ge4 | hours_ge7 | max_aqhi_band | episode_tier | episode_score | episode_rank | is_top10 | publication_datetime | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-25 | forecast | 2026-09-26 | JCVCC | Eastern Fraser Valley | Bas-Fraser - est | Pacific and Yukon | 49.175 | -121.942 | CAN | 22 | 2 | 2026-09-26T21:00:00Z | 1.273 | 0 | 0 | low | e0 | 5 | 1 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 403f7379bbe1cd1c |
| 2026-09-25 | forecast | 2026-09-26 | KAHFT | Whitehorse | Whitehorse | Pacific and Yukon | 60.696 | -135.081 | CAN | 22 | 2 | 2026-09-26T22:00:00Z | 1.182 | 0 | 0 | low | e0 | 5 | 2 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | d2a63eddbaaff795 |
| 2026-09-25 | forecast | 2026-09-26 | JCVCJ | Squamish | Squamish | Pacific and Yukon | 49.75 | -123.133 | CAN | 22 | 1 | 2026-09-26T13:00:00Z | 1 | 0 | 0 | low | e0 | 0 | 3 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 3efffc69b880d33e |
| 2026-09-25 | forecast | 2026-09-27 | JABNO | Central Fraser Valley | Bas-Fraser - centre | Pacific and Yukon | 49.058 | -122.25 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.25 | 0 | 0 | low | e0 | 5 | 1 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 0a1344550ab10361 |
| 2026-09-25 | forecast | 2026-09-27 | JAFNW | Kamloops | Kamloops | Pacific and Yukon | 50.673 | -120.327 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.333 | 0 | 0 | low | e0 | 5 | 2 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 5ddcf77c9786d436 |
| 2026-09-25 | forecast | 2026-09-27 | JAFUV | Central Okanagan | Okanagan - centre | Pacific and Yukon | 49.883 | -119.483 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.208 | 0 | 0 | low | e0 | 5 | 3 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 99c0492baee89c02 |
| 2026-09-25 | forecast | 2026-09-27 | JAGPB | Fort St. John | Fort St. John | Pacific and Yukon | 56.253 | -120.847 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.833 | 0 | 0 | low | e0 | 5 | 4 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 9ae9776819ad8506 |
| 2026-09-25 | forecast | 2026-09-27 | JAHJY | Comox Valley | Vallée de Comox | Pacific and Yukon | 49.683 | -124.983 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.167 | 0 | 0 | low | e0 | 5 | 5 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 8519a06d4335f384 |
| 2026-09-25 | forecast | 2026-09-27 | JAIQY | Cranbrook | Cranbrook | Pacific and Yukon | 49.5 | -115.767 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.708 | 0 | 0 | low | e0 | 5 | 6 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 5d764979cb5ab258 |
| 2026-09-25 | forecast | 2026-09-27 | JAQAL | Nanaimo / Parksville | Nanaimo / Parksville | Pacific and Yukon | 49.167 | -123.933 | CAN | 24 | 2 | 2026-09-27T00:00:00Z | 1.292 | 0 | 0 | low | e0 | 5 | 7 | true | 2026-09-26T13:00:00Z | https://api.weather.gc.ca/collections/aqhi-forecasts-realtime/items?f=json&limit=10000&datetime=2026-09-24T19%3A01%3A49Z%2F2026-09-26T19%3A01%3A49Z | 48abc9783279ac80 |
- Current
20260926T190205Z-35cb88a3c2be · sha256 35cb88a3c2be…
276 rows · +6 rows vs previous
20260926T190103Z-a13e8c38634b · sha256 a13e8c38634b…
270 rows · -3 rows vs previous
20260926T190027Z-965b4619e0de · sha256 965b4619e0de…
273 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/aqhi_episode_intel/aqhi_episode_forecast_daily" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/aqhi_episode_intel/aqhi_episode_forecast_daily").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/aqhi_episode_intel/aqhi_episode_forecast_daily
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260926T190205Z-35cb88a3c2be and its content hash, so readers get exactly the data you used.
Canadian AQHI Air-Quality Episode Intelligence. (2026). Canadian AQHI air-quality episode intelligence (daily) [Data set, snapshot 20260926T190205Z-35cb88a3c2be, sha256 35cb88a3c2be]. Datazimuts. Retrieved 2026-09-26, from https://datazimuts.com/en/datasets/aqhi_episode_intel/aqhi_episode_forecast_daily?snapshot=20260926T190205Z-35cb88a3c2be
@misc{dz_aqhi_episode_intel_aqhi_episode_forecast_35cb88a3,
title = {{Canadian AQHI air-quality episode intelligence (daily)}},
author = {{Canadian AQHI Air-Quality Episode Intelligence}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/aqhi_episode_intel/aqhi_episode_forecast_daily?snapshot=20260926T190205Z-35cb88a3c2be}},
note = {Snapshot 20260926T190205Z-35cb88a3c2be, sha256 35cb88a3c2befa0e42116d2c91c1ec17fb3d87f78a5cc4ebea5cbb1c5e7ead88; accessed 2026-09-26}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=aqhi_episode_intel%2Faqhi_episode_forecast_daily&lang=en&theme=auto&snapshot=20260926T190205Z-35cb88a3c2be&x=date&y=lat&agg=avg" title="Canadian AQHI air-quality episode intelligence (daily)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.