on 25/8/26, we were a combination of bored enough and annoyed enough to start cleaning up the metadata of german railway stations, so as the track numbers actually appear in clients such as OpenRailwayMap (ORM) ((which we use regularly))

today we are going to formalize the process, also so that our commit history is less tedious to write

anything we do which is to further the purpose of creating a basic standard of german railway OSM cartography will be simply marked as “DMC - [bahnhofname]”

and further, in almost every case unless otherwise specified, our information comes from the database within Bahnhof.de supplied by the Deutsche Bahn, and our own knowledge from living within and travelling across germany

Discussion

Comment from chris_debian on 29 August 2026 at 23:18

Hi, thanks for starting this; track number metadata on German stations has definitely been patchy, and getting ref/local_ref (platforms) and railway:track_ref (tracks) actually populated so ORM renders them properly is a good use of time.

A couple of questions on the approach:

  1. Licensing of the Bahnhof.de data – could you say a bit more about what you’re pulling from there (raw platform/track numbers, or derived text)? OSM needs source data to be ODbL-compatible, so it’d be useful to know whether this is “sourced from” in a licence-compatible sense, or “verified against, not copied from”.

  2. Scope/coverage so far – is there a list anywhere (wiki page, changeset comments, gist) of which stations/regions have already been done under the “DMC” tag? Useful context for anyone thinking about where the gaps are.

A thought on possible next steps, for what it’s worth: this seems like a good candidate for an Overpass-based coverage-gap checker – something that flags German stations missing ref/local_ref on platforms or railway:track_ref on tracks, so the remaining work is a ranked worklist rather than something held in memory. Not sure if anything like that exists already – might be worth a mention on the wiki or talk-de list if there’s interest in others picking bits of this up.

Would be interested to hear how you’re thinking of taking this forward.

Thanks,

Chris (UK)

Comment from Hiki is railing on 31 August 2026 at 11:25

hey chris :3

so firstly, to be fair going into this we did not expect there to be any data sourcing rights issues regarding Bahnhof.de

honestly we didn’t check

but, the way this has been working is that we personally know how these stations are in broader sense layed out, because we have travelled across most of germany by Deutschlandticket at this point and have a pretty decent understanding of the railways

we’ll double check information by looking up the station in bahnhof.de, which is a public frontend for exactly this information, which shows a lot of information but importantly for us the station’s track numbers

bahnhof.de is however not the only source of information we use, as we also use information available within HAFAS via either DBnav on our phone or by a website called bahnexperte.

in terms of data rights, from everything we know about this (and we could be wrong but we don’t believe we are), the information about what track is numbered what, for any given station in germany, is fully publically available both in person and on the internet. that means it is covered even within the realm of copyright as public information. similar to someone’s name or address should they be the owner of a business within germany (obviously a different thing but same kind of principal)

.

aside from that, we started this project last week with a working title of “Deutsche bahn Metadatei Cleanup” so we can simply mark our commits with that instead of putting every exact source in every station’s commit (you by now have seen the scale of this and probably understand the necessity of it, to not drive us insane)

this project is currently just us, and we decided from the start to work from each federal state one at a time. we currently are in the process of filling out the data across Schleswig-Holstein and to an extent Hamburg, and am not yet done with that (but to be fair, “done” is a very subjective concept with OSM lol)

we’d love to scale this, to have a few people working on this, maybe coordinating each of us to work on one federal state at a time, or something else- whatever makes sense

we simply don’t know how would be best to do this. and, in terms of creating a way for OSM to pester people to add metadata where it is missing, it feels difficult to achieve considering that there is functionally no difference between normal railway tracks and tracks at train stations, which further are used as passenger train platform tracks.

if we’re wrong about that let us know, but it feels like adding “please add a trackref number to the metadata” would also inadvertently affect effectively all of the railways plotted in OSM wholistically, which is i hope you can understand, not ideal x3.

.

for scope, we intend to on a basic level, ensure that every passenger train station in germany has data which lists the track number of any currently in use track

beyond that, we notice a lot that the basic quality of the track lines themselves, as well as a lot of platform geometry across stations in germany, need to be improved. we would like to, when done with the basics, go through and refine the shape and quality of the german railway network in OSM as a whole (using at bare minimum, the satellite data available in OSM’s own editor)

.

but yeah, thanks for the support ^-^

~{Arsons}

Comment from chris_debian on 31 August 2026 at 14:06

Thanks for the detailed reply, that all makes sense on the sourcing side.

On the coordination/scaling question - I could build the Overpass-based coverage-gap checker I mentioned, so you (or anyone else who joins in) has a ranked list of what’s still missing per federal state, rather than having to work it out by hand. Before I build it, a few things I don’t know yet that would help get it right:

  1. What tag(s) are you actually adding for the track number - is it ref or local_ref on the platform way/node, or something else? And are you grouping each station’s platforms under a public_transport=stop_area relation, or tagging them some other way?
  2. How are you scoping “passenger train station” - just railway=station/railway=halt with regional or long-distance service, or does that include S-Bahn/tram-only stops too?
  3. Do disused or out-of-service tracks need excluding, and if so, how are those tagged in your data (e.g. disused:railway=platform)?
  4. On coverage tracking - is there anything already in place (a wiki page, a changeset convention, anything), or would a per-state gap list from the checker be the first real record of what’s done?

Once I know the actual tagging pattern you’re using, I can point the checker at it properly rather than guessing. Happy to share the output/code once it’s working, in case it’s useful for coordinating with others too.

Don’t be afraid to say what you don’t know, we’ll find a way!

Cheers,

Chris

Comment from Hiki is railing on 1 September 2026 at 10:50

1) in a very basic level, we have been simply adding the track number under the tag ‘railway:track_ref = [integer (track number)]’

-

2) with the basic requirement that the track is currently in use for any passenger service (regional, long distance, s-bahn, etc.), at every railway station in germany (both proper Bahnhofe, and Haltepunkte)

if possible, labelling straßenbahn /stadtbahn platforms, as well as u-bahn platforms, would be ideal where applicable (many tram networks especially do not openly label these things, or the information is harder to access), but on a basic level we wish to raise the standard for german railways on OSM from “the track geometry is there at all” to “the track and platform geometry is present, accurate, and contains a basic amount of metadata which makes wayfinding easier to achieve when using tools such as ORM”

-

3) we’re split on that to be completely honest

personally, even just in an autistic sense, we wish to include as much data wherever at all reasonably possible (so, yes including currently disused stations) - but, that could also be a project more fitting for something like OpenHistoryMap or however that is called

(we’d love to get more into that, but it’s currently not a focus right now)

but yeah, fundamentally we should be prioritizing things which are in use, and if possible adding more detail to existing but unused infrastructure as well

-

4) currently, the only place we have to keep track of our progress is our own notes.

However, we do want to try to formalize this somehow, both in having a more accessible progress log as well as potentially bringing others onto the project

(our sister has already also said she’s wanted to help, which we really appreciate - we just are trying to figure out how to manage this as a larger project, /where to host this kind of coordination (discord, signal, otherwise(?)) /how best to track progress across multiple contributors /what specific basic criteria we want to enforce as “the new standard to strive for”, etc.)

-

otherwise, if you would be interested we are more than happy to establish a more direct form of contact, if you’d want to actually join along and form this into a group effort ^-^

anyway we do appreciate you asking all this, it’s good for us to think this all out before properly getting into it- so we don’t waste too much time with figuring this out as we go lol

~{Arsons}

Leave a comment

Log in to leave a comment