British Columbia · summer air quality · 57 communities · 2018–2026
We ranked 57 BC communities on nine summers of real air quality measurements. The gap is enormous: Prince George averages almost 13 smoky days a summer. Prince Rupert has never recorded a single one. Where a town lands comes down to one thing — whether the air reaching it came off the ocean or out of a burning interior.
A “smoky day” means a full-day average of 35.5 µg/m³ or more of fine particulate — the level where health authorities start telling kids, seniors and anyone with asthma or heart trouble to take it easy. A clear summer day in BC runs about 3 to 6.
Ryan Dury · August 7, 2026 · data through August 7, 2026
The ranking
One bar per community: the average number of smoky days it gets each summer. Read top to bottom and the province sorts itself almost perfectly by geography — the coast and the islands fill the clean end, the interior valleys the smoky end. The real surprise is Metro Vancouver. For all its traffic and its two and a half million people, it sits comfortably in the clean half. On smoke, an ocean beats a small population every time.
Hollow bars marked with an asterisk are estimates. Those towns — Nelson, Revelstoke, Fernie, Creston and the rest — have no government monitor, so their figures come from PurpleAir sensors residents put up themselves, over 2023–2025 rather than the full nine summers. Their rough tier is trustworthy; their exact position is not. There's more on why further down.
Pick an air zone below to narrow the ranking, the map and the year-by-year grid to that corner of the province. Press Escape, or choose All of BC, to bring everything back.
Swipe the chart sideways →
The map
The same numbers, placed on the map. BC's smoke is made in the dry interior and then trapped by mountain valleys, while the Pacific keeps pushing clean air onto the coast until the ranges stop it. What you can see below is where those two forces meet.
Swipe the map sideways →
Circle size also scales with the value, so the pattern survives in greyscale and for colour-blind readers. Tap or hover any community for its numbers.
Timing
Every summer on record, averaged day by day. The interior climbs steeply from mid-July and stays high into September. The coast barely has a smoke season at all — its line is nearly flat. At the height of it, in mid-August, the interior averages more than three times the coast. The clean places aren't just better on the bad days; they get far fewer of them.
Swipe the chart sideways →
This chart groups the province into three broad bands of air, so it doesn't respond to the air-zone picker above.
Year by year
Each row is a community, each column a summer, shaded by how many smoky days it got. The darker vertical bands are the province-wide fire years — 2018, 2021 and 2023 — when almost everywhere took a hit at once. If you're weighing up where to live, the rows worth finding are the ones that stay pale even in those columns.
Swipe the chart sideways →
Blank cells are summers with too little data to count.
The gaps
Most BC communities have no air quality station at all — Nelson, Revelstoke, Fernie, Osoyoos and dozens more. The only readings those towns have come from PurpleAir sensors that residents bought and mounted on their own houses. Handled carefully, they still answer the question.
Carefully is doing a lot of work in that sentence. These sensors don't read on the same scale as government instruments. Four towns have both, and in the three where the sensors actually track the monitor, citizen readings run from about the same as the official number to nearly double it (0.95× to 1.86×) — so a town could sit a few places higher or lower than its asterisk suggests. In the fourth, Victoria, the surviving sensor barely correlates with the monitor at all — see the caution further down. Kamloops and Kelowna appear below in grey because we can check them against a real monitor; they show how far the drift goes.
Swipe the chart sideways →
Each town is the median of up to three sensors across the summers of 2023, 2024 and 2025. Using several sensors matters: a single one can fail silently for months, and often does.
Everything here is measured, not modelled. Two sources, kept deliberately separate because they are not on the same scale.
A caution about cheap sensors. Of the 39 PurpleAir units examined for this piece, eight had to be thrown out — they reported 24-hour averages between 3,600 and 7,200 µg/m³, which is not physically possible in outdoor air. For comparison, the worst day the government network has recorded in nine summers is 851 µg/m³. All three sensors in Prince George and two of three in Victoria failed this test, as did the only sensor in Nakusp. Anyone reading a single PurpleAir dot off the map should know how often they simply break.
Coverage is uneven. Prince Rupert's record misses 2018 and 2023, two of the three big fire years, so its perfect score is flattered — neighbouring Kitimat, which covers all nine summers, still manages 0.4 smoky days a summer, so the finding holds. Stations run by industry sit near industrial sources by design and may read higher than the town around them. 2026 is complete only through August 7. Everything covers June 1 to September 30 only, so this says nothing about winter inversions or wood stove season, which reshuffle the interior rankings considerably.
Who made this
I'm Ryan — a software developer in Nelson. I build dashboards, internal tools and automation that take the repetitive work off a team's desk: the same pipeline behind this report, pointed at your numbers. If something in your business still runs on spreadsheets and guesswork, I'd like to hear about it.
hello@ryandury.com