Oxford Congestion Charge tagging scheme

Oxford has recently introduced quite a unique Congestion charge to its City, where It is not a zone, but driving through specific areas. Almost all of the city can be accessed without paying this charge.

Residents can apply for free passes, and Blue badge holders (i think), and commercial vehicles like vans and HGV’s are exempt from the fees.

Oxford has a website with a map here: Map of congestion charge locations and permit areas | Oxfordshire County Council

A user on Reddit (sjgower) also created the below map to better explain the areas you can access in each zone, and is far better than any official map released so far:

I have already had a discussion in one of the Discord groups about ways of tackling this unusual scheme.

Some suggestions have been to make short sections of roads toll roads, or a point with fee=yes, then add conditionals for the times of day, permit requirements, exempt vehicles etc.

Also maybe some input if there is anyone here still from Oxford (I moved away some 20 years ago) who may already be working on a plan.

1 Like

sjgower aka @Socks is also here!

2 Likes

So If I’m reading this correctly, there isn’t actually a fee to enter the areas themselves, you just get fined if you go through one of their camera traps and you don’t have a permit?

That sounds like it just needs an access tag on a small length of that road saying something like:

motorcar=no
motorcar:conditional= yes @ (19:00-07:00); yes @ permit

Although I don’t see the £5 daily permit on the council website so maybe it doesn’t actually count as permit as that’s meant to be “routinely granted to everyone requesting it”.

Do we have something like a residents_permit value? I know some places where it would be helpful for parking restrictions. permit=residents seems to undermine the main definition it a little too much to be in the spirit of the original tag.

1 Like

The £5 option is a toll payable online by midnight the following day, similar to many low emission zones around the country. Not sure if that helps identify the correct tags

1 Like

Thank-you for the map, it is about 10 times more useful and readable than the official Oxford council one.

2 Likes

There is a resident permit scheme, bit it is limited to something like 100 “free” days for residents inside Oxford, 50 days for people who live close to oxford, and 25 for a larger area. What this catchment area is, I am not sure.

The £5 is a fee at the end of the day if you drive through one of these without already having a permit. So it still means anyone can drive through them, but they will have to pay online.

And as a general reply to anyone else, I do think conditionals are the best way to go.
This would also be the first time using conditionals.

Is it better to also list exceptions, so bike, motorbike, HGV etc would always be “yes” alongside motorcar & motorhome no?

And would tagging a short section specifically as a Toll road work? Key:toll - OpenStreetMap Wiki

Or could tagging as a toll be forcing the wrong tags to try and make a routing engine work?

As there’s only one class restricted I’d stick with only tagging for that class, motorcar. There’s a lot of exceptions - basically everything Under “Land-based transportation” in the wiki

But I don’t know exactly how to tag the toll with time exceptions/etc

1 Like

I just looked at the dropoff areas for Heathrow as I think they charge for that in a similar manner.

Some have no fee marked at all, but the Terminal 5 dropoff lane has:
toll=yes
charge=5 GBP
motorcar=yes
operator=Heathrow Airport Holdings
operator:type=private
ownership=private

In this case I think it would be toll:motorcar=yes if this is the best option?

There’s also documentation in the wiki for indicating a charge:conditional and what the fine is.

I don’t know what router support there is for time based tolls, but I suspect it isn’t great. Time based access restrictions might be have better support? The other thing I don’t like about the toll tagging is that I doubt it will have the “feel” of a toll road in person and if Oxfordshire County Council is like other councils they’ll probably make the signage as small as they can legally get away with to try to increase their fine revenue in which case I’d rather the road was just tagged as inaccessible to me without a permit and take the detour.

1 Like

Changeset: Changeset: 174236753 | OpenStreetMap

What I have ended up going with is a combination of these times for the different permitted times without paying or needing to use your pass:

motorcar:conditional= yes @ (19:00-07:00); yes @ permit

motorcar:conditional= yes @ (18:00-07:00,09:00-15:00); yes @ permit

Along with these extra tags for access and tolls:

motorcar=no

toll:motorcar=yes
toll:motorhome=yes
toll:bicycle=no
toll:foot=no
toll:motorcycle=no
charge=5 GBP
operator=Oxfordshire County Council
operator:type=government
payment:phone=yes
payment:license_plate=yes

I was able to find a wiki page for this, and it seems the “only” router (we know of) which accepts conditional tolls is OSMAND.

The better syntax would be

motorcar=permit
motorcar:conditional= yes @ (19:00-07:00)

However, I think that motorcar=no (orpermit) is just wrong. Access is not prevented in any way. All motorcars have access, they just have to pay a charge.

permit in my opinion covers only the resident permits (100, 30 per year or special cases). A paid toll (especially since it is paid afterwards) is not a permit. Moreover, this way there is no way to distinguish the free permits from the paid congestion charge.
toll does not overwrite or modify the access tag, so motorcar=no remains active. In fact, the toll would only apply to night-time and permit-holders (from motorcar:conditional= yes @ (19:00-07:00); yes @ permit) which is the opposite of how it actually is.

What we need is a conditional toll tag, something like.
toll:motorcar=yes
toll:motorcar:conditional=no @ (19:00-07:00); no @ permit
but I don’t know if they are in any way used or if there is another established scheme.

2 Likes

Also note that the congestion charge is a temporary measure, while the long-term plan is to have traffic filters (Oxford traffic filters | Oxfordshire County Council). Those will be actual cases of motorcar=permit, while the current charge is not.

1 Like

Based on Key:charge:conditional - OpenStreetMap Wiki, linked earlier by @InsertUser, the simple solution might actually be something like:

motorcar=yes
toll:motorcar=yes
charge:conditional=5 GBP @ (07:00-19:00); none @ permit

2 Likes

The wiki rather counterintuitively describes a access=permit as something “routinely granted to everyone requesting it”. So the pay-£5-for-access option might count for the approved definition of permit, but the ones that are only granted to residents would not as they aren’t available to everyone.

As I mentioned above, I think we could do with some sort of access tag for things like residents permits that could also be applied to e.g. parking. After a bit more searching in the wiki it looks like access=license was proposed to represent this in the Netherlands although Overpass says it is only used elsewhere.

1 Like

I was not aware of that very US-centric origin of the permit proposal. In all European cases I know of, access=permit is routinely used to describe residential zones (usually city centres) and other cases where access is restricted, with permits being issued to residents and other special categories. I.e. the permit is issued to anybody who requests it, if they meet a requirement. I have never seen them tagged as private.

A single permit issued to anybody when they pay a fee is conceptually more similar to customers, imho. Any parking ticket or toll would count as a permit then. In this case, you also pay after using the road, so you don’t need a permit to access it.

That wiki page recognises how the meaning of the tag has changed over time, so I wouldn’t worry too much about the original proposal.

Regardless, as far as I know, toll roads normally do not need either access=permit or access=customers, so I’d suggest my solution above Oxford Congestion Charge tagging scheme - #14 by gmar5, with conditionality of charge, is the most straightforward.

Thank you for your input InserUser and (welcome) gmar5. I also am slowly starting to think that outright motorcar=no with the conditionals may not be the best, however the lack of support for toll conditionals from a lot of routers is what pushed me that way.

in this case, what is bizarre is there are no zones, and permits can be granted for dozens of reasons, where a person will likely know if they already have a permit or not.

The hard part with defining the toll as “motorcar=yes” is the long list of toll = no, which is pretty much everything other than motorcars. This is alongside Motorcars being able to apply for a permit (such as disabled, work car for transporting tools) but are not default allowed.

E.g. Vans, HVG’s, Motorbikes do not require a permit, as they are allowed. But a care worker in a car can apply for a free 365 day permit.

Thanks for starting the conversation, and sorry I only saw it now via your changeset. I am one of a few active mappers in Oxford, but I don’t follow the forum regularly.

Personally, I think this is simple and accurate:

toll:motorcar=yes
toll:motorhome=yes
charge:conditional=5 GBP @ (07:00-19:00); none @ permit

Nothing else is needed. It reads: If you are in a motorcar or motorhome, you pay a toll. During the day, the charge is 5 GBP. During the night, or if you have one of many different permits, the charge is 0 (no need to go into what the permits are, as you say, if you have one you will know).

I wouldn’t worry about routers, if the map data is accurate. But if the problem is that toll:motorcar=yes is not commonly recognised, then the only alternative is toll=yes with a very long list of toll:*=no for all the other transport modes which are exempted (see Key:access - OpenStreetMap Wiki for a list). I don’t think that’s necessarily better, the problem with conditionals persists: some people using a router will not get accurate instructions anyway, so it is best to focus on the accuracy of the data itself, and human readability.

There is no reason to modify the general access tags. They should go back to motorcar=yes or whatever they were before, since only a charge has been introduced, no other restrictions. The standard way of dealing with fees/tolls is access=yes + fee=yes or similar.

Proposed traffic filters, which are not in place currently, can be tagged and discussed when they happen (when the Botley Road railway bridge reopens, which might not be anytime soon, given past delays). I think access=permit (with detailed exceptions) + access:conditional=yes @ 19:00-7:00 will be enough. I note that Oxford also already has a number of “School Streets” where traffic is similarly restricted during specific hours, with permits issued, and that’s how we mapped it in Oxford.

2 Likes

I’ve moved this into “Tagging help and support” since it seems very much to be a “how to tag” question - hope that is OK!

1 Like

I have already had a discussion in one of the Discord groups about ways of tackling this unusual scheme.

if you want to draw areas, boundary=limited_traffic_zone could maybe applies?

[

Tag:boundary=limited_traffic_zone
wiki.openstreetmap.org

favicon.ico

](https://wiki.openstreetmap.org/wiki/Tag:boundary%3Dlimited_traffic_zone#)