United States/2021 Highway Classification Guidance
These guidelines have been adopted by contributors in the states described below and represent the consensus view that highway classification is based on a road's topological importance in the long-distance road network. However, this page is a working draft that may continue to evolve as various edge cases and state-specific guidelines are explored. It is based on discussions on Talk-us: US Trunk road tagging and the OSMUS Slack. Feel free to discuss or help edit this content prior to any inclusion on United States. See US Road Classifications for older practices for assigning US road classifications. |
This page documents United States highway classification standards for determining which values of highway=* should be applied to various roads.
Approach
In OSM, roadways are primarily categorized using a highway=* tag that indicates the roadway's importance in the road network. Because OSM is a global map, it is important that there is consistency locally, regionally, and globally in how roadways are slotted into the 7 highway=* levels the general-purpose road network:
- highway=motorway *
- highway=trunk
- highway=primary
- highway=secondary
- highway=tertiary
- highway=unclassified
- highway=residential
It is important to note that the values of the highway=* tag come from the British road classification system, but globally, they are applied as hierarchy of descending importance with highway=motorway being the only level that demands compliance with physical construction standards. All lower levels from highway=trunk to highway=residential are based on their importance to the road network.
Because the United States does not have a firm, nationwide highway classification system which maps 1:1 with these values, local communities must assess the importance of the various roads in each local road network. Values of highway=* should be selected such that the collection of roads at each level (and above) represent a contiguous network of roads suitable for vehicular travel.
For example, the collection of all highway=motorway + highway=trunk should comprise a network of roads connecting all important population centers. When highway=primary is added to this collection, the network should include minor population centers, and so forth. While the definition of "important" and "minor" will vary from state to state based on local norms and conventions, it is important to maintain integrity of the connected road network as a whole, without creating "islands" of road with a higher classification than the roads around it.
Classification
With respect to the the United States road network, the term "importance" means "usefulness in transporting motorists between population centers". In general, roads which connect larger population centers over longer distances are more important than roads which connect smaller population centers or service suburbs or neighborhoods within a city, or specific points of interest.
It is common that multiple roads will service transportation between two population centers. In this case, the "best" routing should be assigned the highest appropriate classification for the route, with other routings being assigned lower classifications. The term "best" usually means "fastest vehicular route", however, local mapping communities may determine that a slightly faster route may not be the "best" route, for example, in the case of remote roads with a lack of motorist services.
The set of roads tagged highway=motorway or highway=trunk should collectively form a coherent network of interconnected roads, without dangling spurs or "islands" of disconnected roads. This connectivity principle should also hold true as each subsequently lower classification of road is added to the network, from highway=primary through highway=tertiary. Roads should not be downgraded merely due to a road’s decreased vehicular capacity through less-settled areas.
Exceptions to the connectivity principle should be considered on a case-by-case basis by the local mapping community. The most common exception is cases of "land’s end", where a road terminates due to terminal topography, such as US-6 ending on Cape Cod. Terminal topography might also include cases where there are low-quality roads through a mountain range or wilderness area, but they represent a less-favorable routing when compared to a longer, less-direct routing on more significant roads.
Local mappers are encouraged to establish local standards, criteria and determinations for road classifications within each state. Care should be taken to ensure that roads which cross state borders maintain a consistent classification, and that classification standards are reasonably consistent with neighboring states. State transportation departments sometimes establish functional or other classifications of roads within a state which may be be useful for making these determinations.
However, it is not a good idea to try to establish a 1:1 correspondence between OSM classifications and the state functional classifications. This will result in over-classification, with a high number of primary and secondary roads, and there will often be primary and secondary stubs and dead-ends. States generally do not put much thought or effort into their functional classification maps, especially in smaller towns, where the classifications are often arbitrary and do not always reflect reality.
Motorway
The top category, highway=motorway should only be applied to roadways that are either signed Interstate highways or have ALL of the following characteristics:
- Grade separation
- Limited access via on/off ramps
- No at-grade intersections or traffic signals (although on-ramps may have traffic control devices)
- Divided carriageways
- Designed and maintained to support high speeds over long distances as part of an interconnected motorway network
Exceptions and Borderline Cases
Highways listed in the Wikipedia article List of gaps in Interstate Highways should be tagged as follows:
- Highways listed with "major at-grade intersections" and "other at-grade intersections" should be downgraded to highway=trunk
- Highways listed under "movable bridges" should remain tagged as highway=motorway provided that the bridge-opening frequency is low enough that the motorway character and expectation of road users having priority isn't normally violated.
Roads which are disconnected from the motorway network, but briefly exhibit motorway-like characteristics for short distances (also known as "motorway islands"), should not be tagged as a motorway. In general, a disconnected motorway should have multiple grade-separated, controlled access interchanges over a significant distance, generally at least 2-10 miles, in order to be tagged as a motorway island.
Additionally, there exist a small number of examples of roads that are of an expressway character but have characteristics that are slightly degraded when compared to modern Interstate highway standards, and may have one or more features such as:
- Right-in right-out (RIRO) limited access ramps
- Short-radius access ramps
- Incidental surface land-access roads in rural areas
- High frequency of on/off-ramps
- Narrow lanes
- Lack of shoulders
- Low overhead clearance
- Brief sections of single-lane travel through tunnels or mountain passes
- Reduced speed limits
Because of the wide variety of urbanization character and highway construction quality throughout the United States, it is not possible to define a clear-cut rule for determining whether or not these borderline cases should be tagged highway=motorway or some lesser classification.
These borderline cases have been the subject of edit wars. As such, roads that are "borderline" as described above (motorway islands and slightly degraded expressways) must not be changed from their current classification without consultation with the community to determine whether a consensus exists. Changes to the classification of these edge case roads without community discussion may be summarily reverted.
Once consensus has been achieved on the tagging of specific corner case expressways, it should be documented on that state's wiki page, with a link to where the discussion took place. If the consensus decision is to tag the road as a lesser classification, tag them with expressway=yes, in addition to their base highway=* value. It is not necessary to tag a highway=motorway with expressway=yes, as this is presumed.
Trunk
As the top non-motorway classification, highway=trunk should be applied in the following cases:
- In areas of high population density, to expressways that meet most, but not all, of the requirements for highway=motorway, and provide connectivity between motorways and other trunk roads. These roads should also be tagged expressway=yes.
- In areas of medium to low population density, to the most important non-motorway roads that provide principal, long-haul connections between population centers of regional importance.
In some cases, two population centers of regional importance will be served by multiple routes with similar vehicular transit times. In general, the trunk routing should:
- Represent the "best" vehicular routing between population centers when considering all factors
- Minimize changes in numbered routes or off-route "short cuts" between two cities
- Favor a route which has the "best" continuity / connective value to the rest of the road network
- Favor higher-speed bypasses built to allow through traffic faster passage through built-up area
The Trunk classification generally should not be applied to highways that are parallel to motorways, especially highways within a short distance (less than 5 miles) from the motorway.
Between and around the largest population centers, it may be appropriate to tag additional routes as trunk beyond these guidelines, in order to emphasize the presence of multiple high-quality long-haul routes and/or to differentiate them from less-significant surrounding roads.
Primary
This second-level of non-motorway roads should be applied to higher-importance roads that aren’t part of the highway=motorway|trunk network. This may include US highways, business loops on the interstate network, higher-importance state roads, and roads which provide connectivity to minor population centers. In addition, this classification should be used for less-important alternative routes to inter-city connections tagged highway=motorway|trunk. In urban areas, highway=primary should be used on the main surface streets through suburbs and the tag should be used on streets reasonably spaced on a grid system. What counts as reasonably spaced varies by city and is determined by local communities.
Secondary and lower
Lower classification levels should be applied to roads based on their relative importance to local transportation. In general, the principle of maintaining network connectivity should be maintained at each classification level.
State-specific classification standards
The following table describes specific determinations that have been made at the state level with regard to highway classification.
State | Highway Classification | Documentation
update status |
Top-level
(trunk/motorway) reclassification |
Tracking |
---|---|---|---|---|
Alabama | See Alabama/Alabama Highways | |||
Alaska | unknown | |||
Arizona | See User:BubbaJuice/Arizona Highway Classification Proposal | draft | ||
Arkansas | unknown | |||
California | See California/2022 Highway Classification Guidelines | started | OSMCha | |
Colorado | See Colorado/Highway Classification | draft | ||
Connecticut | See Connecticut Highway Classification | |||
Delaware | unknown | |||
Florida | See User:SherbetS/Draft:Florida Highway Classification | draft | ||
Georgia | Competing proposals:
User:Txemt (mostly functional classification-based) User:Lordsutch/Draft:Georgia Highways (derived from the AL and MS pages) |
draft | ||
Hawaii | unknown | |||
Idaho | See Draft:Idaho/Highway Classification | draft | ||
Illinois | See Illinois/Highway Classification | draft | ||
Indiana | unknown | |||
Iowa | unknown | |||
Kansas | See Kansas/Highway Classification | draft | ||
Kentucky | unknown | |||
Louisiana | See Louisiana/Highway Classification | |||
Maine | See Maine Highway Classification (draft) | draft | ||
Maryland | unknown | |||
Massachusetts[1] |
Massachusetts/DRAFT:Highway classification Current classification scheme: |
not started | ||
Michigan | See Michigan Highway Classification and Michigan/highway classification (draft) | draft | started | see wiki page; #local_michigan Slack |
Minnesota | See Minnesota/Minnesota highway classification | top level: done | started | see wiki page |
Mississippi | See Mississippi/Mississippi Highways | |||
Missouri | unknown | |||
Montana | See Montana/highway classification | draft | ||
Nebraska | See User:Stretch Longfellow/Nebraska Highway Classification | draft | see wiki page, #local_nebraska Slack | |
Nevada | See Nevada/highway classification | draft | ||
New Hampshire | See NH Highway Guidance | |||
New Jersey | See New_Jersey#Classifications | |||
New Mexico | See New Mexico/Highway Classification | draft | ||
New York | See Proposal: New York/Highway Classification (Covers upstate NY)
NYC and environs still need to be determined. |
draft | Upstate:
Downstate: todo |
leaderboard, recent edits, OSMCha |
North Carolina | unknown | |||
North Dakota | See North Dakota/Highway Classification | draft | ||
Ohio | Not started | |||
Oklahoma | See User:Dulahey/Oklahoma_Highway_Classification_Proposal | draft | ||
Oregon | See Oregon/Highway Classification | draft | ||
Pennsylvania | See User:Colgza/Draft:Pennsylvania highways | abandoned | ||
Rhode Island | See RI Highway Classification | |||
South Carolina | unknown | |||
South Dakota | See South Dakota/Highway Classification | |||
Tennessee | unknown | |||
Texas | See User:Clorox/Draft:Texas highways | draft | ||
Utah | See Utah/highway classification | draft | Community meeting to work on page and discuss 2022-01-26. Please join! | |
Vermont | See Vermont | leaderboard, recent edits, OSMCha | ||
Virginia | See Virginia/Highway classification | |||
Washington | See User:Compdude/Draft:Washington highways | draft | ||
West Virginia | unknown | |||
Wisconsin | See Wisconsin/Highway Classification | draft | ||
Wyoming | See Wyoming/highway classification | draft |
External discussions
- talk-us, May 2021 US Trunk Road Tagging[1]
- talk-us-massachusetts, May 2021 Massachusetts Highway Classifications
- local-us-northeast on the OpenStreetMap US Slack
- local-minnesota on the OpenStreetMap US Slack
State-level project process
The highway classification scheme above was developed over several months via the External Discussions linked above as well as on Talk:United States/Highway classification in the spring of 2021. While additional improvements are likely, as of the summer of 2021 state-level communities have begun documenting how to implement this classification scheme for their states, in particular the top-level highway=motorway|trunk network. Some states have even completed retagging of these top-level highways as well.
The process for each state / territory:
- Read and digest this page (United States/Highway classification) and get a handle on the classification scheme and its principles. See the External Discussions for further background as well.
- Start drafting a state-specific set of road tagging guidelines (in particular for highway=motorway,trunk,primary) that reference United_States/Highway_classification and link to it in the table above. See the Drafting State-Level Guidelines section below for details.
- Contact other local mappers in your state and get feedback on the draft guidelines. See the Gathering Feedback and Local Consensus section below for details.
- Once there is local buy-in on the draft, update the state wiki page to reflect the new guidelines.
- Begin retagging highways in OSM to match the new guidelines
Drafting state-level guidelines
Any editor can kick off the process by drafting a state-specific set of road tagging guidelines (in particular for highway=motorway,trunk,primary) that reference United_States/Highway_classification and link to it in the table above. A reasonable practice would be to name this draft page <State>/Highway_Classification
. You can also namespace it under your username if you'd prefer.
The Vermont and Rhode Island/Highway classification pages are completed examples, but see the other states' drafts as well to get a sense of the state-specific details that may be needed to clarify differing government classifications and urban/rural differences.
Regionally important localities
As you can see in many of the existing state-specific guidelines, a useful starting point is to identify the regionally important population centers that should be connected by the top-level of the road network. These cities may be within the state or in neighboring states. From that list, identify the "best" route between each pair of cities. Usually the routes identified in this exercise will mostly align with those connected by roads in the NHS or other classifications. Utilize additional supporting data (below)
Supporting data
These guidelines should identify supporting data (such as functional classifications, NHS, etc) that can help make the case for why one road might be more relatively important than another for regional or local connectivity. In many cases we can’t just base our decisions on these often contradictory governmental sources, but we should reference and weigh them. As an example, the NHS drives/is-driven-by funding priorities and may include roads that are part of never-completed beltways (highways to nowhere) or include parallel routes that aren't equivalently utilized. Other sources of data may include State governments' functional classification if it exists and/or maps of snow removal priorities, evacuation corridors, and other types of classification data.
Gathering feedback and local consensus
After state-level guidelines have been drafted, reach out to your local editor community for feedback on the draft. Be sure to link to both this page (United States/Highway classification) and your draft and invite feedback via the draft's Talk: page, state-level Slack channel, the [talk-us] mailing list, or [talk-us-<state>] mailing list.
In addition sending outreach messages via Slack and state-specific mailing lists, you can also send individual messages to editors who have been actively editing in the state recently via their OSM profiles. This outreach is a concrete opportunity to invite other local mappers to join Slack or mailing lists and participate more closely with others in the community.
Identifying recent highway mappers
For small areas, Martijn van Exels's Meet Your Mappers tool is a browser-based way to query mappers editing in an area. It is limited to a 2-degree bounding box however and will include mappers editing any type of feature.
To identify just highway mappers across large areas use the highway_mappers.py
Python script in Martijn van Exels's Python Osmium Examples against an OSM history extract.
- Install Python3 and Git on your machine if you do not have either.
- Follow the installation instructions at Python Osmium Examples - How to install
- Download a state-level OSM history file (
*.osh.pbf
) from https://osm-internal.download.geofabrik.de/north-america/us/ - Run the script with some sensible arguments to get a CSV file of the counts of edits that mappers have made to different highway types in recent years (or all time):
python3 highway_mappers.py --all-versions --after 2020-01-01 vermont-internal.osh.pbf vt-recent-highway-mappers.csv
- Open the CSV in a spreadsheet program to do further sorting and filtering. Note that the script will [at least currently] include all highway mappers seen in the history file, but their edit counts will reflect any date range passed.
If you are wanting to do outreach for your state and the learning curve of the above script is too much, post in the #highway-classification channel of the OSM-US slack and Adam Franco or another person can do the export for you.
Sample message
Below is a sample email message:
Hi ______,
I’m reaching out to invite all active <State>-based mappers to weigh in on some proposed highway classification changes for <State>. <Other Editor> and I have been discussing the deficiencies of the current US highway classification guidelines as they apply to <State> and how we can improve them. Have a look at the draft guidelines <link> that <Other editor> has written, and if you’d like to be part of the discussion please join us in the #local-<state> and #local-us-northeast channels on the OSM US Slack.
We’ve been discussing the need for these changes with other US mappers for several months. Kevin Kenny has written a very in depth explanation specifically about the New York state highway network, but the same reasoning applies to <State>. A number of mappers from New England states and around the country are also involved. We are developing what we hope can become a new set of national highway classification guidelines.
Hope to hear from you!
<Your Name, linked to OSM profile> & <Other editor, linked to OSM profile> of <Your City> & <Their City>, <State>
Pause
After all the work that goes into the draft it can be tempting to rush this step, but take a breather and wait at least a few weeks for feedback to come in. Rushing this part is more likely to result in edit-wars when what we are aiming for is a stable classification system.
Wrapping up documentation
After feedback has been gathered, the draft improved, and as much consensus as possible reached, it's now time to update the state-level documentation.
- Update the state page:
- One option is to copy-paste content from your draft into the state page under a section like "Roads" or "Highways".
- Another option is to move/rename your draft to <State>/Highway_classification and then link to it from the state page.
- Clean up any conflicting state-level highway tagging guidance on the state page or subpages.
- Update the state's row in the State-specific Classification Standards to reflect the new link and change the Documentation update status to .
- Announce that documentation is updated and invite your fellow editors to work on retagging (below) with you.
Retagging highways to new classification
While any OSM editor can be used for this process, it is most easily accomplished using JOSM as its relation-member-selection, filtering, and "download along" tools make it much easier to work with long highway relations than iD.
Important notes
- Use expressway=yes on highway segments where it is appropriate. In many parts of the US highway=trunk had been previously used to imply enhanced construction, so we don't want to lose this identification of these enhanced segments.
- Some routers make the assumption that pedestrians and bicycles are not allowed on highway=trunk. When upgrading ways to highway=trunk or highway=trunk_link be sure to add explicit bicycle=yes and foot=yes access tags.
Project Hashtags
Tag your changesets with #us-highway-classification
and a state-prefixed version (like #ny-highway-classification
). This will allow tracking of this effort in other tools and let us get some ballpark numbers later on of what ended up going into this project on the editing side.
- Leader board for #us-highway-classification
- Recent changesets with #us-highway-classification
- OSMCha filter for changesets with #us-highway-classification
JOSM retagging workflow
To-Do...
Downloading the road network
There are several options for downloading roads to reclassify in JOSM which have advantages and disadvantages.
The simplest is to download a very small area that include the road, select the road, then right click on it's route relation and select "Download incomplete members".
- Download a very small area that include the road
- Select the road, then right click on it's route relation you're interested in and select "Download incomplete members".
- Right-click on the route relation again and choose "Select members"
- Use File --> Download Along... to download the area around the road and all connecting ways.
Downloading the sparse road network via Overpass query
To work on a larger area, you can use an Overpass query to download just the motorway/trunk/primary/secondary network and their route relations as a starting point. This can make it easier to see the context and work through a set of adjoining roads. The upside is that JOSM is only downloading the data you need to work with to reclassify. The downside is that it doesn't have any of the additional adjoining roads and other objects that might get broken if you were to move any nodes or split ways.
- Open the download dialog and use it's Overpass Query tab.
- In the query editor use this query:
[out:xml][timeout:90][bbox:{{bbox}}]; ( nwr["highway"="motorway"]; nwr["highway"="motorway_link"]; nwr["highway"="trunk"]; nwr["highway"="trunk_link"]; nwr["highway"="primary"]; nwr["highway"="primary_link"]; nwr["highway"="secondary"]; nwr["highway"="secondary_link"]; ); <<; // Include parent relations (._;>;); out meta;
- Select an area to download
Warning!!! When you use this sparse download, JOSM won't alert you to missing downloaded data by graying-out the background. As with the simple technique, you still want to download the area along each road if you do anything more than modify way tags (such as split a way or move a node).
- Select the road, then right click on it's route relation you're interested in and select "Download incomplete members".
- Right-click on the route relation again and choose "Select members"
- Use File --> Download Along... to download the area around the road and all connecting ways.
Validating results with Overpass
You can get a highlighted view of the current state of roads in OSM by querying and displaying the results in Overpass-Turbo. See this example for Vermont, or this example for Colorado.
[out:json]
// increase the timeout if you get errors for a large state
[timeout:60];
// gather results
(
area[admin_level=4]["name"="Colorado"][boundary=administrative]->.boundaryarea;
way["highway"="trunk"](area.boundaryarea);
way["highway"="trunk_link"](area.boundaryarea);
way["highway"="motorway"](area.boundaryarea);
way["highway"="motorway_link"](area.boundaryarea);
);
out geom qt;
{{style:
way[highway=motorway]
{ color:red;
opacity:1;
width:3;}
way[highway=motorway_link]
{ color:red;
opacity:0.5;
width:2;}
way[highway=trunk]
{ color:blue;
opacity:1;
width:3;}
way[highway=trunk_link]
{ color:blue;
opacity:0.5;
width:2;}
}}
For larger states you may need to change the timeout and/or comment out the trunk_link and motorway_link lines in the query to keep the data smaller.
For cleaner display, hide small features in Overpass-Turbo by applying Settings -> Map -> "Don't display small features as POIs."
Browse and zoom in these results and it should be relatively easy to see islands, gaps, or spurs in the classification.
References
Further reading
- Franco, Adam (April 1, 2022). “The State of US Highway Classification”. State of the Map U.S. Tucson, Arizona: OpenStreetMap U.S .
Part of United States mapping project. |