Run Clean beta ← Back to the planner

How it works

Run Clean plans running routes in Copenhagen and Frederiksberg along streets with less traffic pollution. This page explains where the numbers come from, what they mean, and what they can't tell you.

In one sentence: every number here is a modelled estimate built from street measurements made in 2018–20 — not a measurement of your run. It's good at telling a busy boulevard from a quiet side street, much less good at exact percentages.

1. What this is

Road traffic produces pollution that changes sharply from one street to the next — especially ultrafine particles and soot (black carbon), and also nitrogen dioxide (NO₂). Measurements in Copenhagen found roughly 3 times more ultrafine particles and NO₂, and 5 times more soot, on major roads than on quiet residential streets. Runners breathe several times more air than people at rest, so where you run matters.

Run Clean offers three things:

Run anyway — run smarter. For healthy adults, the benefits of exercise far outweigh the harm from air pollution at the levels found in Copenhagen (Tainio et al., Preventive Medicine 2016, which found benefits outweigh risks for all but the most polluted cities in the world). This tool is about choosing cleaner streets, not about running less.

2. How the pollution map is made

The measurements

Between November 2018 and March 2020, Google Street View cars fitted with air-quality instruments drove every street in Copenhagen and Frederiksberg many times, in a project with Utrecht University and the City of Copenhagen (“Air View”). Researchers combined the repeated drives with a statistical model to estimate long-term average levels for about 32,000 street segments of around 40 metres each. Soot and ultrafine particles were measured in the daytime; NO₂ represents all hours.

From streets to running paths

I map those values onto the OpenStreetMap network of footpaths, pavements and shared paths:

Bringing it closer to today

Air has improved since 2018–20. Using the official monitoring stations run by Aarhus University (DCE), I scale soot and NO₂ down to 2024 levels — both the city background and the extra pollution on busy streets. Ultrafine particles are not scaled, because there's no comparable station record to do it with.

One combined number

To compare routes I combine the three pollutants into one index: ultrafine particles 40%, soot 40%, NO₂ 20%, each relative to the city's median street. The weights are my judgement, based on studies linking short-term effects of busy streets mostly to ultrafine particles and soot (e.g. Sinharay et al., The Lancet 2018). That's why I always show the three pollutants separately too.

3. What the numbers mean

You seeIt means
“About 20% cleaner air per km”The route's average modelled pollution is about 20% lower than the reference: the shortest route (A to B), a typical loop from your start that ignores pollution (loops), or your own run (Check my run).
“Modelled total exposure”Pollution × distance over the whole route. At a steady pace this roughly tracks how much polluted air you'd breathe — but I don't model your breathing, so treat it as a rough guide.
“About the same”The difference is under 5%. That's within what the model can't reliably tell apart, so I don't present it as a win.
Rounded percentagesI round to the nearest 5% because more precision would be false precision.
Per-pollutant linesThe three pollutants often change by different amounts; soot changes least. If any pollutant gets worse on a suggested route, I show it.
“modelled estimate ⓘ”A link back to this page.

4. Route grades A–E

A grade compares a route's average with all of Copenhagen's and Frederiksberg's paths, by length:

Grades are a ranking within Copenhagen, not a health rating. An E-graded street in Copenhagen can still have cleaner air than an average street in many other cities.

5. Detours and loops

A to B and swaps: you set the longest detour you'll accept (default +20%). I compute a set of candidate routes — some favouring less distance, some favouring cleaner streets — and, within your limit, pick the one with the cleanest air per km, but never one with higher modelled total exposure than the shortest route. It's the best of the candidates I try, not a guaranteed optimum. Extra distance is only added when it buys cleaner air; most routes use much less than the limit. Beyond about +15–20%, extra detours rarely help much.

Loops keep the distance you chose (within about 5%), so there's no detour limit. All options are compared with the same reference: a typical loop of that length from your start, planned without looking at pollution. Options are listed cleanest first.

Check my run compares the suggested swap with your own run, not with the shortest route.

6. Limitations

7. Roadworks and time of day

I use the City of Copenhagen's list of active excavation permits, updated daily, and steer around heavy works (asphalt, district heating, works in the carriageway) during their permitted working hours. Permits don't say whether machines are actually running, so this is approximate, and it isn't included in the percentages. If the roadworks data hasn't been updated for three days, I switch this off and say so.

I don't adjust for the time of day. Studies of cyclists in Copenhagen found ultrafine particle levels similar in and outside rush hour.

8. Safety

Run Clean is not a safety or navigation guarantee. Routes can pass through quiet, unlit or isolated places, closed paths, or busy crossings. “Prefer lit paths” relies on OpenStreetMap lighting data, which is incomplete. Always use your own judgement, follow traffic rules and signs, and avoid places that feel unsafe — and please tell me about problems using “Report a problem”.

9. Privacy

Data controller and contact: Stefan Voinea, webmaster@stefanvoinea.com.

10. Data sources and credits

DataSource and licence
Street-level air pollution (2018–20)Copenhagen Air View — Utrecht University & Google 2021, via opendata.dk. CC BY 4.0.
Paths, streets, parks, addresses© OpenStreetMap contributors. Open Database License (ODbL).
Roadworks permitsKøbenhavns Kommune (City of Copenhagen), via opendata.dk. CC BY 4.0.
2024 scaling for soot and NO₂Aarhus University (DCE) national air-quality monitoring reports.
Map tilesOpenFreeMap, © OpenMapTiles, data © OpenStreetMap contributors.
Map softwareMapLibre GL JS (BSD-3-Clause).

Licence confirmations for the Air View data and my use of OpenStreetMap data are being completed during the beta.

11. FAQ

Should I stop running on busy roads?

No need to stop running — but if you can choose, a parallel quieter street or a park path usually means noticeably less traffic pollution, often for little extra distance.

Why is my street red?

Red streets had high average pollution in the 2018–20 measurements, usually because of heavy traffic, buses or lorries, or tall buildings that trap exhaust. Things may have changed since — if you think the map is wrong, use “Report a problem”.

Is this live?

No. The pollution map is a long-term average. Only roadworks are updated daily.

Can I trust “20% cleaner”?

Trust the direction more than the number. The 2018–20 measurements show large, consistent differences between busy and quiet streets, and the model is built around them — but the route-level estimates haven't yet been checked with measurements on actual runs. The exact percentage is uncertain, which is why I round it and show the pollutants separately.

Why doesn't my loop go through the park I like?

Loops are planned from geometry around your start and may not reach every park. Try another start point or distance, or use A to B with the park as a destination.

12. Contact

This is a beta. Feedback is very welcome — use “Report a problem” under any route.

Run Clean is made by Stefan Voinea. Email webmaster@stefanvoinea.com or find me on LinkedIn.

← Back to the planner