Pedestrians on nordic pistes

When dealing with a nordic piste, I recently stumbled on the tag “winter:foot=no”, which was apparently meant to convey the fact that pedestrians are asked (by way of a sign) not to walk in the piste when it is groomed.
Obviously, “winter:foot=no” does not make a lot of sense, and I was unable to find an established convincing alternative.

@Langlaeufer suggested, as an idea, foot:conditional=no @ snow. This seems to me the most sensible tagging because an amount of snow that deserves being mentioned usually leads to these pistes being groomed.

However, while foot:conditional=no @ snow exists in the database a few times (I checked in Germany only), none of these instances is related to pistes.

So is there any established tagging for cases where pedestrians are not allowed when a piste is groomed?

1 Like

I thought I had a photo of a ban on snowmobiles on nordic pistes, with an EUR 250 fine, but I can find neither the photo nor the way it applied to.

1 Like

Common sense indicates that it’s not cool to walk on a nicely groomed cross-country ski piste. Local information and signs also say so, and so does angry skiers speeding toward a walking familly (with or without dog).

I doubt foot:conditional=no @ snow in OSM will help, but it seems a correct way to tag this restriction.


Many of the cross-country ski trails in my local ski resort are former logging roads. They’re wide enough to simultaneously support cross-country skiing, snowshoeing, and the occasional foolhardy individual floundering through deep snow. Other trails are not, and are signed as being ski-only. Some way of tagging this distinction would be useful.

Yes, this probably depends on the area and local customs : here where I ski in the Jura, cross-country ski pistes are groomed daily for classic and skating in the most perfect way you can imagine. For comparison, this could compare to a golf course, I suppose.
Even skaters refrain to ski after the ratrack in the evening to avoid letting traces that would freeze overnight on the wide corduroy flat track.
So yes, foot:conditional=no@snow would be the default, I guess.

One of the problems with conditional restrictions is that there are relatively rarely supported; especially with such less-popular values in them. So vast majority of OSM users would still be mislead on such pistes even with foot:conditional = no @ snow.

So I would instead recommend to fail in a safe way when conditions are not supported, e.g.:

foot = no
foot:conditional = yes @ (Apr-Sep)
access:description = Forbidden walking when groomed snow on piste, only skiing allowed then.


  • if the router does not support “*:conditional”, it will fallback to safe “foot=no”, which would disallow access at all times, and use other (perhaps somewhat longer, but always safe) route to reach the destination.
  • Also, date&time conditional restrictions are one of the most likely ones to be supported if conditional restrictions are supported at all. (after all, the navigation app will always know what time and date it is, but it would be hard pressed to find out automatically if there is snow on some location or not - at best it would probably ask the user, or could try to guess by lookuping some external meteorological data source, which might or might not reflect the reality). In any case, I don’t know of any service or app that actually supports conditional directives like @snow (does anyone?);


  • well, as you obviously can’t be super-precise there, you should tweak that dates/months to something sensible for your country. (it should be noted that snow is not the same as groomed either, so neither is perfectly precise – thus human readable access:description to provides details which are not machine-readable)

If we assume that foot=no is default if the piste is groomed then I would suggest
piste:foot=designated if pedestrians are explicitly allowed.

piste:foot = no/yes/designated (for foot access when the piste is groomed)

additionally optional foot:conditional=* for general foot access in winter or at snow conditions

But I have no hope that pedestrian routing will use this information.

Thank you all, my question whether there is any established tagging for pedestrians on nordic pistes has been satisfactorily and unequivocally answered :wink: (it’s “no”)

I understand that there are pistes that are only pistes (these are not and should not be part of pedestrian routing) and pistes that are on highway=*s.

The problem arises when there is a piste on a highway=* (track, for example). Piste could imply foot=no, if routers were given this advice, but the highway=track implies foot=yes. Or piste could imply nothing regarding foot, and pedestrian routers could be asked to ignore pistes (like they ignore, to my knowledge, man_made=cutline, although one could walk along them).

If pedestrian routers ignored piste tagging, it would be down to access tags to route pedestrians. I liked @Langlaeufer 's original idea with “no @ snow” because, on the one hand, it is similar to the established “@ rain” and routers might actually connect to weather information at some point, and on the other hand, it is quite (if not a 100%) close to what is actually true, namely “when the piste is groomed”, which I agree should be added as a description.
I like this idea better than any conditional referring to a time period (months or winter) because that would shut off pedestrians for too long, and I like it better that anything including “piste:” because that does not include reference to weather conditions and is also new tagging in contrast to foot:conditional, so I expect that your original idea “no @ snow” is the most likely to be actually used by routing.

While I do agree with you that it is most precise for machine parsing, I find your belief that it would actually be used for routing to be overly optimistic (to say the least). Have you ever heard of any pedestrian OSM router that actually does that (or anything close to that)? I certainly haven’t.

Perhaps this hybrid might capture both the precision and a chance to actually be at least partially used:

foot = no
foot:conditional = yes; no @ snow
access:description = Forbidden walking when groomed snow on piste, only skiing allowed then.
There would be four classes of routes (click for details):
  • one which does not handle conditional routing at all (majority of them) - it would use only safe foot=no

  • one which handles conditional routing partially (i.e. knows how to handle basic *:conditional, but does not know how to handle snow) in a fail-safe way. Because it is written in fail-safe mode, failure to fully parse conditional routing will result in it ignoring whole foot:conditional; i.e. it would fall back to safe foot=no

  • one which handles conditional routing partially (i.e. knows how to handle basic *:conditional, but does not know how to handle snow) but in a unsafe way. Because it is written in unsafe (best-effort) way, failure to fully parse conditional routing will result in ignoring only parts it does not understand and using the rest. Thus, it would use only foot:conditional = yes, and proceed with unsafely suggesting to the pedestrian to use the piste in snowy winter.

  • some imaginary unicorn router (i.e. does not exist to the best of my knowledge) which knows the weather conditions and user mode of transport and parses conditional restrictions fully (including the snow keyword, matching it against snow on the ground). It would fully parse and use safe no @ snow part. This one is obviously ideal situation, the only problem is that is imaginary (i.e. like unicorns, does not actually exist).

So (in addition to precise specification), this suggestion would work safely in 3 out of 4 router classes AKA have at least 75% safety rating (assuming all router classes are equally abundant, which is obviously not true - the first is most abundant of all, so such tagging would actually be likely above 90% safe).

Using foot:conditional=no @ snow might save you using one extra tag (due to implied foot=yes in highway=track for example), but instead would work only in 4th router class, meaning the safety would be at most 25% (and more likely 0% safe if you test against currently existing routers).

TL;DR: best use foot = no + foot:conditional = yes; no @ snow + access:description=*

… another solution that should be already supported would be to map explicitly piste:type=nordic;hike
See piste:type=nordic;hike | Tags | OpenStreetMap Taginfo

I’m afraid a lot of routers will stop at foot=no, making some tracks non routable in summer. I’m not excusing those routers, but the piste:* tags, up to now, are completely transparent for data consumers that do not care about skiing (the vast majority). Proposed foot=no is a breach of this status quo that has otherwise proven to be quite practical.

I’ll add that the said “safe” fallback to ‘no route for pedestrian here’ for routers that don’t handle conditional no@snow (that is, as being already said, all routers) is a no go for me: the majority of the year, the track is perfectly fine to walk on.


@38446 For our problem in the Harz mountains, foot=no is not an option, as the cross-country ski trails mostly use normal paths and trails and we would destroy the routing for hikers all year round.
For xc ski trails which are not on “highways” we have no problem with pedestrian routing at all.


Thanks, this is better than piste:foot.

Yeah, that’s why my initial suggestion was to use months instead, which are more supported (but then again, not as precise)… But yes, one would have to make a choice about what they prefer:

  • potentially endanger human lives by misleading pedestrians on dangerous pistes in winter, but making their walks more convenient and shorter in summer (use “foot:conditional=no @ snow” if you prefer this)

  • make humans safe at all times, but less convenient in summer (as they’d be routed along alternative longer routes, even if they could use those shorter routes when there is no snow) (use “foot = no + foot:conditional = yes; no @ snoworfoot = no + foot:conditional = yes @ (Apr-Sep)” if you prefer this)

There is no silver bullet, and neither solution is perfect.

I’ve seen what happens in former option (because, in my experience it seems that many people will trust what their mobile devices says to them without doublechecking) and would like to avoid it bringing them (and even more so, unrelated other people) in danger, so I prefer the latter (“safe”) option. YMMV.

1 Like

btw. it is not a problem with pedestrian routing only. we also do not like to have horses, bicycles, vehicles etc at the piste. So I would prefer following tagging.

access:conditional = no @ snow

I’m really not a specialist in access restrictions, but I see no drawback in this solution (except for the sake of your skis in summer, be here common sense would apply).

@Matija_Nalis , I appreciate your focus on router support. By most likely I did not mean that it is likely in absolute terms but only that in my expectation the other options are less likely. Although I am admittedly unsure if that is even true.

I don’t quite get the point about piste:type=hike yet. Do routers already support it? And if they do, isn’t there a highway=* anyway when pedestrians are allowed on the piste?

My motivation for tagging this is for pedestrians to get a warning that the route they are about to take might be closed for them because of the piste. So I could live very well with the “unicorn” conditional plus, as a double fallback, the following: 1) routers should offer the option to let the user avoid highways that are at the same time tagged with piste so they just need to look out of the window or check the tourism agency website if pistes are groomed 2) a note or description as described above, maybe even plus width=*.

Not, if it is only on snow conditions.It only tells, that the snow is prepared like a piste but to walk on it.

I’m trying to think about what I might do with foot:conditional=no @ snow as a data consumer. If I was only interested in labeling and not routing, I might label it as “no pedestrians in winter” or something like that. For routing I would probably just estimate what months snow was likely and then consider it to mean no foot access allowed in those months. I would likely get this estimate quite wrong for many areas since snowy periods vary by latitude and elevation. A local mapper tagging foot:conditional=no @ (Month-Month) would probably provide a more accurate estimate. Of course snowy periods vary from year to year so any tagging for this sort of thing will be wrong some of the time.

Just to be clear: is it an ask, or is it a legal order banning pedestrians?

access=discouraged should be used when “legal right of way exists (see yes) but usage is officially discouraged” according to the Wiki.

1 Like