How to map Key:smoothness

By starting this thread, I hope to create a community of mappers interested in mapping smoothness and develop a consensus on how to consistently map this key around the world. As with all classification schemes, classification of smoothness is not fully objective and may differ from mapper to mapper. It may even be said that it is not verifiable. However, I think it provides very useful information for map users.

We can develop the consistent mapping of smoothness by:

  • Posting photos of surfaces, discussing them and voting on them

  • Cooperate on adding the best possible example photos to the Key:smoothness and Key:smoothness/Gallery wiki pages.
    Ideally these pages will show high quality example images of surfaces that are smack in the middle of each smoothness category (on the main Key:smoothness wiki page) as well as other typical examples and border cases (good and bad end of each category) for all commonly used surface values (on the Gallery page)

  • Answer questions and offer help

I hope this will be a long thread!


The first image I would like to discuss is this one

How would you tag a highway with this surface, taking into account the descriptions on Key:smoothness?

  • smoothness=good
  • smoothness=intermediate
  • smoothness=bad
  • smoothness=very_bad
0 voters

My reasoning: it’s not good, because this surface would be a very rough ride on a racing bike. The spaces between the bricks are a problem for thin wheels. I use smoothness=good for as-new paving_stones surfaces.
I think intermediate fits well because although there are no repairs visible, the spaces between the bricks themselves are quite wide. This surface is very well passable by city bikes, sports cars and wheelchairs, though it will be a noisy ride. Driving on it with a standard car, I would hardly reduce speed (only to reduce the noise level).
It’s not bad because there are no potholes or other damage and no signs of maintenance.

My tagging of smoothness is focused on inline skating, road (racing) bikes and city bikes.

I would use smoothness=bad if the situation is bad enough that taking a city bike there doesn’t work. In this case the picture seems good enough for a city bike. So at least smoothness=intermediate.

Then the next is, how does it feel on a racing bike. I tend to tag everything with bricks and paving tiles as not suitable for racing bikes (so intermediate) because often cycling there is horrible or for the smoother ones, there is a risk that they get slippery in the rain.

Asphalt usually gets smoothness=good unless it is bad enough that you don’t want to go there with a racing bike.

For smoothness=excellent it has to be smooth asphalt, but also hardly any defects that can trip over somebody on inline skates.

1 Like

I opted for “bad” because I thought of inline skates, and while I don’t have experience with smoothness tagging, I recalled the scale quite demanding for good values.
Looking at the wiki, I think the pictures are not consistent for intermediate and bad,


the paved and unpaved examples show different smoothness for the same value

wiki describes intermediate as defined by being suitable for

(wheels) city bike, sport cars, wheel chair, Scooter and all below

I would not consider it useful for this vehicles (though I have no idea about sport cars)

Note that this gaps are below level of paving blocks.


Yes, the asphalt surface is smoother than the gravel surface. However I think they are still within the same category, with the gravel surface at the bad end of it. There must be better pictures of an unpaved surface that’s a bit smoother than the present one.

I think they are usable, though it won’t be comfortable especially for thin wheels (city bike, wheelchair). smoothness has a weakness that it can be different for different vehicles. The pavement in this poll is especially uncomfortable for thin wheels while a driver of a car with broad tires will hardly notice the unevenness (only hear it). If the unevenness would be in the form of potholes with smooth pavement in between, it would hardly affect bikes (easy to ride around them) and would be more noticeable for cars (more difficult to avoid them).

I’d say (from experience of both) OK but not great for wheelchairs and sports cars. Intermediate makes sense to me.

I wouldn’t. You should be able to map that surface objectively and accurately with a surface= key. Then car, bike, horse and foot routers can treat it according to their own requirements.

Insofar as smoothness= has any value, it’s for reporting condition. For example, “this is an asphalt road but it’s pretty broken up”. It shouldn’t be an all-purpose descriptive tag.

1 Like

I’d put it as bad because to me it looks as rough as a washboarded gravel road.
But after looking again and reading the comments, maybe it’s not as bad as it looks to me. We don’t have many roads likes that here. It looks like it would suck on any bike tho.

I mostly use smoothness on unpaved roads. We have very few here that stay good enough for long to be called intermediate I grew up looking at maps which has passenger car, high clearance, and 4wd roads. Fortunately for me those characteristics are spelled out in the wiki.
bad: normal passenger cars
very bad: high clearance, light duty 4wd
horrible: 4wd
I’ll see if I have some pictures.

1 Like

I wrote “surface”, not surface in the question. Would “How would you tag a highway with this surface condition, …” make it clear enough that I’m not asking about what surface value you would tag it with?

That would be great! I plan to add another table to the Gallery for unpaved surfaces (move gravel/fine_gravel there and add ground and dirt/earth) that will span from smoothness=intermediate to smoothness=very_horrible

I don’t understand why you’d tag it with smoothness= at all. Why do you need to? It doesn’t add anything over and above whatever a correct surface= tag would give. If it was a broken-up example then sure, but this one isn’t.

1 Like

There are different types of paving stones. Some almost don’t have any gaps between the stones resulting in a super smooth surface. Others have large and deep gaps.
surface=paving_stones alone does not give enough information about this.


If you were riding a racing bike, you would want to know about this pavement, wouldn’t you? surface=paving_stones doesn’t tell you if you can ride it or want to avoid it. There are surface=paving_stones highways that you can rollerskate on, and others that would slow you down considerably if you had to drive on them in a car. Routing apps can use this information to recommend a route depending on the vehicle you are using.

I think the value of the smoothness has been discussed before, but if you want to bring it up again, could you please start a new thread?


Regarding the first picture in the thread (paving), I would think it is usable by any car and any motorcycle, most bikes (but those with the thinnest tyres would require to pay a lot of attention, or maybe even not possible to safely use) but not comfortable and seems unusable by skateboard, inline skates or scooter with tiny wheels (like those used by children), or wheeled walking frame as used mostly by elderly people. It is above all a question of wheel diameter and to some extent thickness whether a way is possible to use, how comfortable it is and how “smooth” it will be perceived.

Generally, regular “unsmoothness” like here is better for the road user compared to irregular “unsmoothness” as produced by wear and tear, because you can easier adopt to it and are less “surprised”.

And indeed there are different paving stone values, and subtags, to cater for different types of paving stones.

My point is that a one-dimensional tag like smoothness= is not enough information for routing. If I ride my folding bike along the example you’ve given, it will be uncomfortable. If I ride my gravel bike, it will be pretty rough but tolerable. If I ride my electric cargo bike, which has a front suspension fork, it might be actually ok but I wouldn’t want to do it with a kid in the back.

But you can’t map that to other values of smoothness= on other surfaces. It’s not a linear relationship. You can’t say that “smoothness=bad is always ok on gravel bikes but not on folding bikes”, because it depends on the exact surface. Simply tagging something with surface=paving_stones; smoothness=bad doesn’t give you that information. More detailed surface tagging, however, would.

Yes. I write one. It has over 300 lines of code to parse surface tags (I just checked!), which I suspect is more than any other routing site. I find that ambiguous “scale” tags like smoothness= and tracktype= are a massive headache and produce poorer quality routes - coincidentally I had to add a handful more lines this morning to cope with ambiguous tracktype tagging on certain waymarked cycle routes.

1 Like

Can you recommend something specific that would work for How to map Key:smoothness - #2 by rhhs case?

none of values I see there seem to express relevant info

this part is not so problematic - unless someone advocates for replacement of surface tags by smoothness (which would be silly)

And this specific part does not make smoothness worthless.


In this case I’d be looking for something that conveys there’s a gap between the paving stones.

The wiki defines surface=paving_stones as “The gaps between individual paving stones are very narrow”. That’s clearly not what we’re dealing with here. So I’d be looking for a new tag - either a subtag that says “there’s a sizeable gap”, or a whole new value for surface= altogether.

I’m not aware of any such tag right now, but that doesn’t stop anyone proposing a new one of course!

Sure, but in order to map - or parse - it remotely acceptably, you’re now going to need a three dimensional lookup table where the axes are “surface value”, “smoothness value”, and “vehicle type”. It would be much simpler for both the mapper and the router to just objectively tag what the surface is.


Yes, exactly. When “paving_stones” was introduced, backed by a picture and a description, it was clear this was not to be used for any kind of “surface paved with paving stones” but only for those which were considerably better for cyclists as the already common “cobblestones”, for “smooth paving”. As we already have (unhewn_)cobblestone, sett, paving_stones, concrete_lanes, grass_paver and what not as established surface values, doing it the traditional osm way would likely be to introduce yet another specific surface value for stone paving with large gaps in the surface.

Here’s the original paving stones foto from the wiki:

Some other examples for smooth paving where we use “paving_stones”