Improving mapping of minor roads in India


In India we use highway=trunk,primary,secondary,tertiary,residential,living_street,service. highway=unclassified is used, but only to indicate that a road is missing its classification (which is incorrect, since unclassified is for minor roads. highway=road is the proper way to tag that a road doesn’t have a classification). I propose that we introduce unclassified into the road network. In the hierarchy, it would be trunk > primary > secondary > tertiary > unclassified > residential. The main advantage of adding unclassified would be better tagging of industrial areas. Many industrial areas have roads that would best fit under residential roads in the current classification system, but have too much traffic to justify that classification. This is particularly a problem for cycle routing, since cycle routers assume residential roads are safe for cyclists. Further it would help with road classification in larger business parks. Right now with everything tagged as highway=service within business parks, its not clear which roads are driveways around buildings and which are roads to move traffic around the business park.

To summarize:

  1. Tagging industrial roads as highway=residential causes issues with cycle routing
  2. Tagging all private roads as highway=service is confusing and doesn’t properly distinguish roads
  3. Tagging some roads as highway=tertiary would be inappropriate since they don’t offer the level of service expected from a tertiary road (might not be wide enough, lower speed limits, etc.)

Solutions would be

  1. Use unclassified to tag roads that see more traffic than one would expect in a residential road.
  2. Also use it on ways where the road doesn’t see enough traffic to justify a tertiary tag.
  3. Don’t set all roads with access=private to service. service should be reserved for roads that actually provide access to services.

The wiki explains it well: Tag:highway=unclassified - OpenStreetMap Wiki

An example of such tagging - van Houten industriepark: Way: ‪van Houten Industriepark‬ (‪6319904‬) | OpenStreetMap


I would strongly suggest against using highway=unclassified in Urban Areas.

Based on your post, I feel that you are solving one problem by causing another one.

If you have an Industrial road, it shouldn’t be tagged as highway=residential; Maybe highway = tertiary or service is better.

Tagging a road as highway=service does not mean that it is private; That should be left to the access tag

I don’t know what you mean when you say that tagging ‘highway=tertiary’ would be inappropriate?
The expectation of highway classification being some absolute, objective criteria just doesn’t work in our country.

Have you seen most of the National & State Highways in India? I know several within 15 km of me, that are so porthole ridden and narrow, that you can’t cross them comfortably even at 25 km/h

1 Like

highway=service is for driveways, not for streets. It is meant to map roads that provide access to a service (like a fire driveway, a parking isle, or an access road inside a petrol bunk). Its not for tagging minor roads. highway=tertiary generally implies a level of service that many minor roads don’t provide. The road classification<->osm mapping would look like this:

Major arterial - primary
Sub arterial - secondary
Major collector - tertiary
Minor collector - unclassified
Local street - residential
Services - service

Currently we don’t have any tag for minor collectors. Adding highway=unclassified would be inline with how its used in other countries like UK and the Netherlands. The name comes from the term used on UK maps, but it just means minor road. As I said, this classification is more useful for cycle routing, and inside business parks, where we currently incorrectly tag all roads as service (I suspect its borrowed from the apartment complex tagging scheme).

I mean that the road is technically a collector but isn’t designed for high volumes of fast traffic, vs a major collector. This is usually due lots of driveways opening up onto the road or any other design issue.

As an example this way: Way History: 29492366 | OpenStreetMap would be tagged as unclassified - it is wide and allows for more traffic to flow through than a residential road, but at the same time clearly isn’t designed to be a bypass to the signal at the nearby junction. Just upgrading it to tertiary is inappropriate since it isn’t of equal or higher classification to the road next to it. Setting it to residential will incorrectly cause cycle routers to pick this road, despite the fact that it sees a lot of industrial traffic.

Highway classification has nothing to do with the maintenance of the road or its width. An NH is an NH regardless of whether its surface is worse than the surface of the moon. It should always be tagged as highway=trunk. For surface details there’s the surface tag surface=bad, which some routers do respect. A typical 12m wide 2 lane NH will carry more traffic, much faster than a 15m wide minor collector inside a city.

1 Like

highway=unclassified is used primarily to distinguish rural from urban roads. One of my main arguments against using highway=unclassified as a tag for 1st degree collector roads is that it introduces ambiguity.

As for cycle routing, adding bicycle=no would solve the issue, though I would advocate against changing core data to circumvent engineering problems. A smart routing engine should take into consideration land use while routing. If rider safety in industrial areas is a concern, then there should be a provision within the app to allow users to exclude industrial areas from routes, similar to how you would typically get options to avoid highways and tolls.

I wrote a diary on this topic a while back, with my suggestions on ranking and tagging roads: cartofy's Diary | Observations on Indian Roads | OpenStreetMap

1 Like

I’m not seeing how its ambiguous? In both rural and urban contexts it will be above residential roads, and below tertiary roads. No ambiguity at all, and AFAICT its how other countries also use the tag.

bicycle=no implies it is illegal for bicycles to use the path, which is incorrect. It is simply less preferred if alternatives are available.

This is improving accuracy of the data, not circumventing engineering problems.

Landuse does not tell you about the road classification. There can be low traffic residential roads adjacent to industrial lands, and I can point to hundreds of such examples.

The bottom part of this table is precisely what I’m trying to improve. Previously India was following a more UK style scheme, where unclassified sat above residential, and service was used only to tag driveways. This is also what most routers and renderers assume. But recently Indian mapping has decided to switch to this new scheme where unclassified is all but removed, residential is overloaded, and service now takes on part residential role, but only when there’s a gate. Which is actually more confusing. Roads inside gated communities are still residential and should be tagged as such. service should be for driveways and building access roads, and unclassified would be useful when its necessary to distinguish between minor and major collectors.

1 Like

highway=service is for driveways, not for streets. It is meant to map roads that provide access to a service (like a fire driveway, a parking isle, or an access road inside a petrol bunk). Its not for tagging minor roads.

for driveways there is service=driveway, but there is also service=alley which I think would fit to the description „minor road“

Yes, highway=service + service=parking_aisle is tagged on “roads” which allow access to an amenity=parking lot full of parking spaces (and the “roads” between the rows of parking spaces). Similarly, service=drive-through is tagged on the way (also tagged highway=service) representing the pavement yielding access to a drive-through window (like a fast-food restaurant that has such a service).

A scheme which “all but removes unclassified” seems doomed to failure, as unclassified is an excellent choice for a road which is not “classified” tertiary or higher, but neither is it residential (which should really only be used on roads which actually are to or abut residences). If you can, please encourage unclassified in preference to residential if the road is NOT residential. There is a distinction between residential and driveway: the former gives the public access to the (residential) property, the latter is essentially ON the private property and usually continues access (privately, or for deliveries) to the front door, garage or rarely, mailbox.

highway=service is not “automatically” for “minor roads,” as this tag is a broad category of roads which are further denoted with several “combination” service=* tags. (Our wiki is helpful). A service=alley is a quite specific kind of road, not just any “minor road.” However, saying that an unclassified road is “minor” is largely correct in virtually all circumstances I can imagine, so please use tertiary, secondary, primary… for “more major.”


Thank you for the nice explanation @stevea ! @Devdatta @cartofy London and most other cities already use unclassified, even in urban contexts, to mark minor roads: overpass turbo . Using unclassified like this is expected, and will not cause new problems, and more importantly will help with routing in many cases.


The fact that “unclassified” itself is an ambiguous term which is mostly used to describe something that has a lot of unknown’s about its functionality, access, speed, traffic etc. Getting highway = unclassified up on the hierarchy will further cause a lot of disruption across the understanding of OSM contributors and theirs edits.

“unclassified” is called that because its name comes from what older paper maps used to call minor roads, I.e. roads that were not important. There is no confusion in its usage, and it was already used in India before. Its also actively used across the world. OSM being an older project and an international one will always have awkwardly named objects, but that shouldn’t stop us from using them when appropriate.

1 Like

The fact that “unclassified” itself is an ambiguous term which is mostly used to describe something that has a lot of unknown’s about its functionality, access, speed, traffic etc. Getting highway = unclassified up on the hierarchy will further cause a lot of disruption across the understanding of OSM contributors and theirs edits.

Nope. highway=unclassified has been used since the earliest days of OSM to mean “minor road”. Yes, it’s a mildly ambiguous word - like many in OSM are - but people have had ~19 years to get used to it and it hasn’t caused major problems.


Things that “are a road, but we’re not sure what sort” can be mapped as highway=road. There are fewer of them in OSM than there once were, as even poor quality aerial imagery can help distinguish road types. Here are some.

highway = road as OSM describes it, is a temporary tag and such elements until it has been confirmed by some mechanisms such as surveys etc… should not be considered as road. adding such as highway = road will further cause even more confusion as to whether they are part of the road network or not.

1 Like

@SarangK SomeoneElse is only pointing out that we already have a tag for “road which needs to be classified properly”, i.e. highway=road. Removing highway=unclassified from the road network classification, because it might be confused with highway=road, seems unnecessary, especially when its not an issue elsewhere across the world. highway=road will continue to be used in the same way the wiki is describing it.


The mapping of highway=service in India is astonishing:

  • Worldwide 41% of all highway=service are additionally mapped with service=driveway or parking_aisle or alley.

In India this is in less than 2% the case.

  • Extensively frontage roads have been mapped with highway=service. I made now corrections for NH1 to NH50.

  • Urban areas are also special:

In Mumbai City there are 2726 roads with highway=service, but only 122 with additional driveway or parking_aisle of alley.

It seems to me that highway=service is used as a general road classification between unclassified and track (often by MAPWITHAI-mappers).

This is most likely due to the colloquial term for these roads being “service roads”. I try to correct these whenever I spot them.

Many Indian cities are opting to allow private developers to develop large swaths of land - this means many road networks are private, and it isn’t always immediately obvious what the internal road network classification is. Many of these have been tagged with highway=service. I’ve begun slowly retagging these as highway=residential or highway=unclassified around Bengaluru (with appropriate access=*).

1 Like

Thanks for your help.

There are also thousands of short roads beginning on a NH which are mapped by MAPWITHAI as highway=service. In many cases highway=track (kucha road) is better.

I don’t have enough knowledge to argue strongly about India, but I can try to contribute by speaking broadly about my experience trying to adapt Brazil’s reality to OSM’s global definitions.

highway=road is intended for short-term temporary use only and is treated as an error by tools to encourage mappers to decide on a classification. It is mainly used by mappers who are unsure to tell other mappers that someone with knowledge or access to information should do the classification (which should be done based on the way’s importance and main use).

highway=unclassified as a “quaternary” was proposed in the past, but fell into disuse, and today every tool I know treats highway=unclassified the same as highway=residential. Both correspond to what is commonly referred to as local road or local street in functional classification, with the only difference being that highway=residential applies to ways leading to residences. This is partly why highway=unclassified is not very common in cities, but it is quite common outside of them. In cities, this makes highway=unclassified almost exclusively used in non-residential areas, such as industrial areas.

For large business parks, one can use highway=unclassified in combination with access tags. Very, very large business parks (the size of a town) may even have their own internal collector ways, which would then be private-access highway=tertiary. It’s very rare, but it’s possible.

The risk I see is that people may use this classification for busy residential streets as well, which is probably undesirable in a number of cases.

A tertiary road usually has collector function in cities and regional collector function outside them (although this varies greatly from country to country, including the nomenclature of functional classes and road types; it is best to try to approximate the concepts and definitions, not the names). highway=tertiary is not defined based on absolute traffic volume, but one may argue in terms of relative traffic volume in a local context (e.g. a radius of a few kilometers) when trying to decide the relative importance of these roads. If classification work is still at an early stage, it is much easier to first classify the entire highway=secondary network and above in an area before starting work on the highway=tertiary network, thus establishing a sensible road hierarchy.

In the case of Brazil, urban networks are still being revised to more closely follow a functional approach, while regional road networks are not mapped in terms of regional function, but in terms of settlement hierarchy, so at this level it corresponds more to the importance of the highway than to its function, which is ok and produces a readable map at various zoom levels. And by adding maxspeed=*, this approach also works well with intercity routing. Compared to, say, France, which has a similar arrangement of federal and regional road networks, in Brazil there are some important regional (state) roads that complement and connect to the federal system like a puzzle, and there are some federal routes that are unimportant and nearly abandoned, so the approach we adopted corresponds more to reality than, say, the other rules we tried based on the administrative or physical characteristics of these roads.

Highway classification is a complicated and often vague subject, it can take a while for all the problems to be resolved (it took us 7 years of discussion in Brazil). Just keep in mind that, while a perfect match is generally impossible, the closer local communities’ definitions and practices are to those of the global OSM ecosystem, the more the local users will be able to readily reuse existing tools.

1 Like

Yes, this is the intended use in India as well. I didn’t explain it properly.

Querying highway=unclassified in London and Paris brings up hundreds of roads. It doesn’t seem to be disused.

London is using it as a Quaternary road or a local street with high traffic.

This is all exactly how roads are mapped currently in India. Road network classification is based on function, but in many organic street patterns it can be difficult to tell what the intended road usage is. Traffic volumes act as a proxy to the intended use, since for e.g. a collector will almost always have less traffic than a primary or secondary road. The problem is that there is still a significant gap between what current routers like OSRM expect with highway=tertiary vs what the street network provides, especially in urban contexts. In India we really do need a tag for “minor collector” or for local streets in industrial areas.

That’s fair enough.

To me it appears that, with the exception of a few typical special cases (e.g. in and around parks with no residences), highway=unclassified is being used as described in UK tagging on the wiki: for minor shopping streets (very common in the City of London), roads in commercial districts (analogous to business parks) and public roads in industrial areas. This is similar to what you propose for India, and I think it should be ok, but just for clarity, note that the criterion is not traffic density but the surroundings of the way, and it’s also not much like a quaternary functional class, in which case we would expect a more uniform distribution throughout the urban area forming a quaternary network, as with highway=tertiary and above.

Here in Brazil, even in busy city centres, many commercial establishments are located in mixed-use buildings, with residences above or further back from the stores, so the distinction is a little blurred. Furthermore, our suburbs are full of small shops and services here and there, so perhaps it only makes sense to follow the London convention on streets that have a predominance of shops at the front of buildings, but it could also be argued that many of these areas are still primarily residential.

1 Like