OpenStreetMap logo OpenStreetMap

Coverage of Sidewalks in Germany

Posted by kumakyoo on 23 September 2025 in English.

As I’m interested in pedestrian infrastructure, I asked myself what percentage of all sidewalks in Germany has already been mapped.

It is difficult to answer this question because I do not know the total number of sidewalks in Germany. However, it is possible to change the question slightly to make it easier to answer: How many streets in Germany contain information about the presence of sidewalks?

This is easier to answer, because we can assume that all streets of Germany have already been mapped. Therefore, to answer the question, we just have to count the streets that contain the desired information.

 

Sidewalk tags

Currently, four tags are in use for mapping sidewalks: sidewalk, sidewalk:left, sidewalk:right and sidewalk:both. The tag sidewalk was introduced around 2010 and is still widespread, accounting for around 80% of all sidewalk tags:

distribution of sidewalk tags in osm as of 19th of September 2025

The other three tags were added in January 2021. Normally sidewalk:left and sidewalk:right should be used together to provide a complete view of both sides of the street. The tag sidewalk:both is just a shortcut when both tags have the same value.1

Speaking of values: These three tags can take the values no, yes and separate, meaning in order: There is no sidewalk, there is a sidewalk, and there is a sidewalk which is mapped as a separate highway.

In addition to these three values, the sidewalk tag can take the values both, right, left and a deprecated synonym of no called none. Only the values both and no privide a clear picture of the intended meaning when mapping.

The values separate and yes do not distinguish between sidewalks on both sides and a sidewalk on one side without specifing the side.

Likewise, the values right and left are ambiguous: They obviously state something about the sidewalk on one side, but they may or may not imply what is on the other side of the street.

To make sense of this, I started thinking in terms of sidewalk:left and sidewalk:right. Unlike the other two tags, these give information on exactly one real object. If the sidewalk tag is given, mapping of both and no to sidewalk:left and sidewalk:right is straightforward.

If the sidewalk has one of the values left and right, I use them to define one of the two tags, leaving the other one undefined.

If the value is separate or yes, I’m using a new value, maybe, for the sake of counting.

Finally, I consider the data invalid whenever a sidewalk or sidewalk:both tag is present alongside any of the other tags. (Fortunately this happens very seldom.)

 

The Art of Counting

I ended up with the following diagram, using this. (red: yes, green: no, yellow: separate, cyan: maybe, purple: invalid)

first try of counting sidewalks

More than 90% are missing? I expected a large number, but this is unbelievable. On second thought I realised I had made a mistake: I counted the information on sidewalks for all highways, but this cannot be expected for many of them, such as https://wiki.openstreetmap.org/wiki/Tag:highway=footway.

So I recounted, this time only considering highways with value primary, primary_link, secondary, secondary_link, tertiary, tertiary_link, residential and unclassified. This time I got the following:

second try of counting sidewalks

This looks a little bit better, but it still isn’t, what I was looking for. After thinking about it some more, I realised that I’m actually interested in the number of sidewalks in urban areas. Here I counted everything outside of town too.

Unfortunately, OSM does not provide direct information on urban areas.2 But luckily, I wrote a rather complicated program a few years ago to estimate these areas using other OSM data. Reusing the results of this program, I created the following diagram:

third try of counting sidewalks

It’s not much better. About 2/3 are still not mapped. I made another mistake, though: I counted OSM objects instead of street kilometres. This means that a very short piece of a street counts the same as a very long one. I therefore ran the program again, this time measuring the lengths of the ways, and I got this final diagram:

distribution of sidewalks as of 19th of September 2025

The result is worse than what I got before: 3/4 of all urban sidewalks have not been mapped yet!

 

History of the Sidewalk Tag

Is the mapping of sidewalks stalled? Or did it just begin recently? I took some OSM data snapshots from the past to get some idea how the mapping of sidewalks developed over the years. This is the result:

development of sidewalk mapping

It’s clearly visible that the introduction of the three new sidewalk tags in 2021 caused an increase in sidewalk mapping, but this increase already starts to decline again, long before we got near 100%.

 

Missing Feedback

Well, the question now is, why are still so few sidewalks mapped? I’ve got a theory which, I think, is quite convincing: Mappers don’t receive any feedback when they map sidewalks.3 OSM Carto (the main map) doesn’t show this information, nor any of the other maps featured on the OSM main page.

Also, pedestrian routers do not rely on these tags, because so many are missing; they also route on streets without them. Thus one doesn’t notice if the tag is there or not. It’s a vicious circle.

What we need, is some feedback. Ideally, OSM Carto would show this information, but I fear, this will not happen. The goal of this map isn’t to show all mapped features, but to provide an all-purpose map.

A pedestrian map on the main page would also be great, because there isn’t one, and it would make sense to show the sideway tags on such a map. However, I’m not aware of any effort to generate such a map. It might take too long until this happens.

So, at least those of us, who want to add this information need something else. As far as I know, Overpass Turbo is updated in realtime, which makes it a perfect instrument for immediate feedback. Thus I created a query: Overpass Turbo query showing missing sidewalks. You can use this query on your favourite places to see where sidewalks have not been (fully) mapped yet.

Here an example showing the area around Bad Godesberg in Bonn:

example output of Overpass Turbo on missing sidewalks

 

Some Additional Pointers

  • I published the program I used for counting on GitHub.

  • I started writing this blog post about a year ago, but for unknown reasons, I left it unpublished until now. In the meantime, Dr. Roland Olbricht gave a talk on this subject on FOSSGIS 2025 conference (in German). He too realised that information on sidewalks is often missing. However, I do not agree with all of his conclusions, particularly his view that the value separate should no longer be used.4

 


  1. I dislike the use of sidewalk:both, because I strongly prefer 1:1 mappings between real objects and OSM data. The tag sidewalk:both is a 2:1 mapping that increases the workload for consumers of the data. However, it is still much better than using the problematic sidewalk tag. 

  2. Actually, the idea of “urban areas” is a mistake in itself. Imagine two streets crossing with a bridge. It is possible for one to be urban and the other not. It would be better to decide for each street separately if it is urban or not. I think, this approach is also not easy to program and I haven’t found the time to give it a try yet. Thus I’m sticking with urban areas - it’s better than nothing. 

  3. If you map sidewalks as separate footways they will appear in OSM Carto. However, the corresponding sidewalk tag may be missing or incorrect. 

  4. In his talk, Roland gives an example of a mapper misunderstanding the meaning of https://wiki.openstreetmap.org/wiki/Tag:sidewalk=separate, and states that there are more such examples, rendering the value useless. He recommends using https://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalk instead. Unfortunately with https://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalk alone, you still do not know, where the sidewalk is nor whether it has been mapped separately or not. (But of course, as an addition https://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalk is fine.) However, this information is important for real pedestrian routing (with “real” I mean routing on the sidewalks instead of routing in the middle of the street). In my opinion, the meaning of the value separate is quite clear: there is a sidewalk and it has been mapped separately. In the counter-example, the mapper used this value for a footway that ran parallel to the street but was not a sidewalk. 

Email icon Bluesky Icon Facebook Icon LinkedIn Icon Mastodon Icon Telegram Icon X Icon

Discussion

Comment from alan_gr on 24 September 2025 at 07:25

Interesting analysis, thanks for sharing. I wonder if another reason for low mapping levels is that mappers think there are “obvious” defaults, e.g. tagging a residential street with both sidewalks feels redundant if 95% of residential streets in a city have two sidewalks, and tagging that a rural road has no sidewalks feels equally redundant in areas where nobody would expect them to have one.

I don’t know if you are aware of OpenStreetBrowser.org, it shows a lot of detail about sidewalks in the Transportation -> Walking -> Footways layer.

Comment from kumakyoo on 24 September 2025 at 15:16

Thanks for pointing me to OpenStreetBrowser.org. I didn’t know about this tool.

Concerning “obvious” defaults: I think, in rural areas I would fall in this trap too. Roland goes even further in his speach: He ignores residential roads on purpose, because the sidewalks there are “unimportant”, which leaves more time to do the main roads. For me, this doesn’t feel right. I’d prefer to complete an area at once.

Comment from SK53 on 27 September 2025 at 08:07

I never followed the rationale for deprecating sidewalk=none. Generally no as a tag value is a boolean, whereas none.always represented one-off the four common states of a road wrt to presence of sidewalks. Of course OSM has free form tagging so people are perfectly entitled to mix types in tags, but I have a sneaking feeling it was because no and none were seen as synonyms.

Comment from Niquarl on 29 September 2025 at 01:54

Hello, interesting to see how few sidewalks are mapped. I personnaly would also default to not adding the negative keys sidewalk=no, especially for rural roads where you could safely walk on the side of a wider road (not necessarily a shoulder..) or what I believe in English is called a verge.

Have you heard of Sidewalker it seems like you might enjoy that. Although, that tool shows all footways and not just sidewalks despite the name, and prefers separately mapped sidewalks to tags added to the road, wich I personnally am not a fan of… Although I understand separate mapping is better for accessibility as you can add surface, width and smoothness tags then…

Comment from mottiger on 1 October 2025 at 05:33

If you are mapping in JOSM you may want to use some filters. I personally use highway = * with the [ ]E [ ]H [ ]I checkboxes active. And at the same time a big filter: “sidewalk:both”=* OR (“sidewalk:left”=* AND “sidewalk:right”=*) with [ ]E and [ ]H checked.

With these two filters I see just highways and as soon as I completed the information about the sidewalks, they disappear.

And I use the Map Paint Style “Sidewalks and footways (with knobs on)” for a nicer representation in JOSM.

Comment from sosquqer on 2 October 2025 at 14:29

Why are you only considering sidewalk tag on the road itself but not a separate way with highway=footway + footway=sidewalk combination? Is there a reason to prefer former to the latter?

Comment from kumakyoo on 2 October 2025 at 19:10

@Niquarl: Thanks for pointing me to Sidewalker. I didn’t know about it. Good tool!

Comment from kumakyoo on 2 October 2025 at 19:18

@sosquqer: I actually prefer https://wiki.openstreetmap.org/wiki/Tag:highway=footway + https://wiki.openstreetmap.org/wiki/Tag:footway=sidewalk over any attached solution.

Why didn’t I count them then? Well, while it is possible to count the mapped sidewalks it is not possible to count the ones, which have not been mapped. But for knowing a percentage, I need this second value too. That’s all.

Additionally: The highway they belong to, should have one of the sidewalk-tags with value separate. So in a way, they are still counted.

Comment from sosquqer on 3 October 2025 at 09:23

I guess my question comes down to “should the sidewalk be considered missing if the road have a dedicated footway near?”.

I not an experienced mapper and to be honest don’t really understand the purpose of a sidewalk tag on a road with a dedicated footway mapped close to it. According to the wiki the main advantage of the sidewalk tag on a road over the dedicated footway is routing by the road name. But wouldn’t the dedicated footway be preferred for routing over the road with a sidewalk tag if both are present thus eliminating this advantage? What is the purpose of tagging the roads then?

Comment from kumakyoo on 4 October 2025 at 05:04

@sosquqer: It’s a rather complex theme and I do not understand every aspect, too; probably no one does. That said, I’ll try to explain, what I do understand:

  • Essentially, there are two ways of mapping sidewalks: as tags on the roads or as separate ways. Currently, there is no agreement on which is better. From my perception currently most mappers prefer separately mapped ways on larger streets and tagged sidewalks on smaller roads. (This is not my opinion, I prefer separate tagged sidewalks on all roads.)
  • If you map a sidewalk separately and do not add a tag on the main road, users of StreetComplete will be asked, if the street has got sidewalks. They will answer yes and then you’ve got both: Tagged and separate sidewalks. Hence the value separate. StreetComplete now knows, there is a sidewalk, and will not ask. (Same is true for other applications.)
  • Pedestrian routers need to use routing in the middle of the street, whenever separately mapped sidewalks are missing. They even have to do this, when there is no information at all, assuming, that it is just not mapped yet. Without such assumptions pedestrian routing is not possible. (It would be possible if most sidewalks had been mapped.) If the streets contain no information whether there is a sidewalk separately mapped, such routers might use the middle of the street routing on such streets despite a separately mapped sidewalk being there (for example, because it’s shorter).

Log in to leave a comment