Roadway tagging review and advice please

Hi, I’ve been working on validating road names in Franklin County, Ohio (Columbus), and I’ve committed a changeset just now (152438321, OSMCha), could someone please take a look at how I tagged things? I’m working manually, but I plan on going through the entire county and before I make a bunch of tag changes I want to make sure I’m not doing it wrong. Any and all feedback would be great, thank you for your time!

Besides Bing satellite imagery and Bing Streetside, I am looking at two current datasets that each contain relevant road information:

  • The Ohio Department of Transportation’s (ODOT) Transportation Information Mapping System (TIMS) roadway inventory:

    • Select ‘Roadway Information’ and click ‘Road Inventory’
    • Then click the 🛈 button near the top and you’ll be able to click on the map to view the raw info
    • License: ODOT states both on their website and in an email response I got that this info is “for public use” but they offer no warranty. I can’t find a more explicit license.
    • Useful info: This data includes speed limit, surface, number of lanes, oneway-edness, and even physical road and shoulder width for more important roads and some neighborhoods.
    • Last update: June 2023, then it says annually
  • Street Centerlines from the the city of Columbus and the Mid-Ohio Regional Planning Commission

    • License: CC0 1.0
    • Useful info: Besides speed limit and whether a road is paved or unpaved this includes info on sidewalks and cycleways.
    • Last update: Supposedly 2020 but at least some of the data has been updated in the last ~9 months. In some places it appears to be more up to date that ODOT’s information, like having entire neighborhoods built within the past year or so.

All of my edits have been and will be done manually. This data is awesome and with it (and Bing Streetside and the National Address Database) I’ve made thousands of road name corrections in Franklin County over the past three months compared to what was imported into OSM in 2008.

Even so, there are mistakes in these datasets that stick out when you look through them. Like a road with a drop in speed limit for a very short distance before it shoots back up again, or just the wrong number of lanes based on satellite imagery. Or an apartment complex with a posted speed limit below 25 mph that the data doesn’t reflect. That’s why I can’t do anything mechanically and have to keep cross-checking other sources, but otherwise this information has been extremely helpful.

So, thank you for reading, and here are more specific questions:

  • How does changeset 152438321 (OSMCha) look?
  • Is cycleway=track correct for when there’s a separate cycleway running parallel to the road?
  • Is sidewalk=separate overkill when sidewalks have already been mapped separately?
  • Is physical roadway width valuable to include, and how does this tagging look? All of ODOT’s widths are in whole numbers of feet. Should I include 0" in the value? And according to the wiki width:carriageway should be equivalent to just width, but clearer to the fact that it does not include the shoulders. What do you think?

Examples, the widths are either from ODOT, or originally from ODOT but I changed them because their numbers looked off on Bing satellite imagery and measuring in JOSM:

  • way/353241502

    • shoulder:left:width=3’
    • shoulder:right:width=3’
    • shoulder=both
    • width:carriageway=28’
    • width=28’
  • way/353241504

    • width:carriageway=38’
    • width=38’

Last thing, I added and updated short_name where the tag already existed or the road had a cardinal direction in its name. I did not add but also did not remove instances of shortest_name where they already existed.

Thank you!

Looks really nice!

  • Is cycleway=track correct for when there’s a separate cycleway running parallel to the road?

I am not super familiar with cycleway tagging so will leave this to someone else to comment on… seems okay to me?

  • Is sidewalk=separate overkill when sidewalks have already been mapped separately?

sidewalk=separate helps tell routers really aggressively not to route pedestrians down this path. I am not sure if it’s overkill in all situations but I like to add it for completeness and I suspect it helps in some cases.

  • Is physical roadway width valuable to include, and how does this tagging look? All of ODOT’s widths are in whole numbers of feet. Should I include 0" in the value? And according to the wiki width:carriageway should be equivalent to just width, but clearer to the fact that it does not include the shoulders. What do you think?

I wouldn’t include the 0" unless I wanted to extend my declared precision to the inch level. A reasonable interpretation of 7’ is 7’ish but 7’0" has much tighter tolerance during interpretation imo.

I have not ever seen width:carriageway used before but seems fine.

I generally don’t keep names in short_name that differ only in the pre/post expansion but I don’t think that’s wrong necessarily. @Minh_Nguyen probably has a great chunk of text about various circumstances.

edit: I looked though the area in JOSM and left some comments on the changeset out of habit. Sorry to break the conversation into two places…

1 Like

I think that cycleway=separate is intended to be used the same way as sidewalk=separate: as an indication that there’s a separately-mapped OSM way. Whereas cycleway=track is for when there is a physically separated path, but it hasn’t (yet) been mapped as a separate object. So in your case, since the bike paths are individually mapped as their own ways, I would use cycleway=separate, not =track. This would advise users/routers/renderers that they shouldn’t expect to bike directly on the road, but on nearby, separately-mapped infrastructure.

I agree that sidewalk=separate is not overkill: it’s the ‘most-correct’ way to map the situation, although I’ll admit I sometimes forget to include it.

Otherwise your changes look pretty good to me!


Thank you both!! All of that is extremely helpful!

“Public use” is difficult as the meaning can be quite broad. In order to copy the data into the OSM data we need a clearer definition like a license which is complimentary with ODbL or an written waiver.

Regarding tagging most has been already written. One more aspect to look at with separately mapped side paths is to add enough connections to the main road for routing where you can cross the road at intersection or where a path/footway joins the road. You can use path/footway/cycleway=link for these short connection ways.

1 Like

sidewalk=separate is EXTREMLY valuable in my use case. I track streets that a pedestrian has run/walked, and this tag tells me that a pedestrian can run along this street even if there are other attributes that indicate that pedestrian access isn’t allowed.


I don’t think “public use” has any legal meaning in the US and may not be the same as “public domain.”


Thank you for all of this feedback, I really appreciate it.

I understand what everyone is saying about “publicly available” ≠ “public domain”. Here’s the text attached to the data from TIMS (link):

The information contained within this dataset is maintained by the Ohio Department of Transportation (ODOT), and is deemed to be public information. While every effort is made to assure the data is accurate and current, it must be accepted and used by the recipient with the understanding that no warranties, expressed or implied, concerning the accuracy, reliability or suitability of this data have been made. ODOT, its agents, and the developers of this data set assume no liability whatsoever associated with the use or misuse of the data contained herein.

Looking on the wiki at Contributors#Ohio, some of the entries are similar to this. Do I need to get more explicit permission? When I contacted ODOT in May, they responded with:

All the data published in TIMS is available for public use. How the general public chooses to use this information is not for ODOT to decide. While we do our best to maintain the data published in TIMS, the Ohio Department of Transportation provides no warranties, expressed or implied, concerning the accuracy, reliability, or suitability of this data.

I’ve stopped editing for now. What should I do before continuing?
Thank you!

this is amazing, using official sources for road data makes a lot of sense.


This abandoned boundary import proposal came with written confirmation from ODOT that all TIMS layers are “available for public use, and no copyright applies”. I take that to mean they consider it to be in the public domain. ODOT has a more generous interpretation of the state’s sunshine laws than I’ve seen from local governments in the past, but I’m not one to complain.

Most of the occurrences of short_name and shortest_name that you’ve encountered in the Columbus area are a very old experiment that predates widespread use of short_name in OSM. Routine abbreviations went in short_name and the most important part of the name went in shortest_name (typically corresponding to tiger:name_base).

As I recall, it was an attempt to preserve distinctions that were lost after the U.S. community reached a consensus to unabbreviate words in TIGER-imported road names. However, the short_name and shortest_name tags appear indiscriminately, not just on roadways that would otherwise have ambiguous names. This experiment never gained traction anywhere beyond Central Ohio and somewhere in Wisconsin. I don’t think anyone is keen on preserving it at this point.

There is a newer, alternative approach to clarifying the ambiguous names: name:etymology with name:etymology:wikidata groups and elaborates upon the words that form the main part of the name. For example, in the Cincinnati area, there’s a West North Bend Road that we’ve tagged with name:etymology=North Bend, referring to the village by this name. An etymology would mainly be for the mapper’s edification, but a geocoder could have a heuristic that considers it when tokenizing the name.

Yes, the road-related layers in TIMS are generally reliable along state highways, but some of them are significantly less reliable along other roads. Ohio state law distinguishes between state-maintained state highways, which only exist outside corporation limits, and state-designated state routes, which continue through a city or village on locally maintained streets. Counties are required to certify county, township, and municipal road mileages with the state annually, but I don’t think this certification includes secondary attributes like speed limits.

Other TIMS layers have important caveats too: the proposed boundary import was abandoned in part because the “township” boundaries in TIMS correspond to historical or theoretical boundaries that would be accurate if cities and villages could never withdraw from a township.

1 Like

That’s so perfect for my purposes, thank you Minh!

That makes sense. Looking at these examples, if you have time, should any of them keep short_name or shortest_name? (Some of them I’ve already touched and just tried to to keep consistent with what I was seeing at the time.)

Example: 1 2 3 4 5 6
Way: way/592256467 way/1123598392 way/592940683 way/847831885 way/1286714360 way/21409514
name East 17th Avenue West Lane Avenue West North Broadway Bishop Doctor George M Steele Lane North Roosevelt Avenue Saint Clair Avenue
short_name 17th Ave W Lane Ave W North Broadway Bishop Dr George M Steele Ln N Roosevelt Ave St Clair Ave
shortest_name 17 Av Lane North Broadway Roosevelt
My notes: Probably overkill? Definitely overkill? Maybe not overkill? The roadsigns don’t appear to ever abbreviate the “North” This one already has name:etymology:wikidata=Q464245

Thank you thank you!

Man, the directions in names around Columbus are almost as bad as the ones in New Orleans…

Apparently it’s named after Columbus’s Northside, so name:etymology=Northside, but that won’t help with any heuristics for keeping “North” unabbreviated. This abandoned proposal would’ve added name:prefix=West, so that a data consumer could limit the abbreviations to just that prefix. But I don’t know of any data consumer that actually does that.

“St. Clair” is a unique case. When it refers to Clare of Assisi, it would be spelled out like any other saint’s name. But most occurrences in Ohio, like this one, refer to territorial governor Arthur St. Clair, whose last name is a corruption of Sinclair. “Saint Clair” would be a misspelling. If we’re concerned about data consumers mispronouncing it as “Street Clair”, that would be a job for name:pronunciation=*.

The rest of the examples seem like overkill to me, but it sure would be nice to have a more certain answer for structuring road names when we feel it’s important.

1 Like

I made another change. I’m not specifically asking for anyone to look at it this time, but I thought I’d post it anyway. I decided to take short_name and shortest_name off of ways unless the way has a cardinal direction in its name that isn’t a prefix or a suffix. Though I don’t think there were any of those in this area. Thank you all!

1 Like