keep-right logodata consistency checks for OSM

These pages show checks that are run on a local excerpt database filled with OSM data.

Data Checks for Europe (Starting point Vienna, Austria)
Data Checks for Australia (Starting point Sydney)
Data Checks for Africa (Starting point Cairo, Egypt)
Data Checks for Canada (Starting point Québec)
Data Checks for USA (Starting point Philadelphia, PA)
Data Checks for Central America (Starting point Santo Domingo, Republica Dominicana)
Data Checks for South America (Starting point São Paulo, Brazil)
Data Checks for Asia (Starting point Tokio, Japan)

Developers have a look at the SourceForge site providing svn access to the sources.
If you want to export errors from KeepRight you will want to have a look at the interfacing guide


https access for JOSM added

A note to all JOSM users: Please turn on the https switch for the remote control feature in your JOSM settings if you haven't done so already. KeepRight has switched over to https, that includes external links such as the edit in JOSM link.

https access available

KeepRight is now available via https: Please use the link to access the site

For archeologists: Old log entries have moved.

a few words on the new comment feature

Please give a comment that helps me improve the check routines if you find a false-positive. Don't confuse the comment box with an editing feature. This is not Potlatch! You cannot add missing tags via KeepRight!

Please note that in order to make the JOSM link work, JOSM must already be running when you hit the JOSM-link. Furthermore you have to enable the 'remote control'-plugin in JOSMs options.

Currently the following checking procedures are implemented

multiple nodes on the same spot
Try to find nodes that are (almost) on the same spot. Distances less than +/-0.5 meters are considered zero

non-closed areas
By convention ways tagged with special combinations of key and value pairs are considered to be areas and are drawn as such in the map. Therefore it is necessary that they form closed loops. Non-closed areas are invisible in the map! The standard.xml file is used to determine which key-value-combinations are drawn as areas; any instance of these has to be closed-loop.

dead-ended one-ways
Streets tagged as one-way must not be dead-ended (where should all the cars pile at the end of the road?). Nodes where just one-way streets begin (or end) cannot be reached (escaped from). Please note that motorways and motorway_links are considered one-way implicitly, so this check applies.

Streets that have (at least) one unconnected end are examined here. If such an end-node is very close to any other way an error is reported. Unconnected end-nodes should probably be connected to adjacent ways.

deprecated tags
As shown in some tags get replaced by others as new tagging conventions evolve. Consider this as a notice, not as an error. The term 'deprecated' is deprecated; you're free to tag anything the way you like. This is just a hint for new tagging conventions that have evolved in the meantime.

missing tags
Ways, nodes and relations should in most cases have at least one tag (besides created_by)

motorways without ref
The ref-tag documents the reference (e.g. 'A 10') for motorways. These are mandatory as they are very important information

places of worship without religion
Churches, mosques and synagogues etc. need an extra religion tag giving info about the religion

point of interest without name
The name tag should be specified for every point of interest as its content gets rendered in the map next to the POI symbol

ways without nodes
Ways that don't consist of at least two nodes don't make much sense as they won't get rendered.

floating islands
Any highways drawn on the map should be accessible by car starting anywhere in the world. Ferries and highways (even railway platforms) are included in this check, so almost any island in the sea should be reachable starting from the mainland.

railway crossings without tag
(Level)-Crossings of railways and highways should have a common node as junction that is tagged with 'railway=level_crossing' if it is a crossing where larger vehicles can cross or with 'railway=crossing' if it is a crossing just for pedestrians

wrongly used railway crossing tag
Ways that take part in level-crossings of railways and highways have to be on the same layer and should in the normal case be not tagged as bridge or tunnel

fixme-tagged items
Nodes, ways or relations that are tagged with FIXME should be reviewed...

relations without type
Find any relation that has no type tag, wich is mandatory for relations.

intersections without junctions
Streets that graphically intersect need a common node that represents the crossing. The only exception are intersections on different layers (eg. bridges or tunnels). Intersections of streets with other objects like waterways or riverbanks should be avoided

overlapping ways
Segments of ways that lie on top of each other (the same nodes connected by different ways in the same order) are a problem for routing software. They happen accidently and are hard to find.

Any way that contains any single node more than twice is considered an error. Any way may contain just one node twice. If more than one node is found twice it is considered an error.

misspelled tags
Tags that are used very seldom and almost look like very common tags (only one character difference) are reported as a warning.

layer conflicts
Connected ways should be on the same layer. Crossings on intermediate nodes of ways on different layers are obviously wrong. Junctions on end-nodes of ways on different layers are also deprecated, but common practice. So you may ignore this part of the check and switch them off separately. Please note that bridges are set to layer +1, and tunnels to -1, anything else to layer 0 implicitly if no layer tag is present.

motorways connected directly
Motorways should only be connected to other motorways or motorway_links. They should especially not be directly connected to highway=primary or highway=residential roads. Please note: This check may produce false positives on motorways ending in cities but it can be a valuable tool for looking up unwanted connections of motorways and other roads.

Administrative Boundaries can be expressed either by tagging ways or by adding them to a relation. They should be closed-loop sequences of ways, they must not self-intersect or split and they must have a name and an admin_level.

This check is about turn restrictions defined by relations. A turn restriction relation needs a valid type attribute, a way as 'from' member, another way as 'to' member and optionally one or more ways or nodes as via members that need to be connected to 'from' and 'to'

missing maxspeed
maxspeed tags are not mandatory but they are very helpful for successful routing. This check shall help users finding highways lacking the maxspeed tag. Please only add maxspeed tags if the allowed maxspeed differs from the default speed for the given highway!

roundabout are always one-way streets directed counter-clockwise in right-hand driving countries or clockwise in left-hand driving countries.

Any highway tagged as (motorway|trunk|primary|secondary)_link should have at least one connection to a (motorway|trunk|primary|secondary) highway or a _link highway of the same type

Someone draws a bridge and forgets to tag it as highway... A bridge should always have one of the 'major' tags that its direct neighbour ways have. Currently these are: highway, railway, cycleway, waterway, footway, piste, aerialway, pipeline, building, via_ferrata

language unknown
To help applications choose the best matching language they should know the language used for the name tag. It is therefore necessary to provide a name:XX tag with the same content as found in the name tag where XX specifies the language used for the name tag.

doubled places
a node inside of an area that is tagged with same name and representing the same physical entity leads to wrong statistics and doubled labels on the map

non-physical use of sport-tag
'sports' is a non-physical tag that needs to be bound to some physical structure like for example a leisure-item or an amenity. Ways tagged with 'sports' solely will be invisible on the map

missing tracktype
highway=track ways should be added with more detail about the tracktype (grade1..grade5). The tracktype is included in rendering rules and makes maps more expressive

geometry glitches
looks for impossible sharp angles on highways and junctions. These may be caused by missing turn restrictions on junctions or glitches along the linestring of ways

If you find an error in my errors lists I would definitely like to hear about it!


This work is done without commercial background, just for my personal pleasure. I would be very happy if it was helpful for the OSM Project.

If you like to contact me, my mailbox at the austrian server of gmx is labelled KeepRight.
Please understand that I will not always be able to immediately respond to your mail on weekdays.