Defensive Pedal
Defensive Pedal
Research

Data, not Reputation

Pedalability Index 2026: Cycling Risk

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.

Stockholm #1Munich 23Malmö 43Madrid 139Zurich 170Rome 255Bucharest 286Larnaca 300rank 1rank 300
Tier 1 · safest Tier 2 · middle Tier 3 · riskiest

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.

Find your city

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 top ten

1
🇸🇪 Stockholm99
the upset — we audited it ourselves, and it held
interval 1–6
2
🇳🇱 Amsterdam98
the reputation, confirmed
interval 2–15
3
🇫🇮 Helsinki98
the fastest riser in Europe, by our model and everyone else's
interval 1–11
4
🇳🇱 The Hague98
interval 2–14
5
🇧🇪 Antwerp98
the most agreed-upon cycling city in Europe
interval 3–15
6
🇫🇮 Vantaa97
the suburbs nobody celebrates — until you measure them
interval 2–11
7
🇳🇱 Leiden97
interval 2–12
8
🇳🇱 Haarlem97
the Dutch cities the famous rankings never test
interval 2–14
9
🇫🇮 Espoo96
interval 3–16
10
🇩🇰 Copenhagen95
top ten once its harbour bridges count
interval 4–22

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.

How a street gets its score

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.

The quiet side street
30 km/hprotected track calm trafficno trucks

Scores at the safe end — the kind of street a network should be made of.

The ordinary high street
50 km/hpainted lane, at best steady trafficparked cars

The middle of the scale — rideable, but it depends on the rider being careful.

The urban arterial
2×2 lanesheavy traffic trucks allowednothing for bikes

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.

Three questions, one rank

A city's rank comes from asking the same three questions of all 300 cities — weighted 40/30/30 — of the streets themselves.

40%
How risky are its streets?

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.

30%
How risky is a typical journey?

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.

30%
Can daily life happen on calm streets?

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.

Five results that will start arguments

  1. Stockholm is first — and we audited our own headline before publishing it.
    No famous ranking puts Stockholm on the podium; the Copenhagenize Index has it 26th. When it first came out on top we stress-tested the result: most of its street network is signed at 30 km/h, its speed-limit tagging is close to complete, and it has one of the largest separated cycleway networks of any peer city. On this edition's data its lead grew to 1.1 points. What we won't claim: that it is certainly first. Its interval is 1–6, and Amsterdam, Helsinki, The Hague and Antwerp all reach the podium in the re-runs. Top of the leading cluster — that, the data supports.
  2. The cycling capitals earn their reputations.
    Amsterdam 2, Copenhagen 10, Paris 13, Utrecht 14. All four are in the top 15. In the first edition Copenhagen sat 17th, because its official boundary leaves out the harbour and the enclave of Frederiksberg, which cut its bridges out of the network we measured. We fixed that for every city in this edition. We still don't score culture, mode share or ambition — only the streets.
  3. Nobody celebrates Vantaa and Espoo. The data does.
    Helsinki's suburbs rank 6th and 9th, above most famous cycling cities in Europe. Fame-based indices never test suburbs. A risk model doesn't know what a suburb is — it just measures the paths, and Finland built them everywhere.
  4. Where rankings disagree, the injury data picks a side — ours.
    Copenhagenize puts Bordeaux 9th; we put it 128th — and Bordeaux has the worst measured serious-injury rate of any French city in our outcome panel (4.0 per 10M passages vs Paris's 1.9). They put Zurich 21st; we put it 170th — and Zurich has the second-worst injury rate in the entire panel (7.4). Indices that reward policy momentum measure ambition. We measure asphalt. In both checkable disagreements, the crash data sides with the asphalt.
  5. The bottom of the table is where the work is.
    13 of the last 20 cities are Romanian — Bucharest ranks 286, Timișoara 281, Iasi 299th of 300. That reads brutal, and it is. It is also measured — segment by segment, on the same scale as Stockholm. A gap you can measure is a gap you can close.

Us vs. the famous ranking

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.

1306090120150UtrechtHelsinkiMünsterAntwerpBordeauxZurichStockholmCopenhagenize Index 2025 rank (their European top 30) →our rank →perfect agreement

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.

Why you can trust it

0.54
Rank correlation with measured bicycle commuting share across 220 cities (Eurostat) — above the pre-registered validation target, on par with the best published city indices.
0.78
Serious-injury rate ratio per +10 index points across 2.2 billion measured cyclist passages (p < 0.001): higher-ranked cities really do hurt fewer riders.
2,000
Re-runs of the entire method with perturbed weights and goalposts behind every rank. The interval printed next to each city is where it lands in 90% of them.
Don’t just read the ranking — ride it.

Defensive Pedal plans bike routes that minimize risk, using the exact same score behind this page. Free on iOS and Android.

What we won't claim. Two cities with overlapping intervals are a tie — read the intervals, not just the places: Stockholm's #1 means "top of the leading cluster", not "beats Helsinki". Once you control for country, the injury association is inconclusive (five countries of outcome data can't separate a city from its nation). Rankings that carry no caveats are marketing.

The full ranking

* = 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.

#CityIndexIndex rangeInterval
Tier 1 — lower assessed risk
1🇸🇪 Stockholm9997–1001–6
2🇳🇱 Amsterdam9894–1002–15
3🇫🇮 Helsinki9895–1001–11
4🇳🇱 The Hague9894–1002–14
5🇧🇪 Antwerp9894–1003–15
6🇫🇮 Vantaa9794–1002–11
7🇳🇱 Leiden9794–1002–12
8🇳🇱 Haarlem9794–1002–14
9🇫🇮 Espoo9693–1003–16
10🇩🇰 Copenhagen9592–1004–22
11🇫🇮 Tampere9491–1004–18
12🇳🇱 Eindhoven9490–9910–26
13🇫🇷 Paris9490–1006–19
14🇳🇱 Utrecht9490–10010–24
15🇳🇱 Rotterdam9390–1009–23
16🇪🇸 Barcelona9390–1008–22
17🇧🇪 Brussels9286–1004–26
18🇳🇱 Nijmegen9086–9615–30
19🇪🇸 San Sebastián9087–9418–31
20🇫🇮 Turku9086–1006–26
21🇩🇪 Hanover8986–9419–32
22🇳🇱 Arnhem8884–9419–36
23🇩🇪 Munich8884–9321–36
24🇧🇪 Ghent8783–9123–41
25🇩🇪 Bremen8783–9220–41
26🇫🇷 Lyon8681–10013–38
27🇩🇪 Braunschweig8582–9025–42
28🇩🇪 Lübeck8581–9223–44
29🇳🇱 Almere8580–10014–43
30🇪🇸 Bilbao8477–10015–54
31🇫🇷 Montpellier8480–9027–46
32🇳🇱 Groningen8480–8928–43
33🇫🇷 Toulouse8379–8829–50
34🇪🇸 Albacete8379–8832–48
35🇫🇷 Grenoble8378–9723–48
36🇪🇸 Salamanca8278–9127–50
37🇩🇪 Oldenburg8278–8633–54
38🇫🇷 Strasbourg8174–10016–59
39🇳🇱 Tilburg8176–8832–53
40🇫🇷 Nantes8175–8729–61
41🇪🇸 Las Rozas de Madrid8077–8437–55
42🇪🇸 Málaga8075–8533–60
43🇸🇪 Malmö7972–10015–65
44🇩🇪 Münster7976–8341–59
45🇮🇹 Bologna7974–9328–58
46🇪🇸 Seville7872–9032–67
47🇪🇸 Valencia7869–10018–83
48🇩🇪 Freiburg7874–8242–66
49🇫🇷 Tours7872–8536–77
50🇪🇸 Valladolid7772–8542–69
51🇪🇸 Sabadell7771–9724–77
52🇪🇸 Vitoria-Gasteiz7672–8346–67
53🇩🇪 Duisburg7672–8243–72
54🇪🇸 Pamplona7671–8346–74
55🇪🇸 Burgos7670–8348–78
56🇪🇸 Palma7572–8051–67
57🇫🇷 Lille7571–7951–79
58🇩🇪 Mannheim7570–8345–84
59🇦🇹 Vienna7568–8642–88
60🇪🇸 Zaragoza7470–7860–75
61🇫🇮 Oulu7366–10012–86
62🇪🇸 Córdoba7369–7949–82
63🇫🇷 Nancy7365–8439–116
64🇩🇪 Berlin7268–7950–83
65🇪🇸 Sant Cugat del Vallès7267–7851–100
66🇩🇪 Bonn7267–8049–102
67🇩🇪 Augsburg7268–7658–82
68🇩🇪 Magdeburg7268–7664–84
69🇳🇴 Trondheim7165–8053–86
70🇳🇱 Apeldoorn7166–8055–100
71🇬🇧 Milton Keynes7163–10012–98
72🇩🇪 Düsseldorf7167–7466–96
73🇦🇹 Graz7167–7765–89
74🇳🇴 Oslo7162–8146–98
75🇳🇱 Breda7165–8059–101
76🇩🇰 Odense7065–8641–96
77🇸🇮 Maribor7064–7857–91
78🇩🇪 Kiel7067–7469–93
79🇪🇸 Gijón6963–7855–99
80🇪🇸 Elche6966–7474–90
81🇭🇺 Szeged6965–7473–93
82🇪🇸 Alicante6865–7378–96
83🇫🇷 Rennes6863–7565–115
84🇮🇹 Reggio Emilia6859–10013–129
85🇩🇰 Aarhus6861–8152–106
86🇩🇪 Oberhausen6862–7757–125
87🇪🇸 Murcia6863–7469–104
88🇩🇪 Cologne6764–7174–118
89🇪🇸 A Coruña6763–7272–116
90🇪🇸 Santander6763–7187–102
91🇵🇱 Białystok6661–7670–118
92🇱🇺 Luxembourg6662–7083–118
93🇵🇱 Wrocław6661–7284–117
94🇩🇪 Halle (Saale)6560–7279–120
95🇩🇪 Karlsruhe6562–6986–133
96🇸🇮 Ljubljana6459–7088–121
97🇩🇪 Ludwigshafen am Rhein6460–6978–144
98🇫🇷 Orléans*6460–6898–120
99🇪🇸 Castellón de la Plana*6357–7281–153
100🇸🇪 Uppsala6355–9823–161
Tier 2 — middle
101🇳🇴 Bergen*6355–7280–139
102🇩🇪 Leverkusen*6259–66100–143
103🇩🇪 Krefeld*6259–6696–148
104🇪🇸 Almería*6258–67103–129
105🇩🇪 Gelsenkirchen*6259–6699–149
106🇩🇪 Hamburg*6256–7184–154
107🇪🇸 Vigo*6256–7181–161
108🇵🇱 Gdańsk*6257–67106–132
109🇪🇸 Terrassa6258–6694–152
110🇳🇴 Stavanger*6254–7191–140
111🇩🇪 Hamm6158–6599–154
112🇩🇪 Mainz6158–65103–159
113🇩🇪 Nuremberg6158–65111–145
114🇩🇪 Rostock*6154–7089–156
115🇫🇷 Angers*6154–7279–170
116🇭🇺 Debrecen*6155–7093–143
117🇵🇱 Toruń6156–67102–156
118🇵🇱 Łódź6155–67109–135
119🇳🇱 Alkmaar*6054–6994–169
120🇩🇪 Leipzig*6052–6994–153
121🇫🇷 Clermont-Ferrand6057–63110–155
122🇪🇸 Jerez de la Frontera6054–66115–140
123🇪🇪 Tallinn*6051–7669–157
124🇪🇸 Granada6055–66103–175
125🇭🇺 Budapest6054–69103–151
126🇩🇪 Potsdam5953–6899–177
127🇦🇹 Linz5953–68101–175
128🇫🇷 Bordeaux5954–65114–170
129🇨🇭 Bern*5950–7375–198
130🇩🇪 Aachen5953–66103–182
131🇵🇱 Warsaw*5952–7283–172
132🇧🇪 Liège5952–7191–176
133🇨🇭 Geneva5853–66108–166
134🇮🇹 Venice*5851–7766–174
135🇬🇧 Bedford*5847–7190–175
136🇩🇪 Mönchengladbach5855–62114–175
137🇵🇱 Gdynia5854–62130–160
138🇬🇧 Edinburgh*5850–7288–163
139🇪🇸 Madrid5852–68110–161
140🇮🇸 Reykjavik5853–64115–177
141🇩🇪 Mülheim an der Ruhr5854–62126–177
142🇩🇪 Frankfurt5855–61123–173
143🇲🇹 Valletta*5747–7275–210
144🇬🇧 Peterborough*5749–7285–174
145🇩🇰 Aalborg5749–7098–171
146🇬🇧 Manchester5750–67117–166
147🇬🇧 York5748–67112–171
148🇪🇸 Oviedo*5747–7376–207
149🇵🇱 Poznań5653–62130–177
150🇮🇹 Florence5649–67114–172
151🇵🇱 Lublin5649–66119–175
152🇬🇧 Bristol5646–66117–181
153🇸🇪 Gothenburg5650–65125–189
154🇫🇷 Rouen5549–62110–212
155🇩🇪 Dortmund5548–63124–186
156🇵🇱 Kraków5548–62140–173
157🇬🇧 Brighton and Hove5548–62136–179
158🇫🇷 Mulhouse5550–60144–191
159🇮🇪 Dublin5447–63124–187
160🇮🇹 Modena*5443–7475–219
161🇩🇪 Bielefeld5448–62135–191
162🇬🇧 Nottingham5450–58150–187
163🇩🇪 Stuttgart5448–60134–208
164🇩🇪 Darmstadt5347–60129–217
165🇸🇰 Bratislava5347–60160–180
166🇵🇱 Rzeszów5348–60158–183
167🇸🇪 Linköping5349–57138–208
168🇬🇧 Swindon5244–69104–199
169🇩🇪 Kassel5245–62126–223
170🇨🇭 Zurich5246–59143–210
171🇩🇪 Dresden5245–62132–207
172🇫🇷 Reims5248–57157–202
173🇫🇷 Metz5247–57154–207
174🇵🇱 Bydgoszcz5246–60154–197
175🇮🇹 Bergamo5243–63140–191
176🇨🇿 Plzeň*5243–68109–199
177🇫🇷 Toulon5245–61139–205
178🇮🇹 Turin*5241–8839–223
179🇬🇧 Portsmouth5246–58168–193
180🇮🇹 Parma*5242–7381–218
181🇩🇪 Essen5146–57161–204
182🇱🇻 Riga5143–60162–192
183🇬🇧 Telford5142–65128–200
184🇬🇧 Newcastle upon Tyne5042–61153–197
185🇩🇪 Bochum5043–60141–217
186🇵🇱 Szczecin5045–57171–207
187🇵🇱 Kielce5045–56180–203
188🇨🇭 Basel5046–54149–223
189🇫🇷 Le Havre5042–57173–201
190🇬🇧 Leeds*4941–64132–213
191🇬🇧 Birmingham*4939–68111–213
192🇫🇷 Saint-Étienne*4942–58150–228
193🇬🇧 Swansea*4938–65127–213
194🇪🇸 Cartagena*4842–56166–220
195🇮🇹 Verona*4840–63139–214
196🇮🇹 Pescara*4840–60155–209
197🇭🇷 Zagreb*4839–58172–212
198🇩🇪 Hagen*4840–59146–235
199🇬🇧 London*4840–57181–207
200🇨🇭 Lausanne*4839–62130–239
Tier 3 — higher assessed risk
201🇪🇸 Alcalá de Henares*4842–55167–230
202🇨🇿 Prague*4840–55188–212
203🇬🇧 Southampton*4740–54194–211
204🇱🇹 Vilnius*4740–54187–217
205🇩🇪 Saarbrücken*4637–60139–244
206🇬🇧 Plymouth*4637–57182–219
207🇬🇧 Wolverhampton*4637–62146–225
208🇩🇪 Wuppertal*4640–53182–233
209🇬🇧 Derby*4637–60161–221
210🇬🇧 Glasgow*4637–63141–227
211🇮🇹 Brescia*4636–66123–237
212🇫🇷 Nice4539–53197–219
213🇬🇧 Sunderland*4534–59164–230
214🇬🇧 Sheffield*4536–53198–225
215🇬🇧 Warrington4438–54186–235
216🇵🇱 Katowice4436–52205–225
217🇵🇱 Częstochowa4436–55170–247
218🇩🇪 Erfurt4438–49205–230
219🇬🇧 Leicester4335–55186–236
220🇩🇪 Chemnitz4235–51199–239
221🇵🇱 Radom4236–50202–237
222🇫🇷 Marseille4234–50207–233
223🇮🇹 Prato*4232–61147–250
224🇵🇱 Gliwice4237–48203–242
225🇬🇧 Basingstoke4236–48215–232
226🇵🇱 Sosnowiec4235–48219–232
227🇮🇹 Genoa4032–51196–252
228🇪🇸 Fuenlabrada4034–45227–238
229🇬🇧 Stoke-on-Trent4029–58172–251
230🇧🇬 Plovdiv4029–60156–256
231🇬🇷 Thessaloniki4028–57167–259
232🇬🇧 Kingston upon Hull4031–51206–243
233🇱🇹 Kaunas4034–45225–240
234🇸🇰 Košice4033–46218–242
235🇨🇿 Ostrava3931–53198–247
236🇬🇧 Medway3929–49218–245
237🇬🇧 Cardiff3832–44222–247
238🇨🇿 Brno3832–43232–244
239🇩🇪 Wiesbaden3834–41216–257
240🇬🇧 Coventry3728–53196–257
241🇬🇧 Colchester3731–44231–251
242🇮🇹 Milan3728–48218–251
243🇬🇧 Bradford3728–46229–250
244🇮🇹 Padua3631–43234–252
245🇧🇬 Varna3628–43227–254
246🇷🇴 Cluj-Napoca3629–42230–256
247🇵🇹 Lisbon3424–51203–269
248🇧🇪 Charleroi3326–45228–261
249🇬🇧 Luton3327–39248–256
250🇮🇪 Cork3227–38243–262
251🇮🇹 Trieste3225–40248–258
252🇫🇷 Dijon3228–36233–268
253🇧🇬 Sofia3224–39250–260
254🇵🇹 Porto3222–43224–268
255🇮🇹 Rome3122–42243–266
256🇬🇧 Northampton3122–40248–263
257🇵🇹 Sintra3021–40244–267
258🇬🇧 Aberdeen3025–34252–266
259🇬🇧 Belfast3022–39248–266
260🇮🇹 Cagliari3022–39245–271
261🇬🇷 Patras2918–44217–279
262🇬🇧 Liverpool2922–36256–268
263🇮🇹 Naples2819–41232–275
264🇮🇹 Palermo2820–36258–270
265🇮🇹 Messina2716–44221–280
266🇷🇴 Arad2619–34260–273
267🇷🇴 Satu Mare2616–41233–284
268🇬🇧 Doncaster2618–33264–274
269🇮🇹 Taranto2619–31264–272
270🇷🇴 Oradea2616–42239–284
271🇨🇾 Nicosia2519–31267–272
272🇷🇴 Targu Mures2319–27261–279
273🇮🇹 Reggio Calabria2313–37245–286
274🇧🇬 Burgas2213–35258–286
275🇷🇴 Brasov2218–25264–281
276🇬🇧 Maidstone2114–30262–284
277🇷🇴 Sibiu2117–24273–279
278🇬🇧 Bournemouth2014–26271–281
279🇮🇹 Bari2013–26272–285
280🇵🇹 Braga1914–24274–283
281🇷🇴 Timisoara1914–24275–282
282🇮🇹 Catania189–28266–290
283🇷🇴 Constanta1712–21280–286
284🇬🇷 Athens1612–20281–285
285🇷🇴 Baia Mare1510–20279–289
286🇷🇴 Bucharest1510–19277–289
287🇨🇾 Limassol149–21279–290
288🇭🇷 Split127–18278–294
289🇷🇴 Bacau127–17282–289
290🇷🇴 Pitesti105–14287–293
291🇨🇾 Strovolos94–16285–294
292🇷🇴 Craiova73–11290–294
293🇷🇴 Galati63–10291–295
294🇨🇾 Paphos52–10292–295
295🇷🇴 Botosani30–6292–296
296🇷🇴 Buzau20–5294–298
297🇷🇴 Ploiesti10–5295–298
298🇷🇴 Braila10–3297–299
299🇷🇴 Iasi00–0299–300
300🇨🇾 Larnaca00–2296–300

For the cities on this list

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.

Email us about your city victor [at] defensivepedal [dot] com

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.