Express lanes tagging

Hi all,

I am seeking clarification on the correct tagging for express lanes in the USA. Specifically, can I use hov:lanes=* and toll:hov=yes/no (depending on whether the HOV lane is tolled) to tag express lanes? Additionally, in scenarios where there are two lanes and both are designated HOV lanes, should I use hov:lanes=designated|designated?

I am referring to the source: https://wiki.openstreetmap.org/wiki/Key

Thank you for your guidance.

Yes, see this previous discussion:

Technically, that would be correct, though routers are more likely to understand hov=designated in the case where the entire roadway is for HOVs only. Think of *:lanes as the syntax for varying the value from one lane to another.

Thank you for your suggestions.

Some of my changes were reverted when I used these tags. Do you suggest creating an OSM wiki page to standardize this tagging practice?

Can you link to the changeset, in case there’s any relevant context that I’ve overlooked? Thanks!

1 Like

Here is an example of changeset that got reverted saying “revert reversed motorway ways”: Way: ‪I 25 Express Lanes‬ (‪653773255‬) | OpenStreetMap

and these are the one which didn’t get reverted:

@Spaghetti_Monster made a few edits with that changeset comment the other day. At a glance, I don’t see any motorways being reversed by either of you. That said, it looks like you had set hov:lanes=1, which is incorrect – hov:lanes=* would be set to a pipe-separated list of HOV restrictions by lane, not the number of HOV lanes.

Way: ‪I 70‬ (‪617948535‬) | OpenStreetMap is incorrect because there are two lanes, but hov:lanes=* lists only one value. A router is likely to ignore this data as invalid. Way: ‪Bayshore Freeway‬ (‪24054675‬) | OpenStreetMap is correct because it lists five values (of which four are empty).

Yes, there are quite a lot like this.
You should get a visual Missing <tag>:lanes:forward values with one of the two “Lane and road attributes” styles and Validator warns about it with Number of lanes greater than *:lanes

@DimplePatel: It would be nice if you’d take another look at your modified ways.

To answer your question from comment 3 on Changeset: 153440377 | OpenStreetMap :

I have a question regarding the correct tagging for scenarios where there are two lanes and both are designated HOV lanes. Should I use hov:lanes=designated|designated in this case?

If all lanes are designated a simple access tag(e.g. hov=designated is enough and hov:lanes=designated|designated does not give any more information unless some other *:lanes access tag is used like access:lanes=yes|no or motor_vehicle:lanes=private|yes.

Thank you for the feedback. I appreciate the clarification on the correct usage of hov:lanes=*. I understand now that it should be used to specify HOV restrictions by lane, using a pipe-separated list, rather than indicating the number of HOV lanes.

So I would prefer to use hov:lanes=designated (if there is only one lane which is part of express lane) and hov:lanes=designated|designated (if there are 2 lanes and they are part of express lane)

Also what about this scenario, Way: ‪I 605 HOV‬ (‪781574732‬) | OpenStreetMap even this got reverted.

I am still not sure if you have full understood the two different systems:

  • lanes:* is the simpler one and just tells you how many lanes are designated for a special transport mode/type. Therefore is uses integers as values like lanes:bus=2 or lanes:hov=1. It does not tell which lanes is a bus or hov lane.
  • *:lanes[:*] is a complete picture of the lanes including even bicycle lanes and tells you exactly the tags for the lanes, like surface:lanes=asphalt|concrete|asphalt|paving_stones ( a road with four lanes and from left to right different surfaces per lane).
    • The value is a pipe-separated list with a value for each lane with empty values if there is nothing specified or the simple tag without the :lanes[:*] extension. The number of values have to be at least as many as specified in lanes[:*], e.g. for a way with oneway=yes, lanes=3 you need at least three values (two pipes).

I am not sure I understand your situation completely. If only one of the two lanes is designated for hov, you tag the designated lane with designated and leave the other value empty, like hov:lanes=designated| if the left lanes is designated. If express lane and hov lane are no equivalents then you need another key for express.

Adding toll:hov=no to a way without toll[:*]=yes is not wrong but useless.

1 Like

To clarify, if there’s only one lane and it’s reserved for HOV, then hov:lanes=designated is redundant to hov=designated. This way got reverted because it already had hov=designated. hov:lanes=designated was technically correct but unnecessary.

In this context, I believe “express lane” refers to an HOT lane, that is, a lane that requires both HOV and tolls at the same time. At least that’s the case for the lanes in the San Francisco area that were mentioned earlier.

1 Like

I see. In this case you would probably need toll:lanes and hov:lanes plus toll:hov=no if you have certain lanes which are only allowed for hov or by paying toll but some lanes do not have any requirement/restriction.

Actually the tags of the way look strange. Maybe I am wrong but shouldn’t it just be toll=yes, hov:toll=no. motor_vehicle:lanes=no plus hov:lanes=designated should be deleted.

The Bay Area express lanes are explained in detail here:

A bus or a carpool of three or more can always use the lane for free. During periods of congestion, a clean air vehicle (such as an electric vehicle) or a carpool of two or more can either use the lane for free or pay a 50% discount, depending on congestion levels, while anyone else pays the full toll.

Some ramps are only connected to express lanes, so the entire roadway has the same rules as the express lanes.

To see which ways were reversed you can check geometry changes in OSMCha. Way History: 606853345 | OpenStreetMap for example. Notice node order in history.

This is apparently part of an organized editing effort that hasn’t been following the guidelines and they haven’t clarified who’s in charge or why they’re making these efforts. DimplePatel blocked by woodpeck | OpenStreetMap

1 Like

That’s unfortunate. MapUp has been trying to follow the import guidelines for a different effort involving bridges. Hopefully we can get a reasonable resolution here, since HOV and express lane tagging is still lacking in some parts of the country.

They seem to love communicating via private channels.

Hi everyone,

Thank you for your continued guidance and support in tagging express lanes. When we initially began editing last year, we were unaware of the proper guidelines and have since made every effort to follow the established protocols for editing OSM.

Specifically, with regards to tagging express lanes, we have been actively seeking your expertise to ensure we do this correctly. We plan to create a comprehensive wiki page for this project as well.
Our goal is to mark all express lanes in a manner that allows them to be uniquely identified. We understand that High-Occupancy Vehicle (HOV) lanes and express lanes are distinct, which is why we proposed using a combination of two tags for unique identification. However, given your feedback that this approach might be ineffective, we are eager to explore other possibilities.
Is there a way to introduce a new key specifically for marking express lanes? Or what do you suggest we can do in this case?

Thank you once again for your help and support.

This approach is consistent with what’s documented so far, but I think both mappers and data consumers have found it confusing:

Maybe there should be an explicit tag for an HOT road or HOT lane, but that could just complicate the existing situation, where both tolling and occupancy requirements vary by time of day and vehicle. Do you know of any downsides to continuing to use this combination for now, other than data consumers potentially getting it wrong on their end?