From OpenStreetMap Wiki
Jump to navigation Jump to search

The Harmony of Difficulty Rating Systems

When preparing to embark on a hike, I want to know if a trail suitable for me (my skill level and the time/energy I have for the hike). I would like to review a map and have trails clearly identified based on their level of difficulty and level of required exertion. There are numerous classification systems which grade trails for hiking and mountain biking including the Swiss Alpine Club Rating scale, German Single-track Scale, International Mountain Mike Association scale, Yosemite Decimal System, Australian Walking Track Grading System, the Sierra Club scale, the Appalachian Mountain Club, and Shenandoah National Park and Pigeon Forge National Park, and the US Forest Service and others. These rating systems variously take into account surface condition and obstacles, steepness, trail visibility, required gear, required wayfarer skills, risk/exposure, length, and elevation change.

Several of the established scales focus on exertion level based on length/elevation with different formulas but don’t take into account technical difficulty (National Park Service and Appalachian Mountain Club, Sierra Club). Several focus terrain and skill required with criteria for peak and/or average incline, surface material, smoothness, visibility, required gear, and risk/exposure (SAC, MTB, YDS, and USFS). While others combine these factors (Australian System, and Adventure Nerds). Others have proposed modifications/alternative scales that have not been widely adopted, but attempt to merge and isolate key factors.

OSM has well established tags for ways based on the Swiss Alpine Club Rating scale for hiking and the German Single-track Scale for mountain biking, but these are not always used. There are other tags that are related to the factors which contribute to the difficulty assessment (surface, smoothness, visibility, incline), again with variable adoption. The stamina and time required for a hike are a combination of elevation change and distance which are also OSM tags recommended for routes, but stamina and time will also be influenced by the technical difficulty of the ways.

Personally, I think it is useful to segregate the technical difficulty of a path from the exertion level required to complete it. I think it would be interesting to render a map with ways based only on technical difficulty, and routes based on a combination of difficulty and exertion required to complete.

I have taken a pass at correlating all of the various scales and harmonizing their criteria and factors, and then identifying the values for the relevant tags in OSM. The scales are not entirely consistent, so this table represents a number of choices I have made. It relies most strongly on SAC hiking scale, but pulls in descriptions from the other scales at similar levels. I intend to use this table along with an algorithm to render trail difficulty based on a combination of whatever tags are available, first sac_scale if it is used, but then inferring the difficulty from the other relevant factors. Each of the factors are independent, (a well marked and visible scale may have very challenging obstacles), but the overall difficulty could be some combination of all the factors which contribute. Such an algorithm could also flag paths which are missing critical information about difficulty or have confusing/conflicting metadata potentially in need of validation (e.g. surface=paved & sac_scale=mountain_hiking, or smoothness=horrible & mtb:scale=0). Also, these presume some fair weather condition. Adverse weather (snow, rain, wind, heat) could significantly increase the difficulty and change the gear required versus the trail under fair conditions.

Difficulty Levels, OSM Tags, and Existing Scales

Class - Color - Title Description surface








Incline (peak rise/run) width MTB : YDS : NFS : AWTGS : IMBA
Class 0 - Grey - Accessible Experience, Gear, and Risk: No hiking experience required. Suitable for wheelchair users who have someone to assist them. No risk.

Surface and Visibility: Hardened or surfaced and clear.

Obstacles: Flat even surface with no steps or steep sections. No obstacles present (<1”).

Hands: Hands not required.

Asphalt, Chipseal, Fine Gravel, Paved, Concrete, paving_stones, Compacted, metal, wood Excellent, Good, Intermediate N/A Excellent < 8% >24” MTB 0 : YDS NA : NFS C5 : AWTGS G1 : IMBA 0
Class 1 - Green - Easy Experience, Gear, and Risk: Hiking on a well groomed trail. Athletic shoes sufficient. Map not needed. No Risk.

Surface and Visibility: Surface hardened or compacted. Vegetation cleared outside trailway.

Obstacles: May have a gentle hill section or sections and occasional steps or small obstacles such as roots and stones (<2”)

Hands: Hands not required.

Sett, unhewn_cobblestone, cobblestone, stepping_stones, unpaved, gravel, pebblestone, grass, grass_paver, sand, woodchips (potentially unpaved, rock, ground, dirt, earth, mud) bad hiking (T1) Excellent < 40% 18” - 24” MTB 1 : YDS Class 1 : NFS Class 4 & 3  : AWTGS G2 :IMBA 1
Class 2 - Blue - Moderate Experience, Gear, and Risk: Hiking on a trail. Hiking boots recommended. Limited potential for falling.

Surface and Visibility: Continuous established footpath. Vegetation may encroach trail. Partially steep terrain.

Obstacles: Obstacles common (<8”). Steps and flat stairs. Short steep hill sections.

Hands: Hands not required.

unpaved, rock, ground, dirt, earth, mud, very_bad, horrible, mountain_hiking (T2) good <70% 12” - 18” MTB 2 : YDS Class 1: NFS Class 2  : AWTGS G3 : IMBA 2
Class 3 - Red - Difficult Experience, Gear, and Risk: Simple scrambling. Average orientation/navigation skills. Sturdy hiking boots recommended. Some potential for falling encountered.

Surface and Visibility: Usually marked, but trail not always visible, and signage not always visible.

Obstacles: Obstacles common including large boulders, logs, and large steps (<15”). exposed passages can be protected with cables, Steep grades

Hands: Hands required to maintain balance.

Same as Class 2 very_horrible demanding_mountain_hiking (T3) intermediate <100% 1-12” MTB 3 & 4 : YDS Class 2: NFS Class 1 : AWTGS G4 : IMBA 3
Class 4 - Black - Very Difficult Experience & Gear: Specialized hiking skills and gear, including navigation and emergency first aid. Weather exposed portions, rock ledges, fields, and slopes. Potential danger is encountered and fall protection may be recommended.

Surface and Visibility: Tracks are likely to be very rough and unmarked.

Obstacles: Characterized by blocky terrain with counter climbs, scree fields and landslides, high steps and fallen trees and extremely steep grades.

Hands: Hands required to advance.

Same as Class 2 impassable alpine_hiking (T4) bad >100% 0 MTB 5 : YDS Class 2: NFS Class 1 : AWTGS G5 : IMBA 4
Class 5 - Orange - Expert Experience, Gear, and Risk: Scrambling with increased exposure. A rope could be carried. Good terrain assessment and orientation skills required. Falls could be fatal.

Surface and Visibility: Occasionally pathless.

Obstacles: Basic/easy climbing sections.

Hands: Handholds necessary to bear weight.

rock impassible demanding_alpine_hiking (T5) Horrible >> 100% 0 MTB 6 : YDS Class 3 : NFS N/A : AWTGS N/A : IMBA N/A
Class 6 - White - Climbing Experience, Gear, and Risk: Basic to advanced climbing.

Surface and Visibility:



rock impassible difficult_alpine_hiking (T6) N/A MTB 6 : YDS Class 4-5 : NFS N/A : IMBA N/A

References on Existing Scales

USFS - Willamette :

Australian Walking Track Grading System :

USFS - Trail Classes :

NPS - Shenandoah :

Sierra Club:

Swiss Apline Club:

German Single Track Scale :

Pigeon Forge :,miles%20for%20each%201000%20feet%20of%20elevation%20gained.

Appalachian Mountain Club:

Yosemite Decimal System :

Phoenix Parks Trail Ratings :

Adventure Nerds:

Jeff Rose :

Reflections on Rendering

I have also started on a MapCSS style for JOSM based on this table for my own use and exploration, available on github here I also intend to expand the algorithm to take into account access indications as being identified by the trails working group.

'To be developed: Swiss guidelines for SAC rendering are ...., but many other platforms (ski resorts, hiking/biking trail apps, german trails) for difficulty rending use variations on a white-green-blue-red-black rendering scheme. This is more familiar and intuitive to me personally.

Summary Notes for Tags on Ways for Hiking Trails

Use the Paths preset in JOSM

  • Highway = Path (controversy noted, NPS guidance says bridleway even when mixed with hiking, path implies horses=no)
  • Name=* if the trail has an marked/authorized name
  • Surface = ground, dirt, grass, asphalt, fine_gravel ( e.g Rock Island trail), gravel, woodchips (see Key:surface - OpenStreetMap Wiki for others, ground is recommeded by NPS)
  • Smoothness = impassable (climbing), very horrible (MTB), horrible (4WD Truck), very_bad (Outback), bad (CycleCross/Car), intermediate (commuter bike, wheelchair), good (racing bike) (see Key:smoothness - OpenStreetMap Wiki)
  • Width = meters
  • Incline = Rise/Run*100 if there is a particularly steep section, create a segmented way
  • sac_scale = hiking (sports shoes, well cleared),  mountain_hiking (steep, hiking shoes), demanding_mountain_hiking (hands required, exposed areas) (see correlation table below) (Key:sac_scale - OpenStreetMap Wiki Grading systems )
  • Mtb:scale (if biking allowed) = 0 (white, no obstacles), 1(green, small roots and stones), 2 (blue, 8” large obstacles), 3 (Blue / black, many large obstacles, large steps, constant concentration), 4: (black, 15:” obstacles, loose rocks) 5 (Double Diamond, worse) (see correlation table below and Key:mtb:scale - OpenStreetMap Wiki, Singletrail-Skala )
  • trail_visibility= excellent (unambiguous path), good (path markers in sight), intermediate (trail mostly visible), bad (path sometimes invisible) (Key:trail_visibility - OpenStreetMap Wiki)
  • foot = designated if indicated by authority as a hiking route, and actively maintained as such, merely =yes where it is allowed but not officially intended.  (Some discussions indicate foot=yes is presumed on highway=path, and it should be excluded from Paths, but used on Cycleways and Bridleways were foot is allowed. This does not appear conclusive. NPS recommends not using foot=designated or foot=yes for hiking trails)
  • bicycle = designated if indicated by authority as an MTB path, =yes if it is not prohibited on the trail =no if prohibited (similar discussion on presumed to be =yes. In NPS, Bicycle=no unless explicitly signed)
  • Horse = no (if explicitly prohibited on the trail) =yes if explicitly for horses. (note: implied =no, highway=bridleway for primary purpose of horse path, e.g. from a stable)
  • Dog = yes, no, leashed
  • Wheelchair = no
  • Motor_vehicle=no (generally presumed, but NPS recommends explicit tagging)
  • Segregated = yes if Hikers/Bikers/Horse have different lanes

Manually add tags not included in Path Preset

  • operator=* (Search here for existing operator labels: operator | Keys | OpenStreetMap Taginfo )
  • operator:wikidata=Q1891156 if the organization is on Wikidata ) to indicate the entity that manages the trail or land  (listed below)
  • maintained=* (the name of the authority in charge of maintaining: maintained| Keys | OpenStreetMap Taginfo )
  • Trailblazed = yes if there are some kind of blazes = symbols if marking made by colorful or natural labels made from paint, metal, wood, plastic or other material attached firmly to other objects.
  • Website=
  • Access=No for closed trails or where marking indicate prohibition, access=discouraged if not prohibited but discouraged, Access=private for private property where landowner does not allow access to public (presumed yes)
  • Informal=Yes for trails which exist on the ground but are not officially sanctioned by operator, include access=no if prohibited by operator
  • Mtb:scale:imba (if graded by IMBA)=0 refers to Easiest (white circle), 1 is Easy (green circle), 2 is More Difficult (blue square), 3 is Very Difficult (black diamond), and 4 is Extremely Difficult (double black diamond). <Key:mtb:scale:imba - OpenStreetMap Wiki >
  • amenity = parking for the closed way at the trailhead, or maybe just a node.
  • ford = Create a section of the way if long or just tag the node if the trails crosses water. =yes (maybe add depth= if you might get ankles wet) or =stepping_stones
  • tourism=information; information=guidepost; hiking=yes (Tag:information=guidepost - OpenStreetMap Wiki )
  • tourism = camp_site for established campsites (tag a closed way if it is a significant area, otherwise a node)
  • natural=water + drinking_water=untreated for water sources along a backpacking trail, and
  • leisure=firepit (Tag:leisure=firepit - OpenStreetMap Wiki )
  • leisure=picnic_table (Tag:leisure=picnic_table - OpenStreetMap Wiki )
  • amenity=parking for the node or area at the trailhead (Tag:amenity=parking - OpenStreetMap Wiki )

Summary Notes for Tags on Relations for Hiking Routes

Create the relation using all the ways in the route. If there is a way that is used twice to get back and forth to a loop, add it to the relation twice (JOSM will ask to confirm) and apply the role “backward “ on version to get the elevation/path right. How do I reuse a way in a route, but in reverse direction? - OSM Help

Using the Hiking Route Preset


Route=hiking ( or foot if walkable without equipment/fitness/weather limitation) =MTB (or even =hiking;MTB; - Connect your Slack account - Connect your Slack account


Network=lwn (local walking) lcn (local cycling network)

Reference=e.g. E1 if there is a reference designation

operator=e.g. Jackson County Parks + Rec and maintained by Urban Trail Co.

Distance (km), ascent (m), descent (m) = export GPX from JOSM and analyze in GPXStudio or other



Description= Short description

Manually add

operator:wikidata= lookup at Wikidata