VMS GTFS feed validation results

Validation results for GTFS feed provided by VMS.

Also have a look at GTFS issue tracker.

Contact: Jens Flemming

GTFS feed version: 2026-04-13

Sections:

Non-IFOPT IDs [link]

Stops in DELFI's feed should use IFOPTs as stop ID. Some do, some do not, and some use an IFOPT suffixed by one or multiple _G. The table shows correponding counts.

See also GTFS issue 115.

location type IFOPT IFOPT with _G not IFOPT all
1 (station) 0 0 0 0
0 (platform) 8448 0 0 8448
2/3 (misc) 0 0 0 0
all 8448 0 0 8448

Non-IFOPT station IDs [link]

No stations with non-IFOPT ID found.

Non-IFOPT platform IDs [link]

No platforms with non-IFOPT ID found.

Non-IFOPT misc object IDs [link]

No misc objects with non-IFOPT ID found.

Not in ZHV [link]

Stops in DELFI's feed should use IFOPTs as stop ID. The table shows how many of the used IFOPTs starting with "de:" are listed in DELFI ZHV (_G suffixes are ignored).

See also GTFS issue 121.

location type in ZHV not in ZHV, but parent object and parent not in ZHV all
1 (station) 0 0 0 0
0 (platform) 8410 11 16 8437
2/3 (misc) 0 0 0 0
all 8410 11 16 8437

Stations not in ZHV [link]

No stations with IFOPT not in ZHV.

Platforms not in ZHV [link]

Found 27 platforms with IFOPT not in ZHV.

ID parent in ZHV name
de:14511:30204:0:BNEH False Chemnitz, Puschkinstr
de:14511:30204:0:BSEH False Chemnitz, Puschkinstr
de:14521:40709:0:BNEH False Annaberg-Buchholz, EH Sparkasse/Annenkirche
de:14522:80095:0:BW False Döbeln, Am Walduferviertel
de:14524:1206:0:BO False Zwickau, Oberhohndorf Schule EH
de:14729:12362::01 False Narsdorf, Grüne Tanne
de:14729:12362::02 False Narsdorf, Grüne Tanne
de:14729:12362::03 False Narsdorf, Grüne Tanne
de:14729:12362::06 False Narsdorf, Grüne Tanne
de:14729:15964::01 False Motterwitz, Abzw
de:16077:12577::01 False Ponitz, Merlach, Dreierhäuschen
de:16077:12577::02 False Ponitz, Merlach, Dreierhäuschen
de:16077:31212::01 False Ponitz, ehem Gh Schnabel
de:16077:31212::02 False Ponitz, ehem Gh Schnabel
de:16077:31213::01 False Gößnitz, Zwickauer Str
de:16077:31213::02 False Gößnitz, Zwickauer Str
de:14511:30447:2:BOEH True Chemnitz, Altendorfer Str
de:14524:10372:0:BWSB True Werdau, Theodor-Körner-Str
de:14524:1207:0:BS True Stenn, Schusterweg
de:14729:12361::01 True Narsdorf, Bahnhof
de:14729:12364::01 True Narsdorf, Kohrener Weg
de:14729:12364::06 True Narsdorf, Kohrener Weg
de:14729:12785::01 True Geithain, Dresdener Str 35
de:14729:12785::06 True Geithain, Dresdener Str 35
de:14729:16298::02 True Zschoppach, Dresdner Str
de:14729:17057::03 True Seidewitz, Abzw Böhlen
de:14729:30769:0:BN2 True Böhlen, Schule

Misc objects not in ZHV [link]

No misc objects with IFOPT not in ZHV.

Not in Germany/Europe [link]

The list shows all stations, platforms, misc objects that violate at least one of the following criteria:

Thus, objects in the list do not lie in Germany (although ID starts with "de:") or not in Europe.

See also GTFS issue 35.

No objects outside Germany/Europe found.

Multiple objects at same location [link]

The three lists below show all stations, platforms, misc objects sharing their location with another object of same type. Two objects are considered "at the same location" if their distance is at most 1 meters. All objects of same type and location have a common group ID.

See also GTFS issue 44.

Stations [link]

No locations with multiple stations found.

Platforms [link]

Found 24 platforms sharing their location with another platform.

ID lat lon group ID name
gen:14511:30029:2:2U 50.79082977 12.92626287 101 Chemnitz, Altchemnitz
de:14511:30029:2:BN2 50.79082409 12.92627185 101 Chemnitz, Altchemnitz 2
de:14511:30029:2:BS 50.79072187 12.92574184 102 Chemnitz, Altchemnitz 3
gen:14511:30029:2:3U 50.79072755 12.92574184 102 Chemnitz, Altchemnitz
de:14511:30277:1:TN 50.79413467 12.92240909 614 Chemnitz, Schneeberger Str
de:14511:30277:2:BN 50.79413467 12.92240909 614 Chemnitz, Schneeberger Str
gen:14521:40029:0:BSU 50.57236604 13.00249390 2027 Annaberg-Buchholz, Bärensteiner Str
de:14521:40029:0:BS 50.57236604 13.00249390 2027 Annaberg-Buchholz, Bärensteiner Str
gen:14522:60095:2:BO1U 50.93455832 12.69761468 3831 Penig, Bahnhof
de:14522:60095:0:BO1 50.93455832 12.69761468 3831 Penig, Bahnhof
de:14522:70067:0:BO 50.87316120 13.29668317 4749 St. Michaelis, Schulhof
gen:14522:70067:0:BWU 50.87316120 13.29668317 4749 St. Michaelis, Schulhof
de:14522:80573:0:BO 51.09490208 12.97576004 6275 Hartha, Richard-Wagner-Str
gen:14522:80573:0:BOU 51.09490772 12.97575106 6275 Hartha, Richard-Wagner-Str
de:14524:1009:1:TO 50.70274363 12.49045419 6340 Zwickau, Reuterweg
de:14524:1009:2:BW 50.70274363 12.49045419 6340 Zwickau, Reuterweg
de:14524:1011:1:TN 50.69597273 12.48001577 6357 Zwickau, Himmelfürststr
de:14524:1011:2:BS 50.69597273 12.48001577 6357 Zwickau, Himmelfürststr
gen:14524:10340:0:BOU 50.74512774 12.60056968 6717 Mülsen St Jacob, Funkenburg
de:14524:10340:0:BO 50.74512206 12.60057866 6717 Mülsen St Jacob, Funkenburg
gen:14524:20226:0:BSU 50.79863169 12.69770451 7975 Hohenstein-Ernstthal, Schlackenweg
de:14524:20226:0:BS 50.79862601 12.69770451 7975 Hohenstein-Ernstthal, Schlackenweg
de:14524:20319:0:BO 50.85421815 12.78280192 8050 Limbach-Oberfrohna, Chemnitzer Str/Ostring
gen:14524:20319:0:BOU 50.85422382 12.78279293 8050 Limbach-Oberfrohna, Chemnitzer Str/Ostring

Misc objects [link]

No locations with multiple misc objects found.

Duplicate trips [link]

A GTFS feed may (but shouldn't) contain duplicate trips. Two trips are considered identical if all of the following criteria are satisfied:

Thus, two trips are considered identical if corresponding vehicles travel at the same time along routes with (almost) identical stop locations.

See also GTFS issue 89.

Pairs of duplicate trips [link]

Column "identical stops" contains "True" if all stop pairs of the two trips are identical (same ID). If at least one stop pair has different IDs, the value is "False". Last two columns show how many of each trip's service days overlap with the other trip. A value of 100 in both columns thus means that all service days of both trips are identical.

Found 18 pairs of duplicate trips.

Trip pairs with 100 per cent service day overlap: 15

Trip pairs with partial service day overlap: 3

ID trip 1 ID trip 2 route ID for trip 1 route ID for trip 2 identical stops overlapping days in trip 1 [per cent] overlapping days in trip 2 [per cent]
37.T2.51-C13-j25-4.5.H 38.T2.51-C13-j25-4.5.H de:vms:51-C13 de:vms:51-C13 True 100 100
1.T0.40-430-j25-1.1.H 2.T0.40-430-j25-1.1.H de:vms:40-430 de:vms:40-430 True 100 100
1.T0.40-430-j25-2.1.H 2.T0.40-430-j25-2.1.H de:vms:40-430 de:vms:40-430 True 100 100
1.T0.40-430-j25-3.1.H 2.T0.40-430-j25-3.1.H de:vms:40-430 de:vms:40-430 True 100 100
1.T0.40-430-j25-4.1.H 2.T0.40-430-j25-4.1.H de:vms:40-430 de:vms:40-430 True 100 100
1.T0.40-430-j25-5.1.H 2.T0.40-430-j25-5.1.H de:vms:40-430 de:vms:40-430 True 100 100
105.T0.20-196-j25-1.4.R 106.T0.20-196-j25-1.4.R de:vms:20-196 de:vms:20-196 True 100 100
5.T0.20-247-j25-1.4.R 6.T0.20-247-j25-1.4.R de:vms:20-247 de:vms:20-247 True 100 100
12.T0.32-26-j25-1.1.R 13.T0.32-26-j25-1.1.R de:vms:32-26 de:vms:32-26 True 100 100
22.T0.70-786-D-j25-2.11.H 23.T0.70-786-D-j25-2.11.H de:vms:70-786-D de:vms:70-786-D True 100 100
8.T2.60-640-D-j25-1.28.R 9.T2.60-640-D-j25-1.28.R de:vms:60-640-D de:vms:60-640-D True 100 100
8.T3.60-640-D-j25-1.28.R 9.T3.60-640-D-j25-1.28.R de:vms:60-640-D de:vms:60-640-D True 100 100
17.T0.40-364-j25-2.12.H 18.T0.40-364-j25-2.12.H de:vms:40-364 de:vms:40-364 True 100 100
17.T0.40-364-j25-3.12.H 18.T0.40-364-j25-3.12.H de:vms:40-364 de:vms:40-364 True 100 100
8.T3.70-737-D-j25-1.4.H 9.T3.70-737-D-j25-1.4.H de:vms:70-737-D de:vms:70-737-D True 100 100
23.T0.10-173-j25-1.5.H 32.T0.10-173-j25-1.5.H de:vms:10-173 de:vms:10-173 True 100 76
23.T0.10-173-j25-2.5.H 32.T0.10-173-j25-2.5.H de:vms:10-173 de:vms:10-173 True 100 75
37.T3.51-C13-j25-4.5.H 38.T3.51-C13-j25-4.5.H de:vms:51-C13 de:vms:51-C13 True 50 100

Routes with duplicate trips [link]

Found 10 routes with duplicate trips.

Routes with duplicate trips within the route: 10

Routes with duplicate trips in other routes: 0

route ID short name agency ID route type trips total duplicates within route duplicates in other routes IDs of other routes
de:vms:70-786-D 786 80 3 75 1 0
de:vms:70-737-D 737 80 3 192 1 0
de:vms:60-640-D 640 60 3 551 2 0
de:vms:51-C13 C13EV 53 3 357 2 0
de:vms:40-364 364 40 3 59 2 0
de:vms:40-430 430 40 3 160 5 0
de:vms:32-26 26 30 3 234 1 0
de:vms:20-196 196 20 3 40 1 0
de:vms:20-247 247 20 3 25 1 0
de:vms:10-173 173 10 3 126 2 0

Stop pairs from duplicate trips [link]

No stop pairs from duplicate trips found.

Funding

The code for creating these validation results originates from the VeriBus project. VeriBus was a government-funded project at Zwickau University of Applied Sciences. Funding was provided by the German Federal Ministry of Transport from 2024 till 2026. For legal reasons, we state the following funding information in German:

Das Projekt VeriBus wird im Rahmen der Innovationsinitiative mFUND mit insgesamt 158.464,31 Euro durch das Bundesministerium für Verkehr gefördert.

Logo Bundesministerium für Verkehr Logo mFUND