← All projects

Zugvogel

Zugvogel shows the trains running across Germany on a live map: long-distance, regional and local transport, coloured by delay, right in your browser.

Open Zugvogel →
Screenshot of Zugvogel

What you can see

Zugvogel draws every train currently running in Germany on one map. You can switch between long-distance trains (ICE, IC, EC and others), regional trains (RE, RB, S-Bahn) or both. When you zoom in to a city, local transport appears as well: trams, U-Bahn and Stadtbahn, ferries and funiculars. Buses are not included.

Each train is coloured by its delay: on time, 6–14 minutes late, 15 minutes or more, or grey when there is no live data for it. Six minutes is Deutsche Bahn’s own threshold for punctuality.

The map is available in German and English, with a light and a dark theme.

How the positions are estimated

Deutsche Bahn doesn’t publish where its trains actually are. What is public is the timetable and a realtime feed of delay predictions, cancellations and skipped stops. Zugvogel combines the two into a timeline for each train: when it arrives at and leaves every station. Your browser then moves the train along the track between those stations, slowing it into and out of stops, and keeps updating its position. A train shown at a station is between its predicted arrival and departure there.

Where the data comes from

Limitations

FAQ

Is this an official Deutsche Bahn app?

No. Zugvogel is an independent hobby project by Robin and isn't affiliated with Deutsche Bahn. It is built entirely on open data.

Does it work on a phone?

Yes. On small screens it switches to a phone layout, and train details open as a sheet from the bottom.

Why does a train suddenly jump?

A train's position is calculated from its predicted arrival and departure times. When a new delay prediction comes in, the train is redrawn where the new times put it, which can be forwards or backwards along the track. The same happens when a train gets live data for the first time, and when you return to a browser tab that was in the background.

How often is the data updated?

Delays are refreshed every minute or two, and train positions are recalculated continuously in between. The track data is updated weekly.

Why can't I find a train?

Check the filters first: long-distance, regional or all, the category chips, and local transport, which only appears when you zoom in. Cancelled trains are not drawn, and trains that are not in the published timetable, such as short-notice extra trains, and buses are not included.