From OpenStreetMap Wiki
Jump to: navigation, search
Available languages
Deutsch English

Class:Bicycle -- is a subjective key to make it possible to find the best way on a bicycle from A to B.

Based on ideas broght forward Cycleworth and Talk:Cheltenham_Standard

Rationale - Class:Bicycle - a key to make better autorouting for Cyclists

The class:bicycle key should be relative to the "highway" key and take into account objective tags (e.g. lanes=2 & oneway=yes) that already describe a road well, with the aim of allowing good autorouting for bicycles by user type. It is meant to achieve the goal of implementing a Cheltenham like Standard for cyclists to OSM but make it available to any cyclists.

The format shall be kept as simple as possible.

class:bicycle =-3 to +3

Applies to

Any way or relation suitable for cycling (including mountainbiking, road cycling, touring,....)


This key shall be useful for autorouting, and be kept as simple as possible. It should be based from an average cyclists position when this is possible. In case different cyclists have different opinions, user classes can be used to further specify a way.

The objective is to think of this like a grading system where you can give stars from 0-5 to say whether you like the way or not, based on different usage classes. It should be used to promote or degrade a street for autorouting. So if your bicycle router sends you down a street you don't like, help the router out, by adding e.g. class:bicycle=-3

Usage and Classes

  • The main key is class:bicycle=-3 to 3.

For streets however where opinions diverge, further specification of this key shall be used.

E.g. a primary road inside the city with cycleway=lane with high motorist traffic allows a very quick mean of getting from A to B and there is no suitable alternative road nearby. For the "average" cyclist this way is only suitable to get from A to B. It is however not a way where any cyclist group loves to go along when cycling recreationally. We can put:

  • class:bicycle:commute=+1

Therefore we make clear that the way is suited for getting from A to B, but not a good choice for cycling in general. We do not need to put down: class:bicycle=-2 because it is better to the keys (if they don't exist yet, we should add them): oneway=yes; lanes=2: highway=primary; source:maxspeed=local already tell us that the way is not well suited for cycling.

List of Usage classes

  • class:bicycle=-3 to 3 General key for cycling. List of tags that should already be considered below.
    • class:bicycle:mtb=-3 to 3 -- Cross country Mountainbiking. Use for telling the autorouter that a way should be preferred for mountainbiking. It shall be used in addition to keys mtb:scale; mtb:scale:uphill. Typical bicycle: Hardtail or Fully Mountainbike with "fat" tires (>1.95")
    • class:bicycle:commute=-3 to 3 -- Cycling as a mean of getting quick from A to B (however not at the expense of using big roads only, but a way you would cycle to work every day happily)
    • class:bicycle:touring=-3 to 3 -- Cycletouring and Trekking. Typical bicycle: Trekking bike with medium width tires (1.3"-1.7").
    • class:bicycle:roadcycling=-3 to 3 -- Roadcycling for Recreation/Sport. Typical bicycle: Racing bike with thin tires (<1.25")
    • class:bicycle:mtb:technical=-3 to 3 -- Technical Mountainbiking. Not every difficult way (mtb:scale) has to be nice for allmountain, enduro or freeride use.
    • class:bicycle:trailer=-3 to 3 - towing a toddler/luggage trailer needs special planning of the route (usually width and surface and barries should be enough)
    • class:bicycle:non_experienced=-3 to 3 Sunday cylist who is inexperienced; children and elderly


Class Description in OSM Why needed here? Ex. Pictures
class:bicycle=1 highway=unclassifed/tertiary & cycleway=track Because there is a park to one side, no traffic can be expected from there. Also the track is wide enough to cycle at ones own speed (slow or fast) Cycle nexttoroad.jpg
class:bicycle:mtb=2 highway=path & mtb:scale=0 & sac_scale=hiking Make it stick out from the rest of ways. Lovely scenery. S0.jpg Mountain hiking.jpg
class:bicycle:mtb:technical=1 highway=path & mtb:scale=3 In such an altitude many ways vary in difficulty a lot, and finding ways for mtbiking is not easy. Assumption most of the trail is ridable. S3.jpg
class:bicycle:roadcycling=-2 cycleway=track & highway=tertiary/secondary Very dangerous to ride quickly here as seperated from street behind cars, but has to be used by law. Riding fast is not possible. Nice for the "Sunday cyclyist" though. Copenhagen Style Bike Lane.jpg

Examples where no class:bicycle is needed

Description Why not needed? Picture
highway=path & surface=ground & mtb:scale=0+ This is a typical path like many others. Standard keys are enough for describing it. GuideFootPathCycleYes.jpg
highway=trunk & lanes=2 & oneway=yes & bicycle=yes The normal tags are enough to know that this street is not nice for the average cyclist. Dscf0444 600.jpg


In general only -2 to +2 should be used. -3 Should declare that the way is so unsuitable that it should be avoided at all cost. +3 should be a value that indicates, it is worth making a big detour for getting here.

  • "-3" = Avoid at all cost.
  • "-2" = Only use to reach your destination, not well suited.
  • "-1" = Better take another way
  • "0" = as well as other ways around.
Try to to avoid using 0 but decide on -1 or +1.
class:bicycle shall only be used as an additional key.
  • "1" = Prefer
  • "2" = Very Nice way to cycle
  • "3" = This way is so nice, it pays out to make a detour also if this means taking
many unsuitable ways to get here. Outstanding for its intended usage class.

The principle is here to keep it nice and simple.

General Factors to decide on a value for class:bicycle

Should be listed here, but be subjective factors not objective. This should only be a guideline/recommendation.



How many cars are there? Is there enough space for them to safely overtake, or is space limited and car users will take over dangerously? Are cars allowed at all?


If a way has many Pedestrians who use it. Is there a clear seperation between cyclists and pedestrians, and if so, is that seperation respected or are many pedestrians walking into your way forcing you to reduce speed and/or brake often

Other cyclists

When you go out on your roadcycle to train, you don't want to have slow "weekend cyclists" in your way. Best are usually roads not cycleways.

Highway=cycleway Positive Factors

Just because we have classified a way as cycleway, this does not tell us if it is really suitable for cycling. Currently no consensus in OSM consists how a way has to classify to be entered as highway=cyclway. For class:bicycle we assume that a cyclway is very suitable, however for roadcycling additional class:bicycle:roadcycling is needed.

Cycleway=cyclelane / cycletrack negative

In countries where the presence of a cycleway obliges you to use them: Can you go fast, or do you have to go slower than you could on the road. Is there increased danger because of cars not seeing you? Crossing Roads where car drivers will overlook you when using the cycletrack instead of the road? Parking Cars (cardrivers open the door without keeping care, cars often blocking the cycletrack/cyclelane)....

Scenery and Nature

Can you see the nice mountains around, or is endless forst blocking your view? Are there nice viewpoints on the way, Nice places to picknick alongside? On long ways outside of civilisation - is there supply to drinking water, either manmade or water from springs in the mountains?

Keys that every Autorouting Program should consider BEFORE or IN ADDITION to class:bicycle

The principle of class:bicycle is that it is used as additional factor. It is not supposed to replace common objective keys or help autorouting for programmers that are too lazy or unable to consider them.

However no autorouting program can take into account all keys existing in OSM therefore below we shall put the main keys that are to be evaluated in any case. Programs not evaluating these keys, should not be considered when using class:bicycle. The list below shall be an comprehensive list of the most popular keys that help describing the cyclability of a way.

This list shall be as short as possible (if it is too long, it might not be implementable), but as long as needed for finding out main "objective" attributes.

  • highway
  • Tracktype
  • Smoothness
  • Sac_scale
  • mtb:scale
  • mtb:scale:uphill
  • Surface -- only for values documented on the wiki and popular.
  • Usability
  • sport=via_ferrata -- no cycling is possible here (routing for extreme mtbikers an exception)
  • Access -- if a router does not honour access rights, this is not a reason to degrade routing priority
  • Oneway & lanes=2 (for higwhay=primary,secondary and tertiary) -- High Traffic must be assumed here.
  • incline -- ways should not be taken out because they are steep, but the autorouter shall evaluate steepness based on inline key)
  • source:maxspeed=local/urban (for higwhay=primary,secondary,tertiary,unclassified,residential) (to find out whether a way is inside or outside of a city). In General except when "commuting" cyclists like to cycle outside of urbanized places.

bridge/tunnel (because crossing something might be difficult, any autorouter shall consider bridges and tunnels and put higher priority on them automatically -

  • relation:route -- The router should favour ways that are part of a bicycle route. It can be assumed that routes follow suitable ways. If however there is nearby much better route, and the route has to be considered unintelligent, then one could degrade the way.

This is a work in progress

Please change and append things here, this is a draft. Resist adding too many subkeys. Maybe 2-3 more could be good, but the more subkeys we have, the less usefull!

Maps for GPS or Autorouting Programs using this key

No key or tag in OSM can be suitable without maps/programs pushing them. This is a list of maps that already use not only the class:bicycle scheme, but also already consider all keys in the "objective list", or that are in strong favour of it and will implement the scheme soon.

  • Openmtbmap Supported on streets (will need some more tweaking and extending)
  • Velomap Implemented on all ways and streets.

Usage Stats

Despite being referenced on very few wiki pages and in no presets of any editor, as of 2010-11-10 there are already well nearly 3000 roads with class:bicycle tagged (and over 100 for class:bicycle:mtb and also many for touring and roadcycling ...)


Please put them on the talk page. Please copy and adapt class:key for other usages like horseriding or hiking, but open up new pages for this and link them back here so good ideas can be taken over.

Voice your support or constructive objection

Add some personal comments on this key with one catch: You have actively worked on implementing autorouting or at least though about it and used programs that make use of OSM data for autorouting. No harm folks, but many people objecting subjective keys have no clue about how to implement nice autorouting, and should therefore simply shut up or provide an alternative solution before one can take their comments to be constructive. Please use this page and explain why you suport this key, or add short statements how you could do it differently.

  • As someone who has worked on auto routing before, both with CycleStreets and CloudMade, I can tell you that you don't need this tag. You just need to be clever enough with all the other objective tags out there and you can get good routing, without this subjective tag. Smsm1 22:13, 9 November 2010 (UTC)
  • Please see Routino, which already takes into account multiple lanes, bridges, tunnels, highway preferences and bicycle/walking routes. So its just a matter of figuring out the parameters that you prefer for your trip, which is also much more flexible then a single tag stating the preference of a single person. Dranuhl 31 December 2010

See also