Data, not Reputation
We scored 74 million road segments across 300 European cities with a risk model validated against 1,169 serious cycling injuries — then ranked every city, 1st to last. No votes. No policy points. Just the streets as they are built.
All 300 cities in rank order. Bar height is the index (0–100, higher = lower assessed risk); colour is the tier, and the shade deepens as assessed risk rises within it. Hover any bar.
Every dot is a ranked city, coloured by tier. Click a dot — or search — for its rank, score and what drives it. Ctrl/⌘-scroll to zoom.
The number beside each city is its index; the interval is where it lands in 90% of 2,000 re-runs of the method with perturbed assumptions.
Underneath the city ranking is a score for every public road in 32 countries — 74 million of them. A street is scored on how it is actually built and used: its speed limit (including the legal default where none is signed), how much car traffic it carries (measured where counts exist, modelled elsewhere), how many lanes it has, whether heavy trucks are allowed, whether there is a protected bike track or just paint, how it is lit and surfaced, and what it forces a rider to do at junctions and crossings. All of it is read from open map data and our own data layers — no surveys, no opinions.
Scores at the safe end — the kind of street a network should be made of.
The middle of the scale — rideable, but it depends on the rider being careful.
The risky end — where the serious injuries concentrate.
Does the score mean anything? We checked it against reality: 4 billion measured bicycle passages and 1,169 serious injuries across 13 European regions. On streets our model puts at the risky extreme, riders are seriously hurt roughly twice as often per ride as on the streets it calls safe. It is also not an academic exercise — the same score plans safer routes in the Defensive Pedal app every day.
The exact weights are proprietary — they are the product. The ingredients and their directions are not: slower is safer, separation is safer, traffic and trucks are not. And a city cannot lobby its way up the table — the score only moves when the street does.
A city's rank comes from asking the same three questions of all 300 cities — weighted 40/30/30 — of the streets themselves.
Every kilometre of street, averaged — plus a separate check on how much of the network sits in the highest-risk band, so a city cannot bury a few terrible arterials inside a pleasant average.
We simulate 210 everyday trips per city — from where people actually live to shops, schools and work — planned by the same router that guides real riders, then score the streets those routes touch. Only what the router can find counts; reputation cannot help a city here.
For every populated square kilometre: what share of residents can reach daily destinations on a connected low-stress network? Calm islands that connect to nothing count for little — a network counts when it joins up. Streets just past the city limit count as links, so a harbour bridge or a neighbouring district does not cut a city in two.
Each question is answered identically in every city, from one snapshot of the model. The three answers are then combined, the scale is set by the 300 themselves, and the whole method is re-run 2,000 times with perturbed assumptions — the wobble from those re-runs is the interval printed beside every rank.
That scale is now fixed. A city scored later, with the same method, gets a number that means exactly what the numbers here mean — and no city on this page moves to make room for it. The index is an absolute score; the rank is only where it falls among these 300.
The Copenhagenize Index 2025 scores infrastructure plus usage plus policy. We score risk only. The two agree far more than they disagree (rank correlation 0.49 across their European top 30; 17 of their 27 European cities are in our top 50) — and where they don't, see argument #4.
Each dot is one of the 27 European cities in the Copenhagenize 2025 top 30. On the dashed line, the two rankings agree. Below it, we rank the city higher; above it, lower. Orange: the two disagreements where independent injury data exists — it supports the risk model in both.
Defensive Pedal plans bike routes that minimize risk, using the exact same score behind this page. Free on iOS and Android.
* = straddles a tier boundary under re-specification. Index 0–100 on a fixed scale (v1), higher = lower assessed risk. Index range = where the index lands in 90% of 2,000 re-runs. Interval = 90% rank range over the same re-runs.
| # | City | Index | Index range | Interval |
|---|---|---|---|---|
| Tier 1 — lower assessed risk | ||||
| 1 | 🇸🇪 Stockholm | 99 | 97–100 | 1–6 |
| 2 | 🇳🇱 Amsterdam | 98 | 94–100 | 2–15 |
| 3 | 🇫🇮 Helsinki | 98 | 95–100 | 1–11 |
| 4 | 🇳🇱 The Hague | 98 | 94–100 | 2–14 |
| 5 | 🇧🇪 Antwerp | 98 | 94–100 | 3–15 |
| 6 | 🇫🇮 Vantaa | 97 | 94–100 | 2–11 |
| 7 | 🇳🇱 Leiden | 97 | 94–100 | 2–12 |
| 8 | 🇳🇱 Haarlem | 97 | 94–100 | 2–14 |
| 9 | 🇫🇮 Espoo | 96 | 93–100 | 3–16 |
| 10 | 🇩🇰 Copenhagen | 95 | 92–100 | 4–22 |
| 11 | 🇫🇮 Tampere | 94 | 91–100 | 4–18 |
| 12 | 🇳🇱 Eindhoven | 94 | 90–99 | 10–26 |
| 13 | 🇫🇷 Paris | 94 | 90–100 | 6–19 |
| 14 | 🇳🇱 Utrecht | 94 | 90–100 | 10–24 |
| 15 | 🇳🇱 Rotterdam | 93 | 90–100 | 9–23 |
| 16 | 🇪🇸 Barcelona | 93 | 90–100 | 8–22 |
| 17 | 🇧🇪 Brussels | 92 | 86–100 | 4–26 |
| 18 | 🇳🇱 Nijmegen | 90 | 86–96 | 15–30 |
| 19 | 🇪🇸 San Sebastián | 90 | 87–94 | 18–31 |
| 20 | 🇫🇮 Turku | 90 | 86–100 | 6–26 |
| 21 | 🇩🇪 Hanover | 89 | 86–94 | 19–32 |
| 22 | 🇳🇱 Arnhem | 88 | 84–94 | 19–36 |
| 23 | 🇩🇪 Munich | 88 | 84–93 | 21–36 |
| 24 | 🇧🇪 Ghent | 87 | 83–91 | 23–41 |
| 25 | 🇩🇪 Bremen | 87 | 83–92 | 20–41 |
| 26 | 🇫🇷 Lyon | 86 | 81–100 | 13–38 |
| 27 | 🇩🇪 Braunschweig | 85 | 82–90 | 25–42 |
| 28 | 🇩🇪 Lübeck | 85 | 81–92 | 23–44 |
| 29 | 🇳🇱 Almere | 85 | 80–100 | 14–43 |
| 30 | 🇪🇸 Bilbao | 84 | 77–100 | 15–54 |
| 31 | 🇫🇷 Montpellier | 84 | 80–90 | 27–46 |
| 32 | 🇳🇱 Groningen | 84 | 80–89 | 28–43 |
| 33 | 🇫🇷 Toulouse | 83 | 79–88 | 29–50 |
| 34 | 🇪🇸 Albacete | 83 | 79–88 | 32–48 |
| 35 | 🇫🇷 Grenoble | 83 | 78–97 | 23–48 |
| 36 | 🇪🇸 Salamanca | 82 | 78–91 | 27–50 |
| 37 | 🇩🇪 Oldenburg | 82 | 78–86 | 33–54 |
| 38 | 🇫🇷 Strasbourg | 81 | 74–100 | 16–59 |
| 39 | 🇳🇱 Tilburg | 81 | 76–88 | 32–53 |
| 40 | 🇫🇷 Nantes | 81 | 75–87 | 29–61 |
| 41 | 🇪🇸 Las Rozas de Madrid | 80 | 77–84 | 37–55 |
| 42 | 🇪🇸 Málaga | 80 | 75–85 | 33–60 |
| 43 | 🇸🇪 Malmö | 79 | 72–100 | 15–65 |
| 44 | 🇩🇪 Münster | 79 | 76–83 | 41–59 |
| 45 | 🇮🇹 Bologna | 79 | 74–93 | 28–58 |
| 46 | 🇪🇸 Seville | 78 | 72–90 | 32–67 |
| 47 | 🇪🇸 Valencia | 78 | 69–100 | 18–83 |
| 48 | 🇩🇪 Freiburg | 78 | 74–82 | 42–66 |
| 49 | 🇫🇷 Tours | 78 | 72–85 | 36–77 |
| 50 | 🇪🇸 Valladolid | 77 | 72–85 | 42–69 |
| 51 | 🇪🇸 Sabadell | 77 | 71–97 | 24–77 |
| 52 | 🇪🇸 Vitoria-Gasteiz | 76 | 72–83 | 46–67 |
| 53 | 🇩🇪 Duisburg | 76 | 72–82 | 43–72 |
| 54 | 🇪🇸 Pamplona | 76 | 71–83 | 46–74 |
| 55 | 🇪🇸 Burgos | 76 | 70–83 | 48–78 |
| 56 | 🇪🇸 Palma | 75 | 72–80 | 51–67 |
| 57 | 🇫🇷 Lille | 75 | 71–79 | 51–79 |
| 58 | 🇩🇪 Mannheim | 75 | 70–83 | 45–84 |
| 59 | 🇦🇹 Vienna | 75 | 68–86 | 42–88 |
| 60 | 🇪🇸 Zaragoza | 74 | 70–78 | 60–75 |
| 61 | 🇫🇮 Oulu | 73 | 66–100 | 12–86 |
| 62 | 🇪🇸 Córdoba | 73 | 69–79 | 49–82 |
| 63 | 🇫🇷 Nancy | 73 | 65–84 | 39–116 |
| 64 | 🇩🇪 Berlin | 72 | 68–79 | 50–83 |
| 65 | 🇪🇸 Sant Cugat del Vallès | 72 | 67–78 | 51–100 |
| 66 | 🇩🇪 Bonn | 72 | 67–80 | 49–102 |
| 67 | 🇩🇪 Augsburg | 72 | 68–76 | 58–82 |
| 68 | 🇩🇪 Magdeburg | 72 | 68–76 | 64–84 |
| 69 | 🇳🇴 Trondheim | 71 | 65–80 | 53–86 |
| 70 | 🇳🇱 Apeldoorn | 71 | 66–80 | 55–100 |
| 71 | 🇬🇧 Milton Keynes | 71 | 63–100 | 12–98 |
| 72 | 🇩🇪 Düsseldorf | 71 | 67–74 | 66–96 |
| 73 | 🇦🇹 Graz | 71 | 67–77 | 65–89 |
| 74 | 🇳🇴 Oslo | 71 | 62–81 | 46–98 |
| 75 | 🇳🇱 Breda | 71 | 65–80 | 59–101 |
| 76 | 🇩🇰 Odense | 70 | 65–86 | 41–96 |
| 77 | 🇸🇮 Maribor | 70 | 64–78 | 57–91 |
| 78 | 🇩🇪 Kiel | 70 | 67–74 | 69–93 |
| 79 | 🇪🇸 Gijón | 69 | 63–78 | 55–99 |
| 80 | 🇪🇸 Elche | 69 | 66–74 | 74–90 |
| 81 | 🇭🇺 Szeged | 69 | 65–74 | 73–93 |
| 82 | 🇪🇸 Alicante | 68 | 65–73 | 78–96 |
| 83 | 🇫🇷 Rennes | 68 | 63–75 | 65–115 |
| 84 | 🇮🇹 Reggio Emilia | 68 | 59–100 | 13–129 |
| 85 | 🇩🇰 Aarhus | 68 | 61–81 | 52–106 |
| 86 | 🇩🇪 Oberhausen | 68 | 62–77 | 57–125 |
| 87 | 🇪🇸 Murcia | 68 | 63–74 | 69–104 |
| 88 | 🇩🇪 Cologne | 67 | 64–71 | 74–118 |
| 89 | 🇪🇸 A Coruña | 67 | 63–72 | 72–116 |
| 90 | 🇪🇸 Santander | 67 | 63–71 | 87–102 |
| 91 | 🇵🇱 Białystok | 66 | 61–76 | 70–118 |
| 92 | 🇱🇺 Luxembourg | 66 | 62–70 | 83–118 |
| 93 | 🇵🇱 Wrocław | 66 | 61–72 | 84–117 |
| 94 | 🇩🇪 Halle (Saale) | 65 | 60–72 | 79–120 |
| 95 | 🇩🇪 Karlsruhe | 65 | 62–69 | 86–133 |
| 96 | 🇸🇮 Ljubljana | 64 | 59–70 | 88–121 |
| 97 | 🇩🇪 Ludwigshafen am Rhein | 64 | 60–69 | 78–144 |
| 98 | 🇫🇷 Orléans* | 64 | 60–68 | 98–120 |
| 99 | 🇪🇸 Castellón de la Plana* | 63 | 57–72 | 81–153 |
| 100 | 🇸🇪 Uppsala | 63 | 55–98 | 23–161 |
| Tier 2 — middle | ||||
| 101 | 🇳🇴 Bergen* | 63 | 55–72 | 80–139 |
| 102 | 🇩🇪 Leverkusen* | 62 | 59–66 | 100–143 |
| 103 | 🇩🇪 Krefeld* | 62 | 59–66 | 96–148 |
| 104 | 🇪🇸 Almería* | 62 | 58–67 | 103–129 |
| 105 | 🇩🇪 Gelsenkirchen* | 62 | 59–66 | 99–149 |
| 106 | 🇩🇪 Hamburg* | 62 | 56–71 | 84–154 |
| 107 | 🇪🇸 Vigo* | 62 | 56–71 | 81–161 |
| 108 | 🇵🇱 Gdańsk* | 62 | 57–67 | 106–132 |
| 109 | 🇪🇸 Terrassa | 62 | 58–66 | 94–152 |
| 110 | 🇳🇴 Stavanger* | 62 | 54–71 | 91–140 |
| 111 | 🇩🇪 Hamm | 61 | 58–65 | 99–154 |
| 112 | 🇩🇪 Mainz | 61 | 58–65 | 103–159 |
| 113 | 🇩🇪 Nuremberg | 61 | 58–65 | 111–145 |
| 114 | 🇩🇪 Rostock* | 61 | 54–70 | 89–156 |
| 115 | 🇫🇷 Angers* | 61 | 54–72 | 79–170 |
| 116 | 🇭🇺 Debrecen* | 61 | 55–70 | 93–143 |
| 117 | 🇵🇱 Toruń | 61 | 56–67 | 102–156 |
| 118 | 🇵🇱 Łódź | 61 | 55–67 | 109–135 |
| 119 | 🇳🇱 Alkmaar* | 60 | 54–69 | 94–169 |
| 120 | 🇩🇪 Leipzig* | 60 | 52–69 | 94–153 |
| 121 | 🇫🇷 Clermont-Ferrand | 60 | 57–63 | 110–155 |
| 122 | 🇪🇸 Jerez de la Frontera | 60 | 54–66 | 115–140 |
| 123 | 🇪🇪 Tallinn* | 60 | 51–76 | 69–157 |
| 124 | 🇪🇸 Granada | 60 | 55–66 | 103–175 |
| 125 | 🇭🇺 Budapest | 60 | 54–69 | 103–151 |
| 126 | 🇩🇪 Potsdam | 59 | 53–68 | 99–177 |
| 127 | 🇦🇹 Linz | 59 | 53–68 | 101–175 |
| 128 | 🇫🇷 Bordeaux | 59 | 54–65 | 114–170 |
| 129 | 🇨🇭 Bern* | 59 | 50–73 | 75–198 |
| 130 | 🇩🇪 Aachen | 59 | 53–66 | 103–182 |
| 131 | 🇵🇱 Warsaw* | 59 | 52–72 | 83–172 |
| 132 | 🇧🇪 Liège | 59 | 52–71 | 91–176 |
| 133 | 🇨🇭 Geneva | 58 | 53–66 | 108–166 |
| 134 | 🇮🇹 Venice* | 58 | 51–77 | 66–174 |
| 135 | 🇬🇧 Bedford* | 58 | 47–71 | 90–175 |
| 136 | 🇩🇪 Mönchengladbach | 58 | 55–62 | 114–175 |
| 137 | 🇵🇱 Gdynia | 58 | 54–62 | 130–160 |
| 138 | 🇬🇧 Edinburgh* | 58 | 50–72 | 88–163 |
| 139 | 🇪🇸 Madrid | 58 | 52–68 | 110–161 |
| 140 | 🇮🇸 Reykjavik | 58 | 53–64 | 115–177 |
| 141 | 🇩🇪 Mülheim an der Ruhr | 58 | 54–62 | 126–177 |
| 142 | 🇩🇪 Frankfurt | 58 | 55–61 | 123–173 |
| 143 | 🇲🇹 Valletta* | 57 | 47–72 | 75–210 |
| 144 | 🇬🇧 Peterborough* | 57 | 49–72 | 85–174 |
| 145 | 🇩🇰 Aalborg | 57 | 49–70 | 98–171 |
| 146 | 🇬🇧 Manchester | 57 | 50–67 | 117–166 |
| 147 | 🇬🇧 York | 57 | 48–67 | 112–171 |
| 148 | 🇪🇸 Oviedo* | 57 | 47–73 | 76–207 |
| 149 | 🇵🇱 Poznań | 56 | 53–62 | 130–177 |
| 150 | 🇮🇹 Florence | 56 | 49–67 | 114–172 |
| 151 | 🇵🇱 Lublin | 56 | 49–66 | 119–175 |
| 152 | 🇬🇧 Bristol | 56 | 46–66 | 117–181 |
| 153 | 🇸🇪 Gothenburg | 56 | 50–65 | 125–189 |
| 154 | 🇫🇷 Rouen | 55 | 49–62 | 110–212 |
| 155 | 🇩🇪 Dortmund | 55 | 48–63 | 124–186 |
| 156 | 🇵🇱 Kraków | 55 | 48–62 | 140–173 |
| 157 | 🇬🇧 Brighton and Hove | 55 | 48–62 | 136–179 |
| 158 | 🇫🇷 Mulhouse | 55 | 50–60 | 144–191 |
| 159 | 🇮🇪 Dublin | 54 | 47–63 | 124–187 |
| 160 | 🇮🇹 Modena* | 54 | 43–74 | 75–219 |
| 161 | 🇩🇪 Bielefeld | 54 | 48–62 | 135–191 |
| 162 | 🇬🇧 Nottingham | 54 | 50–58 | 150–187 |
| 163 | 🇩🇪 Stuttgart | 54 | 48–60 | 134–208 |
| 164 | 🇩🇪 Darmstadt | 53 | 47–60 | 129–217 |
| 165 | 🇸🇰 Bratislava | 53 | 47–60 | 160–180 |
| 166 | 🇵🇱 Rzeszów | 53 | 48–60 | 158–183 |
| 167 | 🇸🇪 Linköping | 53 | 49–57 | 138–208 |
| 168 | 🇬🇧 Swindon | 52 | 44–69 | 104–199 |
| 169 | 🇩🇪 Kassel | 52 | 45–62 | 126–223 |
| 170 | 🇨🇭 Zurich | 52 | 46–59 | 143–210 |
| 171 | 🇩🇪 Dresden | 52 | 45–62 | 132–207 |
| 172 | 🇫🇷 Reims | 52 | 48–57 | 157–202 |
| 173 | 🇫🇷 Metz | 52 | 47–57 | 154–207 |
| 174 | 🇵🇱 Bydgoszcz | 52 | 46–60 | 154–197 |
| 175 | 🇮🇹 Bergamo | 52 | 43–63 | 140–191 |
| 176 | 🇨🇿 Plzeň* | 52 | 43–68 | 109–199 |
| 177 | 🇫🇷 Toulon | 52 | 45–61 | 139–205 |
| 178 | 🇮🇹 Turin* | 52 | 41–88 | 39–223 |
| 179 | 🇬🇧 Portsmouth | 52 | 46–58 | 168–193 |
| 180 | 🇮🇹 Parma* | 52 | 42–73 | 81–218 |
| 181 | 🇩🇪 Essen | 51 | 46–57 | 161–204 |
| 182 | 🇱🇻 Riga | 51 | 43–60 | 162–192 |
| 183 | 🇬🇧 Telford | 51 | 42–65 | 128–200 |
| 184 | 🇬🇧 Newcastle upon Tyne | 50 | 42–61 | 153–197 |
| 185 | 🇩🇪 Bochum | 50 | 43–60 | 141–217 |
| 186 | 🇵🇱 Szczecin | 50 | 45–57 | 171–207 |
| 187 | 🇵🇱 Kielce | 50 | 45–56 | 180–203 |
| 188 | 🇨🇭 Basel | 50 | 46–54 | 149–223 |
| 189 | 🇫🇷 Le Havre | 50 | 42–57 | 173–201 |
| 190 | 🇬🇧 Leeds* | 49 | 41–64 | 132–213 |
| 191 | 🇬🇧 Birmingham* | 49 | 39–68 | 111–213 |
| 192 | 🇫🇷 Saint-Étienne* | 49 | 42–58 | 150–228 |
| 193 | 🇬🇧 Swansea* | 49 | 38–65 | 127–213 |
| 194 | 🇪🇸 Cartagena* | 48 | 42–56 | 166–220 |
| 195 | 🇮🇹 Verona* | 48 | 40–63 | 139–214 |
| 196 | 🇮🇹 Pescara* | 48 | 40–60 | 155–209 |
| 197 | 🇭🇷 Zagreb* | 48 | 39–58 | 172–212 |
| 198 | 🇩🇪 Hagen* | 48 | 40–59 | 146–235 |
| 199 | 🇬🇧 London* | 48 | 40–57 | 181–207 |
| 200 | 🇨🇭 Lausanne* | 48 | 39–62 | 130–239 |
| Tier 3 — higher assessed risk | ||||
| 201 | 🇪🇸 Alcalá de Henares* | 48 | 42–55 | 167–230 |
| 202 | 🇨🇿 Prague* | 48 | 40–55 | 188–212 |
| 203 | 🇬🇧 Southampton* | 47 | 40–54 | 194–211 |
| 204 | 🇱🇹 Vilnius* | 47 | 40–54 | 187–217 |
| 205 | 🇩🇪 Saarbrücken* | 46 | 37–60 | 139–244 |
| 206 | 🇬🇧 Plymouth* | 46 | 37–57 | 182–219 |
| 207 | 🇬🇧 Wolverhampton* | 46 | 37–62 | 146–225 |
| 208 | 🇩🇪 Wuppertal* | 46 | 40–53 | 182–233 |
| 209 | 🇬🇧 Derby* | 46 | 37–60 | 161–221 |
| 210 | 🇬🇧 Glasgow* | 46 | 37–63 | 141–227 |
| 211 | 🇮🇹 Brescia* | 46 | 36–66 | 123–237 |
| 212 | 🇫🇷 Nice | 45 | 39–53 | 197–219 |
| 213 | 🇬🇧 Sunderland* | 45 | 34–59 | 164–230 |
| 214 | 🇬🇧 Sheffield* | 45 | 36–53 | 198–225 |
| 215 | 🇬🇧 Warrington | 44 | 38–54 | 186–235 |
| 216 | 🇵🇱 Katowice | 44 | 36–52 | 205–225 |
| 217 | 🇵🇱 Częstochowa | 44 | 36–55 | 170–247 |
| 218 | 🇩🇪 Erfurt | 44 | 38–49 | 205–230 |
| 219 | 🇬🇧 Leicester | 43 | 35–55 | 186–236 |
| 220 | 🇩🇪 Chemnitz | 42 | 35–51 | 199–239 |
| 221 | 🇵🇱 Radom | 42 | 36–50 | 202–237 |
| 222 | 🇫🇷 Marseille | 42 | 34–50 | 207–233 |
| 223 | 🇮🇹 Prato* | 42 | 32–61 | 147–250 |
| 224 | 🇵🇱 Gliwice | 42 | 37–48 | 203–242 |
| 225 | 🇬🇧 Basingstoke | 42 | 36–48 | 215–232 |
| 226 | 🇵🇱 Sosnowiec | 42 | 35–48 | 219–232 |
| 227 | 🇮🇹 Genoa | 40 | 32–51 | 196–252 |
| 228 | 🇪🇸 Fuenlabrada | 40 | 34–45 | 227–238 |
| 229 | 🇬🇧 Stoke-on-Trent | 40 | 29–58 | 172–251 |
| 230 | 🇧🇬 Plovdiv | 40 | 29–60 | 156–256 |
| 231 | 🇬🇷 Thessaloniki | 40 | 28–57 | 167–259 |
| 232 | 🇬🇧 Kingston upon Hull | 40 | 31–51 | 206–243 |
| 233 | 🇱🇹 Kaunas | 40 | 34–45 | 225–240 |
| 234 | 🇸🇰 Košice | 40 | 33–46 | 218–242 |
| 235 | 🇨🇿 Ostrava | 39 | 31–53 | 198–247 |
| 236 | 🇬🇧 Medway | 39 | 29–49 | 218–245 |
| 237 | 🇬🇧 Cardiff | 38 | 32–44 | 222–247 |
| 238 | 🇨🇿 Brno | 38 | 32–43 | 232–244 |
| 239 | 🇩🇪 Wiesbaden | 38 | 34–41 | 216–257 |
| 240 | 🇬🇧 Coventry | 37 | 28–53 | 196–257 |
| 241 | 🇬🇧 Colchester | 37 | 31–44 | 231–251 |
| 242 | 🇮🇹 Milan | 37 | 28–48 | 218–251 |
| 243 | 🇬🇧 Bradford | 37 | 28–46 | 229–250 |
| 244 | 🇮🇹 Padua | 36 | 31–43 | 234–252 |
| 245 | 🇧🇬 Varna | 36 | 28–43 | 227–254 |
| 246 | 🇷🇴 Cluj-Napoca | 36 | 29–42 | 230–256 |
| 247 | 🇵🇹 Lisbon | 34 | 24–51 | 203–269 |
| 248 | 🇧🇪 Charleroi | 33 | 26–45 | 228–261 |
| 249 | 🇬🇧 Luton | 33 | 27–39 | 248–256 |
| 250 | 🇮🇪 Cork | 32 | 27–38 | 243–262 |
| 251 | 🇮🇹 Trieste | 32 | 25–40 | 248–258 |
| 252 | 🇫🇷 Dijon | 32 | 28–36 | 233–268 |
| 253 | 🇧🇬 Sofia | 32 | 24–39 | 250–260 |
| 254 | 🇵🇹 Porto | 32 | 22–43 | 224–268 |
| 255 | 🇮🇹 Rome | 31 | 22–42 | 243–266 |
| 256 | 🇬🇧 Northampton | 31 | 22–40 | 248–263 |
| 257 | 🇵🇹 Sintra | 30 | 21–40 | 244–267 |
| 258 | 🇬🇧 Aberdeen | 30 | 25–34 | 252–266 |
| 259 | 🇬🇧 Belfast | 30 | 22–39 | 248–266 |
| 260 | 🇮🇹 Cagliari | 30 | 22–39 | 245–271 |
| 261 | 🇬🇷 Patras | 29 | 18–44 | 217–279 |
| 262 | 🇬🇧 Liverpool | 29 | 22–36 | 256–268 |
| 263 | 🇮🇹 Naples | 28 | 19–41 | 232–275 |
| 264 | 🇮🇹 Palermo | 28 | 20–36 | 258–270 |
| 265 | 🇮🇹 Messina | 27 | 16–44 | 221–280 |
| 266 | 🇷🇴 Arad | 26 | 19–34 | 260–273 |
| 267 | 🇷🇴 Satu Mare | 26 | 16–41 | 233–284 |
| 268 | 🇬🇧 Doncaster | 26 | 18–33 | 264–274 |
| 269 | 🇮🇹 Taranto | 26 | 19–31 | 264–272 |
| 270 | 🇷🇴 Oradea | 26 | 16–42 | 239–284 |
| 271 | 🇨🇾 Nicosia | 25 | 19–31 | 267–272 |
| 272 | 🇷🇴 Targu Mures | 23 | 19–27 | 261–279 |
| 273 | 🇮🇹 Reggio Calabria | 23 | 13–37 | 245–286 |
| 274 | 🇧🇬 Burgas | 22 | 13–35 | 258–286 |
| 275 | 🇷🇴 Brasov | 22 | 18–25 | 264–281 |
| 276 | 🇬🇧 Maidstone | 21 | 14–30 | 262–284 |
| 277 | 🇷🇴 Sibiu | 21 | 17–24 | 273–279 |
| 278 | 🇬🇧 Bournemouth | 20 | 14–26 | 271–281 |
| 279 | 🇮🇹 Bari | 20 | 13–26 | 272–285 |
| 280 | 🇵🇹 Braga | 19 | 14–24 | 274–283 |
| 281 | 🇷🇴 Timisoara | 19 | 14–24 | 275–282 |
| 282 | 🇮🇹 Catania | 18 | 9–28 | 266–290 |
| 283 | 🇷🇴 Constanta | 17 | 12–21 | 280–286 |
| 284 | 🇬🇷 Athens | 16 | 12–20 | 281–285 |
| 285 | 🇷🇴 Baia Mare | 15 | 10–20 | 279–289 |
| 286 | 🇷🇴 Bucharest | 15 | 10–19 | 277–289 |
| 287 | 🇨🇾 Limassol | 14 | 9–21 | 279–290 |
| 288 | 🇭🇷 Split | 12 | 7–18 | 278–294 |
| 289 | 🇷🇴 Bacau | 12 | 7–17 | 282–289 |
| 290 | 🇷🇴 Pitesti | 10 | 5–14 | 287–293 |
| 291 | 🇨🇾 Strovolos | 9 | 4–16 | 285–294 |
| 292 | 🇷🇴 Craiova | 7 | 3–11 | 290–294 |
| 293 | 🇷🇴 Galati | 6 | 3–10 | 291–295 |
| 294 | 🇨🇾 Paphos | 5 | 2–10 | 292–295 |
| 295 | 🇷🇴 Botosani | 3 | 0–6 | 292–296 |
| 296 | 🇷🇴 Buzau | 2 | 0–5 | 294–298 |
| 297 | 🇷🇴 Ploiesti | 1 | 0–5 | 295–298 |
| 298 | 🇷🇴 Braila | 1 | 0–3 | 297–299 |
| 299 | 🇷🇴 Iasi | 0 | 0–0 | 299–300 |
| 300 | 🇨🇾 Larnaca | 0 | 0–2 | 296–300 |
Every city here can get what this page only summarizes: a street-by-street diagnosis of where its cycling risk lives and what drives it — the same decomposition behind this ranking. We work with municipalities on three things: street-level diagnosis (which streets, which factor, what to fix first), an interactive risk map of your city (see the live Bucharest sample), and before/after measurement of what you build — because a gap you can measure is a gap you can close, and re-measure.
Work for a city? Street-level cycling intelligence for your municipality — get in touch.
Method in one line: every scored road segment of the production Defensive Pedal risk model (the one that plans real routes today) is aggregated per city across three pillars — street network risk, the risk of 210 simulated journeys, and low-stress accessibility — normalised on the 300-city sample and stress-tested 2,000 times. Journeys and connectivity also use streets up to 1 km beyond the city limit. Roads above 80 km/h and carriageways with a mandatory parallel path don't count against a city's streets; cities are official municipal boundaries.
Full technical report, criterion analysis and every caveat: Pedalability Index: Cycling Risk — the full study (open access, DOI 10.5281/zenodo.22771452) · Defensive Pedal Research, 2026. Study archived at DOI 10.5281/zenodo.22771452 (CC-BY-4.0). External reference: Copenhagenize Index 2025 — EIT Urban Mobility Edition.
Ride on routes that minimize risk with Defensive Pedal — the app that uses this same safety algorithm.