Proposal:MTB Trail Features

From OpenStreetMap Wiki
Jump to navigation Jump to search
MTB Trail Features
Proposal status: Draft (under way)
Proposed by: Pkoby
Tagging: mtb:feature:jump=*
Applies to: node / way
Definition: Skill features on trails for mountain biking
Statistics:

Draft started: 2026-06-25


Problem Statement

Mountain biking often involves trail features (a.k.a. "skill features", "technical trail features" (ttf)) that test skills, enhance the experience, and can be great fun to ride. Up to now, there has not been a clear method for mapping or tagging these features in OpenStreetMap. Adding them to the OSM database would help mountain bikers plan ahead for their rides in new areas, provide an accurate representation of MTB trails, and also allow other trail users (hikers, horse riders) to know about obstacles. Trail features can change, but tend to be permanent enough that they're worth mapping.

Proposal

This proposal puts forward mapping and tagging guidelines for adding MTB trail features to OSM. At the time of proposal, there are very few elements mapped (at least as discoverable by searching for similar keys and values). mtb:feature=* has 43 uses worldwide, mtb_ttf=* has 26, and 0 for mtb_feature=* or mtb=feature . There are a few elements tagged mtb=jump(9), mtb=gap_jump(6), etc., but as mtb=* is used for access, these are confusing. cycling=dirtjump is tagged on ways only, so seems to refer to a riding style, not a feature.

Instead of any of these options, I propose using mtb:feature:*=*, where :* denotes the type (e.g. jump, skinny, rock garden). The value can be yes to denote the presence of a single feature without further detail. If there is more than one feature at a single point on the trail, the side relative to the direction of the way should be tagged, e.g. =*. Values can be left, right, or middle.

Additionally, if it is possible to avoid the feature(s) without leaving the trail (i.e. if above your skill level), tag the feature with mtb:feature:bypass=*. Values can be yes to denote that avoiding is possible, or left, right, inside (between features), outside (around outer edges of feature(s)), or combinations like inside;outside (if you can go around on both sides and in between features) or left;inside (if you can go around on the left and in between features, but not on the right).[1]

Features should be mapped as nodes connected to the highway=* in most cases, or as part of the highway=* split at the start and end if they are longer features like rock gardens, berms, skinnies, or wall rides.

Rationale

Per discussions with other mappers on OSMUS Slack (see link below), the mtb:feature:*=* was considered more flexible than mtb:feature=* because the latter only allows one feature at a single point on the trail (unless separated with semicolons, which is not as easy for consumers to parse). Presets for each feature type could add all relevant tags at once including the "top-level" tag of what type it is, so with mtb:feature:*=* you don't have to semicolon-ize manually for each type. While multiple : levels can be overwhelming, this method allows for limitless detail for each feature. If desired, one could tag the color, difficulty level, height, width, length, material, surface, etc.

Mapping the point (or short way) as part of the trail way could be used in future to provide routing notes for mountain biking. For example, plotting a mountain biking route could list the features that would be ridden. If points were separate from the highway=*, further analysis would be needed to associate the features with the trail.

Tagging

Main Tags
Key Importance Value(s) Example
mtb:feature:*=* ! Required yes to show presence, left, right or middle to show side of the trail relative to way direction mtb:feature:jump=left
mtb:feature:bypass=*  Important yes or no to show presence, left, right, inside (between features), or outside (around features) to show side of the trail relative to way direction mtb:feature:bypass=right
mtb:feature:*:oneway=* ? Optional yes, no, or -1 based on direction of way mtb:feature:jump:oneway=yes
mtb:feature:*:description=* ? Optional Human-readable description of a feature mtb:feature:jump:description=Two foot tall dirt jump
mtb:feature:*:height/width:length=* ? Optional Dimensions of a feature. Measurements should ideally be in meters, but see https://wiki.openstreetmap.org/wiki/Units for other options. mtb:feature:jump:height=0.7
Feature Types
Type Element Description Useful Tags Example
Jump

mtb:feature:jump=*

Node A simple jump made of one ramp with a landing on the same level, aka 'trail jump', 'takeoff'.
_/\_
mtb:feature:jump:height=*
mtb:feature:jump:width=*
mtb:feature:jump:surface=*
Gap Jump

mtb:feature:gap_jump=*

NodeWay A jump made of a launch ramp and a landing ramp with a gap in between. aka 'double'.

_/\_/\_

mtb:feature:gap_jump:height=*
mtb:feature:gap_jump:width=*
mtb:feature:gap_jump:length=* distance between tops of ramps
mtb:feature:gap_jump:surface=*
Tabletop

mtb:feature:tabletop=*

NodeWay A jump with a ramp up and ramp down with a flat section at the top.

_/‾‾\_

mtb:feature:tabletop:height=*
mtb:feature:tabletop:width=*
mtb:feature:tabletop:length=* distance along top
mtb:feature:tabletop:surface=*
Step-Up

mtb:feature:stepup=*

NodeWay A gap jump with a short takeoff leading to a higher landing.

ʌ_/\

mtb:feature:stepup:height=* height of taller ramp
mtb:feature:stepup:width=*
mtb:feature:stepup:length=* distance between tops of ramps
mtb:feature:stepup:surface=*
Step-Down

mtb:feature:stepdown=*

NodeWay A gap jump with a tall takeoff leading to a shorter landing.

/\_ʌ

mtb:feature:stepdown:height=* height of taller ramp
mtb:feature:stepdown:width=*
mtb:feature:stepdown:length=* distance between tops of ramps
mtb:feature:stepdown:surface=*
Dropoff

mtb:feature:dropoff=*

Node A jump from a high level to a lower level.

‾\_

mtb:feature:dropoff:height=*
mtb:feature:dropoff:width=*
mtb:feature:dropoff:surface=*
Berm

mtb:feature:berm=*

NodeWay A raised edge of the trail, often made of dirt, to allow faster turning around a corner. mtb:feature:berm:height=*
mtb:feature:berm:length=*
mtb:feature:berm:surface=*
Skinny

mtb:feature:skinny=*

NodeWay A narrow, usually elevated segment like a log, rock, or boardwalk that requires balance and precise riding to follow, aka 'log ride' in some instances. mtb:feature:skinny:width=*
mtb:feature:skinny:height=*
mtb:feature:skinny:length=*
mtb:feature:skinny:surface=*
Bridge

mtb:feature:bridge=*

NodeWay A bridge-like feature that doesn't necessarily (but can) go over anything. mtb:feature:bridge:height=*
mtb:feature:bridge:width=*
mtb:feature:bridge:length=*
mtb:feature:bridge:surface=*
Mountain bike bridge feature
A-Frame

mtb:feature:aframe=*

Node A tall, usually wooden structure shaped like a capital A. mtb:feature:aframe:height=*
mtb:feature:aframe:width=*
mtb:feature:aframe:length=*
mtb:feature:aframe:surface=*
Rock Garden

mtb:feature:rock_garden=*

NodeWay An area of large rocks along the path. Requires picking a good line to roll smoothly. mtb:feature:rock_garden:length=*
Teeter-Totter

mtb:feature:teeter=*

Node A narrow hinged platform that pivots after you cross the middle. mtb:feature:teeter:height=*
mtb:feature:teeter:width=*
mtb:feature:teeter:length=*
mtb:feature:teeter:surface=*
Wall Ride

mtb:feature:wall_ride=*

NodeWay A curved wall (basically a large berm) that you can ride up to hit fast corners. mtb:feature:wall_ride:height=*
mtb:feature:wall_ride:length=*
mtb:feature:wall_ride:surface=*
User-defined Some features don't fall into these classifications. If you have another name for something here, try to fit it in, but feel free to create your own types.
Additional Details
Key Description
mtb:feature:*:colour=* Notable color of a feature, e.g. a painted wall.
... etc.

Examples

Real-World Examples
yes
mtb:feature:berm=left
mtb:feature:bypass=right
mtb:feature:berm:length=3
mtb:feature:berm:surface=dirt

Unresolved Questions

Please discuss these points on the discussion page.

  • Should the tag be mtb:feature:*=*, or would mtb:*=* or mtb_feature:*=* make more sense?
  • Is it called a "drop" or "drop-off"?
  • Surface of drop/off: is it the top, bottom, or ~vertical face?

Impact on Data Consumers

There should be no impact because there is not a tagging scheme in use so far.

Features/Pages affected

Mountain biking

External discussions

https://wiki.openstreetmap.org/wiki/Talk:Mountain_biking#Skills_area_-_how_to_tag
https://osmus.slack.com/archives/CKC0HGF4H/p1774532976037549

Comments

Please comment on the discussion page.

  1. Please discuss if left/right/middle is sufficient for feature position. Edge cases might have more than three features. In those cases, it's probably better to map individual paths to each feature. Also, a hypothetical situation could be bypass|feature|bypass|feature|feature|bypass, which cannot be reflected in tags only. Solutions could be again to split up the path or just tag mtb:feature:bypass=yes and let people figure it out in person.