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:

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)

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:

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:

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:

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:

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:

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
separateshould no longer be used.4
-
I dislike the use of
sidewalk:both, because I strongly prefer 1:1 mappings between real objects and OSM data. The tagsidewalk:bothis a 2:1 mapping that increases the workload for consumers of the data. However, it is still much better than using the problematicsidewalktag. ↩ -
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. ↩
-
If you map sidewalks as separate footways they will appear in OSM Carto. However, the corresponding sidewalk tag may be missing or incorrect. ↩
-
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 usinghttps://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalkinstead. Unfortunately withhttps://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalkalone, you still do not know, where the sidewalk is nor whether it has been mapped separately or not. (But of course, as an additionhttps://wiki.openstreetmap.org/wiki/Tag:foot=use_sidewalkis 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 valueseparateis 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. ↩
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=sidewalkover 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:
separate. StreetComplete now knows, there is a sidewalk, and will not ask. (Same is true for other applications.)