vmt — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-07-03T15:13:20Z,
for the dataset file:///shared/vmt_00c4dc2e.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
VMT GmbH
Feed Email:
Fahrplandaten@vmt-thueringen.de
Feed Language:
German
Feed Start Date:
2026-05-01
Feed End Date:
2026-11-30

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. feed_info.txt
  5. frequencies.txt
  6. routes.txt
  7. shapes.txt
  8. stop_times.txt
  9. stops.txt
  10. transfers.txt
  11. trips.txt

Counts


  • Agencies: 43
  • Blocks: 37201
  • Routes: 840
  • Shapes: 0
  • Stops: 12788
  • Trips: 127437

Specification Compliance report

6978 notices reported (0 errors, 4073 warnings, 2905 infos)

Notice Code Severity Total
duplicate_route_name WARNING 61

duplicate_route_name

Two distinct routes have either the same route_short_name, the same route_long_name, or the same combination of route_short_name and route_long_name.

All routes of the same route_type with the same agency_id should have unique combinations of route_short_name and route_long_name.

Note that there may be valid cases where routes have the same short and long name, e.g., if they serve different areas. However, different directions must be modeled as the same route.

Example of bad data:

route_id route_short_name route_long_name
route1 U1 Southern
route2 U1 Southern

You can see more about this notice here.

Only the first 50 of 61 affected records are displayed below.

csvRowNumber1 (?) The row number of the first occurrence. routeId1 (?) The id of the the first occurrence. csvRowNumber2 (?) The row number of the other occurrence. routeId2 (?) The id of the the other occurrence. routeShortName (?) Common `routes.route_short_name`. routeLongName (?) Common `routes.route_long_name`. routeTypeValue (?) Common `routes.route_type`. agencyId (?) Common `routes.agency_id`.
5 "4961_2" 8 "4513_2" "HSB326" "" 2 "166"
9 "4512_2" 10 "4511_2" "HSB325" "" 2 "166"
139 "3547_3" 140 "3546_3" "18" "" 3 "112"
175 "7202_3" 176 "7201_3" "252" "" 3 "114"
177 "5547_3" 178 "5546_3" "3" "" 3 "114"
181 "3997_3" 182 "3996_3" "282" "" 3 "114"
185 "3010_3" 186 "3009_3" "292" "" 3 "114"
183 "3012_3" 187 "3007_3" "291" "" 3 "114"
188 "3006_3" 189 "3005_3" "293" "" 3 "114"
184 "3011_3" 190 "3004_3" "289" "" 3 "114"
194 "3000_3" 199 "2995_3" "287" "" 3 "114"
196 "2998_3" 200 "2994_3" "285" "" 3 "114"
195 "2999_3" 201 "2993_3" "286" "" 3 "114"
192 "3002_3" 202 "2992_3" "281" "" 3 "114"
198 "2996_3" 204 "2990_3" "280" "" 3 "114"
205 "2989_3" 206 "2988_3" "255" "" 3 "114"
193 "3001_3" 207 "2987_3" "253" "" 3 "114"
197 "2997_3" 208 "2986_3" "249" "" 3 "114"
203 "2991_3" 209 "2985_3" "248" "" 3 "114"
210 "2984_3" 211 "2981_3" "288" "" 3 "114"
215 "2974_3" 216 "2973_3" "233" "" 3 "114"
191 "3003_3" 218 "2971_3" "247" "" 3 "114"
212 "2977_3" 221 "2968_3" "237" "" 3 "114"
220 "2969_3" 222 "2967_3" "240" "" 3 "114"
223 "2966_3" 224 "2965_3" "239" "" 3 "114"
219 "2970_3" 225 "2964_3" "238" "" 3 "114"
213 "2976_3" 226 "2963_3" "236" "" 3 "114"
217 "2972_3" 227 "2961_3" "235" "" 3 "114"
180 "4831_3" 230 "2958_3" "1" "" 3 "114"
228 "2960_3" 231 "2957_3" "232" "" 3 "114"
229 "2959_3" 233 "2955_3" "223" "" 3 "114"
236 "2952_3" 239 "2947_3" "218" "" 3 "114"
232 "2956_3" 240 "2946_3" "229" "" 3 "114"
234 "2954_3" 241 "2945_3" "228" "" 3 "114"
238 "2949_3" 242 "2944_3" "217" "" 3 "114"
243 "2943_3" 244 "2942_3" "226" "" 3 "114"
237 "2950_3" 246 "2940_3" "219" "" 3 "114"
235 "2953_3" 247 "2938_3" "221" "" 3 "114"
245 "2941_3" 248 "2937_3" "224" "" 3 "114"
179 "4832_3" 249 "2936_3" "2" "" 3 "114"
250 "2935_3" 251 "2933_3" "225" "" 3 "114"
326 "9086_0" 364 "2842_0" "2" "" 0 "119"
379 "5721_3" 388 "3745_3" "2" "" 3 "137"
378 "5722_3" 392 "3741_3" "5" "" 3 "137"
468 "6849_3" 469 "6848_3" "701" "" 3 "44"
468 "6849_3" 470 "6847_3" "701" "" 3 "44"
466 "6851_3" 481 "6655_3" "710" "" 3 "44"
468 "6849_3" 488 "6648_3" "701" "" 3 "44"
616 "9210_2" 626 "7997_2" "RE29" "" 2 "78"
617 "9209_2" 627 "7996_2" "RE28" "" 2 "78"
expired_calendar WARNING 837

expired_calendar

Dataset should not contain date ranges for services that have already expired.

This warning takes into account the calendar_dates.txt file as well as the calendar.txt file.

You can see more about this notice here.

Only the first 50 of 837 affected records are displayed below.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
4 "3"
21 "20"
26 "25"
27 "26"
28 "27"
29 "28"
32 "31"
33 "32"
34 "33"
36 "35"
37 "36"
39 "38"
40 "39"
41 "40"
42 "41"
43 "42"
45 "44"
46 "45"
47 "46"
48 "47"
55 "54"
57 "56"
58 "57"
60 "59"
63 "62"
64 "63"
65 "64"
66 "65"
67 "66"
69 "68"
72 "71"
74 "73"
76 "75"
79 "78"
82 "81"
83 "82"
84 "83"
86 "85"
87 "86"
88 "87"
90 "89"
94 "93"
98 "97"
100 "99"
102 "101"
104 "103"
106 "105"
112 "111"
113 "112"
114 "113"
fast_travel_between_consecutive_stops WARNING 65

fast_travel_between_consecutive_stops

A transit vehicle moves too fast between two consecutive stops.

The speed threshold depends on route type:

Route type Description Threshold, km/h
0 Light rail 100
1 Subway 150
2 Rail 500
3 Bus 150
4 Ferry 80
5 Cable tram 30
6 Aerial lift 50
7 Funicular 50
11 Trolleybus 150
12 Monorail 150
- Unknown 200

You can see more about this notice here.

Only the first 50 of 65 affected records are displayed below.

tripCsvRowNumber (?) The row number of the problematic trip. tripId (?) `trip_id` of the problematic trip. routeId (?) `route_id` of the problematic trip. speedKph (?) Travel speed (km/h). distanceKm (?) Distance between stops (km). csvRowNumber1 (?) The row number of the first stop time. stopSequence1 (?) `stop_sequence` of the first stop. stopId1 (?) `stop_id` of the first stop. stopName1 (?) `stop_name` of the first stop. departureTime1 (?) `departure_time` of the first stop. csvRowNumber2 (?) The row number of the second stop time. stopSequence2 (?) `stop_sequence` of the second stop. stopId2 (?) `stop_id` of the second stop. stopName2 (?) `stop_name` of the second stop. arrivalTime2 (?) `arrival_time` of the second stop.
58523 "38281048" "8073_3" 220.604373676521 1.838369780637675 836279 19 "de:16076:3010631::301063100" "Braunichswalde, Wendeschleife" "12:50:30" 836280 20 "de:16076:276039::27603900" "Seelingstädt, Siedlung" "12:51:00"
4059 "39557334" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
3991 "39332672" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4022 "40061756" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4088 "39683277" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4103 "39783366" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4008 "39416463" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4073 "39585678" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
4037 "40125498" "3614_3" 163.14934136538736 1.3595778447115612 50579 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 50580 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
67459 "40063028" "5038_3" 199.62896728687693 1.1090498182604274 978569 12 "de:16063:210221::21022100" "Masbach" "15:42:20" 978570 13 "de:16063:210220::21022000" "Mariengart" "15:42:40"
67459 "40063028" "5038_3" 184.4512024894308 1.02472890271906 978570 13 "de:16063:210220::21022000" "Mariengart" "15:42:40" 978571 14 "de:16063:210215::21021500" "Wölferbütt, Gemeinde" "15:43:00"
67781 "39414958" "5028_3" 177.86395085751505 0.9881330603195281 982640 13 "de:16063:210045::21004500" "Leimbach (b. Bad Salzungen), Ross" "17:51:40" 982641 14 "de:16063:210025::21002500" "Bad Salzungen, Herkules" "17:52:00"
1744 "39333449" "3636_3" 218.9389878724335 1.8244915656036125 17700 11 "de:16061:600299::60029900" "Großbartloff, untere Haltestelle" "17:43:30" 17701 12 "de:16061:600368::60036800" "Großbartloff, Herrode" "17:44:00"
9969 "39270993" "3255_3" 473.04104135267534 2.6280057852926406 144968 2 "de:16066:2200330::220033001" "Henneberg, Schule" "05:52:00" 144969 3 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "05:52:20"
9969 "39270993" "3255_3" 459.51757004705195 2.5528753891502887 144969 3 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "05:52:20" 144970 4 "de:16066:2200378::220037801" "Henneberg, Ort" "05:52:40"
9802 "39271867" "3260_3" 303.37171791143953 2.5280976492619964 142513 3 "de:16066:2200474::220047401" "Oepfershausen, Unterdorf" "11:05:00" 142514 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "11:05:30"
9802 "39271867" "3260_3" 527.1784594690662 2.92876921927259 142516 6 "de:16066:2200837::220083701" "Unterkatz, Alte Mühle" "11:10:20" 142517 7 "de:16066:2200505::220050501" "Wahns, Ortsausgang" "11:10:40"
1684 "39333472" "3636_3" 230.3888070575193 1.9199067254793274 16896 1 "de:16064:900250::90025000" "Lengenfeld/Stein, Unterdorf" "17:45:30" 16897 2 "de:16061:600368::60036801" "Großbartloff, Herrode" "17:46:00"
1684 "39333472" "3636_3" 219.73790703197983 1.8311492252664987 16899 4 "de:16061:600298::60029801" "Großbartloff, obere Haltestelle" "17:47:30" 16900 5 "de:16061:600376::60037601" "Luttergrund" "17:48:00"
9381 "39269992" "4026_3" 150.1841178755652 1.2515343156297098 136567 10 "de:16066:2200341::220034100" "Exdorf" "06:09:00" 136568 11 "de:16066:2200342::220034201" "Obendorf" "06:09:30"
58505 "38281076" "8074_3" 220.604373676521 1.838369780637675 835821 18 "de:16076:3010631::301063100" "Braunichswalde, Wendeschleife" "08:19:30" 835822 19 "de:16076:276039::27603900" "Seelingstädt, Siedlung" "08:20:00"
58291 "39376700" "6655_3" 183.4367752946495 0.7643198970610395 830608 17 "de:16072:472151::47215101" "Sichelreuth, Höhe" "15:25:15" 830609 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "15:25:30"
58291 "39376700" "6655_3" 179.62402952274778 0.7484334563447824 830609 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "15:25:30" 830610 19 "de:16072:472092::47209200" "Neuhaus-Schierschnitz, Apotheke" "15:25:45"
58564 "37635141" "8071_3" 220.79801286166986 1.226655627009277 836980 17 "de:16076:3030501::303050101" "Großenstein, Ort" "18:40:00" 836981 18 "de:16076:3030541::303054100" "Baldenhain" "18:40:20"
58564 "37635141" "8071_3" 401.0748862550408 2.2281938125280045 836981 18 "de:16076:3030541::303054100" "Baldenhain" "18:40:20" 836982 19 "de:16076:3030551::303055101" "Reichstädt, Ort" "18:40:40"
9916 "39271284" "3256_3" 445.8281799168435 3.7152348326403626 144293 4 "de:16066:2200443::220044300" "Reichenhausen" "16:20:00" 144294 5 "de:16066:2200439::220043900" "Melpers" "16:20:30"
69651 "40154471" "7904_3" 191.72687973974146 1.5977239978311788 1003896 0 "de:16075:8012658:801265800:801265850" "Pößneck unt Bf" "21:30:00" 1003897 1 "de:16075:2812531::281253103" "Pößneck, Oberer Bahnhof" "21:30:30"
66601 "37804554" "5810_3" 203.2922985006617 1.6941024875055142 965726 11 "de:16063:210411::21041100" "Spahl" "12:02:30" 965727 12 "de:16063:210405::21040500" "Ketten" "12:03:00"
9885 "39271334" "3256_3" 445.8281799168435 3.7152348326403626 143794 6 "de:16066:2200439::220043900" "Melpers" "13:56:00" 143795 7 "de:16066:2200443::220044300" "Reichenhausen" "13:56:30"
9783 "39271905" "3260_3" 880.350296992041 2.9345009899734698 142284 3 "de:16066:2200505::220050500" "Wahns, Ortsausgang" "10:37:12" 142285 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "10:37:24"
9783 "39271905" "3260_3" 155.158455136176 0.51719485045392 142285 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "10:37:24" 142286 5 "de:16066:2200467::220046700" "Unterkatz" "10:37:36"
9783 "39271905" "3260_3" 155.89195298600447 0.5196398432866816 142286 5 "de:16066:2200467::220046700" "Unterkatz" "10:37:36" 142287 6 "de:16066:2200837::220083701" "Unterkatz, Alte Mühle" "10:37:48"
9943 "39271004" "3255_3" 276.3970287996361 2.3033085733303005 144721 12 "de:16066:2200401::220040100" "Haselbach (Rhönblick)" "16:57:00" 144722 13 "de:16066:2200411::220041100" "Gleimershausen" "16:57:30"
58290 "39376701" "6655_3" 183.4367752946495 0.7643198970610395 830584 17 "de:16072:472151::47215101" "Sichelreuth, Höhe" "12:45:15" 830585 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "12:45:30"
58290 "39376701" "6655_3" 179.62402952274778 0.7484334563447824 830585 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "12:45:30" 830586 19 "de:16072:472092::47209200" "Neuhaus-Schierschnitz, Apotheke" "12:45:45"
9922 "39271291" "3256_3" 445.8281799168435 3.7152348326403626 144414 1 "de:16066:2200443::220044300" "Reichenhausen" "15:30:00" 144415 2 "de:16066:2200439::220043900" "Melpers" "15:30:30"
58545 "37635137" "8071_3" 240.35715195296478 2.0029762662747066 836543 9 "de:16076:176068::17606800" "Brahmenau, Culm" "05:44:00" 836544 10 "de:16076:3010741::301074100" "Caasen, Ort" "05:44:30"
58545 "37635137" "8071_3" 151.0731829128136 1.2589431909401134 836544 10 "de:16076:3010741::301074100" "Caasen, Ort" "05:44:30" 836545 11 "de:16076:3011971::301197100" "Hirschfeld" "05:45:00"
69652 "40154470" "7904_3" 191.72687973974146 1.5977239978311788 1003902 0 "de:16075:2812531::281253103" "Pößneck, Oberer Bahnhof" "21:30:00" 1003903 1 "de:16075:8012658:801265800:801265850" "Pößneck unt Bf" "21:30:30"
9944 "39271001" "3255_3" 270.20277694406724 0.6004506154312605 144732 8 "de:16066:2200378::220037800" "Henneberg, Ort" "17:49:00" 144733 9 "de:16066:2200330::220033000" "Henneberg, Schule" "17:49:08"
9944 "39271001" "3255_3" 457.38251935501137 1.016405598566692 144733 9 "de:16066:2200330::220033000" "Henneberg, Schule" "17:49:08" 144734 10 "de:16066:2200381::220038100" "Einödhausen" "17:49:16"
9944 "39271001" "3255_3" 868.1572053793273 1.9292382341762828 144734 10 "de:16066:2200381::220038100" "Einödhausen" "17:49:16" 144735 11 "de:16066:2200382::220038200" "Unterharles" "17:49:24"
9944 "39271001" "3255_3" 1912.5647742955564 4.250143942879014 144735 11 "de:16066:2200382::220038200" "Unterharles" "17:49:24" 144736 12 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "17:49:32"
9944 "39271001" "3255_3" 1148.79392511763 2.5528753891502887 144736 12 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "17:49:32" 144737 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40"
9944 "39271001" "3255_3" 611.3454827737032 1.3585455172748961 144737 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40" 144738 14 "de:16066:2200396::220039600" "Henneberg, Ziegelei" "17:49:48"
9944 "39271001" "3255_3" 180.2067295516657 0.6006890985055523 144738 14 "de:16066:2200396::220039600" "Henneberg, Ziegelei" "17:49:48" 144739 15 "de:16066:2200398::220039800" "Hermannsfeld, Fasanerie" "17:50:00"
9942 "39271002" "3255_3" 276.3970287996361 2.3033085733303005 144706 18 "de:16066:2200401::220040100" "Haselbach (Rhönblick)" "15:38:00" 144707 19 "de:16066:2200411::220041100" "Gleimershausen" "15:38:30"
126771 "38573758" "7408_3" 328.59303388847246 2.738275282403937 1760342 9 "de:16069:2510181::251018100" "Schlechtsart" "15:45:00" 1760343 10 "de:16069:2510180::251018001" "Westhausen (b. Bad Colberg-Heldburg), Ort" "15:45:30"
8767 "39273401" "5511_3" 194.21800297284557 0.5394944527023487 126785 3 "de:16066:2200872::220087200" "Schmalkalden, Kasseler Straße/Aue-Center" "17:03:00" 126786 4 "de:16066:2200606::220060600" "Schmalkalden, Auer Siedlung" "17:03:10"
8767 "39273401" "5511_3" 280.26502520462617 0.7785139589017394 126786 4 "de:16066:2200606::220060600" "Schmalkalden, Auer Siedlung" "17:03:10" 126787 5 "de:16066:2200607::220060701" "Volkers" "17:03:20"
fast_travel_between_far_stops WARNING 1

fast_travel_between_far_stops

A transit vehicle moves too fast between two far stops.

Two stops are considered "far" if they are more than 10 km apart. This normally indicates a more serious problem than too fast travel between consecutive stops.

The speed threshold depends on route type and are the same as fast_travel_between_consecutive_stops.

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the problematic trip. tripId (?) `trip_id` of the problematic trip. routeId (?) `route_id` of the problematic trip. speedKph (?) Travel speed (km/h). distanceKm (?) Distance between stops (km). csvRowNumber1 (?) The row number of the first stop time. stopSequence1 (?) `stop_sequence` of the first stop. stopId1 (?) `stop_id` of the first stop. stopName1 (?) `stop_name` of the first stop. departureTime1 (?) `departure_time` of the first stop. csvRowNumber2 (?) The row number of the second stop time. stopSequence2 (?) `stop_sequence` of the second stop. stopId2 (?) `stop_id` of the second stop. stopName2 (?) `stop_name` of the second stop. arrivalTime2 (?) `arrival_time` of the second stop.
9944 "39271001" "3255_3" 931.4202402183184 10.349113780203538 144732 8 "de:16066:2200378::220037800" "Henneberg, Ort" "17:49:00" 144737 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40"
leading_or_trailing_whitespaces WARNING 1137

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

Only the first 50 of 1137 affected records are displayed below.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"stops.txt" 3732 "stop_name" "Rudolstadt, Bahnhof "
"stops.txt" 4574 "stop_name" "Unterwirbach, Am Wirbach "
"stops.txt" 4575 "stop_name" "Unterwirbach, Am Wirbach "
"stops.txt" 5013 "stop_name" "Saalburg-Ebersdorf, Kloster "
"stops.txt" 5014 "stop_name" "Saalburg-Ebersdorf, Kloster "
"stops.txt" 5479 "stop_name" "Suhl, Am Bahndamm "
"stops.txt" 5965 "stop_name" "Triebes, Geraer Straße "
"stops.txt" 8821 "stop_name" "Schmölln (b. Hummelshain), Abzweig "
"stops.txt" 8822 "stop_name" "Schmölln (b. Hummelshain), Abzweig "
"stops.txt" 8826 "stop_name" "Bibra, Abzweig "
"stops.txt" 8827 "stop_name" "Bibra, Abzweig "
"stops.txt" 10940 "stop_name" "Erfurt, Dessauer Straße "
"stops.txt" 10941 "stop_name" "Erfurt, Dessauer Straße "
"stops.txt" 10958 "stop_name" "Haina (b. Römhild), Ortsausgang "
"stops.txt" 10959 "stop_name" "Haina (b. Römhild), Ortsausgang "
"stops.txt" 11678 "stop_name" "Triebes, Geraer Straße "
"trips.txt" 115668 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115669 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115670 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115671 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115672 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115673 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115674 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115692 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115694 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115696 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115698 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115700 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115707 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115708 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115709 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115710 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115711 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115712 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115713 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115714 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115715 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115716 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115717 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115718 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115719 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115720 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115721 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115722 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115723 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115724 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115725 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115726 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115727 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 115728 "trip_headsign" "Rudolstadt, Bahnhof "
mixed_case_recommended_field WARNING 6

mixed_case_recommended_field

This field has customer-facing text and should use Mixed Case (should contain upper and lower case letters).

This field contains customer-facing text and should use Mixed Case (upper and lower case letters) to ensure good readability when displayed to riders. Avoid the use of abbreviations throughout the feed (e.g. St. for Street) unless a location is called by its abbreviated name (e.g. “JFK Airport”). Abbreviations may be problematic for accessibility by screen reader software and voice user interfaces.

Good examples:
Field Text Dataset
"Schwerin, Hauptbahnhof" Verkehrsverbund Berlin-Brandenburg
"Red Hook/Atlantic Basin" NYC Ferry
"Campo Grande Norte" Carris
Bad examples:
Field Text
"GALLERIA MALL"
"3427 GG 17"
"21 Clark Rd Est"

You can see more about this notice here.

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"routes.txt" "route_short_name" "326 SEV" 3
"routes.txt" "route_short_name" "1 SEV" 327
"routes.txt" "route_short_name" "3 SEV" 328
"routes.txt" "route_short_name" "6 SEV" 331
"routes.txt" "route_short_name" "1/6 SEV" 332
"routes.txt" "route_short_name" "2/3 SEV" 333
non_ascii_or_non_printable_char WARNING 9

non_ascii_or_non_printable_char

Non ascii or non printable char in ID field.

A value of a field with type ID contains non ASCII or non printable characters. This is not recommended.

You can see more about this notice here.

filename (?) Name of the faulty file. csvRowNumber (?) Row number of the faulty record. columnName (?) Name of the column where the error occurred. fieldValue (?) Faulty value.
"stop_times.txt" 825290 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 825320 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 825359 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 825522 "stop_id" "de:09473:17113:0Î:2"
"stops.txt" 12623 "stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25031 "to_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25032 "from_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25033 "from_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25033 "to_stop_id" "de:09473:17113:0Î:2"
route_color_contrast WARNING 1

route_color_contrast

Insufficient route color contrast.

A route's color and route_text_color should be contrasting.

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeColor (?) The faulty record's HTML route color. routeTextColor (?) The faulty record's HTML route text color.
"2879_0" 316 "#FBBA00" "#FFFFFF"
service_has_no_active_day_of_the_week WARNING 1956

service_has_no_active_day_of_the_week

A service is not valid for any day of the week.

You can see more about this notice here.

Only the first 50 of 1956 affected records are displayed below.

csvRowNumber (?) The row number in calendar.txt where the error occurs. serviceId (?) The service_id field value.
4 "3"
21 "20"
22 "21"
26 "25"
27 "26"
28 "27"
29 "28"
30 "29"
31 "30"
32 "31"
33 "32"
34 "33"
36 "35"
37 "36"
39 "38"
40 "39"
41 "40"
42 "41"
43 "42"
45 "44"
46 "45"
47 "46"
48 "47"
54 "53"
55 "54"
57 "56"
58 "57"
60 "59"
63 "62"
64 "63"
65 "64"
66 "65"
67 "66"
68 "67"
69 "68"
72 "71"
74 "73"
76 "75"
79 "78"
81 "80"
82 "81"
83 "82"
84 "83"
86 "85"
87 "86"
88 "87"
90 "89"
91 "90"
92 "91"
94 "93"
big_gap_in_service INFO 1251

big_gap_in_service

A service has a gap of more than 13 days between active service dates.

You can see more about this notice here.

Only the first 50 of 1251 affected records are displayed below.

serviceId (?) The service_id that has the gap. gapStartDate (?) The first day of the gap. gapEndDate (?) The last day of the gap. gapDurationDays (?) The number of days in the gap.
"21" "2026-05-15" "2026-07-06" 51
"21" "2026-08-14" "2026-10-12" 58
"23" "2026-07-03" "2026-08-17" 44
"23" "2026-10-09" "2026-10-26" 16
"24" "2026-07-03" "2026-08-17" 44
"24" "2026-10-09" "2026-10-26" 16
"29" "2026-07-03" "2026-08-17" 44
"29" "2026-10-09" "2026-10-26" 16
"30" "2026-08-14" "2026-10-12" 58
"50" "2026-07-03" "2026-08-17" 44
"50" "2026-10-09" "2026-10-26" 16
"53" "2026-07-03" "2026-08-17" 44
"53" "2026-10-09" "2026-10-26" 16
"60" "2026-07-02" "2026-08-18" 46
"60" "2026-10-08" "2026-10-27" 18
"65" "2026-05-15" "2026-06-04" 19
"67" "2026-07-01" "2026-08-13" 42
"67" "2026-10-09" "2026-10-26" 16
"69" "2026-06-29" "2026-08-17" 48
"69" "2026-10-05" "2026-10-26" 20
"70" "2026-07-03" "2026-08-18" 45
"70" "2026-10-09" "2026-10-27" 17
"77" "2026-07-03" "2026-08-17" 44
"77" "2026-10-09" "2026-10-26" 16
"88" "2026-07-02" "2026-08-17" 45
"88" "2026-10-08" "2026-10-26" 17
"157" "2026-05-22" "2026-06-10" 18
"159" "2026-05-22" "2026-06-10" 18
"160" "2026-05-25" "2026-06-10" 15
"162" "2026-05-22" "2026-06-10" 18
"163" "2026-05-25" "2026-06-13" 18
"165" "2026-07-03" "2026-08-17" 44
"166" "2026-10-09" "2026-10-26" 16
"167" "2026-07-03" "2026-08-17" 44
"167" "2026-10-09" "2026-10-26" 16
"171" "2026-05-05" "2026-06-10" 35
"172" "2026-05-15" "2026-06-10" 25
"173" "2026-05-16" "2026-06-13" 27
"175" "2026-05-17" "2026-06-14" 27
"178" "2026-05-15" "2026-06-10" 25
"181" "2026-05-22" "2026-06-10" 18
"182" "2026-05-22" "2026-06-10" 18
"182" "2026-07-03" "2026-08-17" 44
"182" "2026-10-09" "2026-10-26" 16
"184" "2026-05-15" "2026-07-06" 51
"185" "2026-05-22" "2026-06-10" 18
"185" "2026-07-03" "2026-08-17" 44
"186" "2026-05-22" "2026-06-10" 18
"186" "2026-06-12" "2026-09-01" 80
"186" "2026-10-09" "2026-10-26" 16
platform_without_parent_station INFO 1231

platform_without_parent_station

A platform has no parent_station field set.

This is different from location_without_parent_station since it is less severe.

You can see more about this notice here.

Only the first 50 of 1231 affected records are displayed below.

csvRowNumber (?) Row number of the faulty record. stopId (?) The id of the faulty record. stopName (?) The stop name of the faulty record.
2 "de:16073:8010014:801001400:801001450" "Bad Blankenburg (Thüringer Wald)"
4 "de:16067:8010136:801013600:801013650" "Gotha"
5 "de:15002:8010159:5:09" "Halle (Saale) Hbf"
7 "de:16070:8012317:801231700:801231750" "Martinroda (bei Ilmenau)"
8 "de:16075:8012472:801247201:801247251" "Neustadt (Orla)"
17 "de:16051:8071357::807135700" "Erfurt Hbf (Intercity-Hotel) SEV"
18 "de:16053:153167::15316700" "Jena, Stadtzentrum Holzmarkt"
19 "de:16053:153003::15300300" "Jena, Burgaupark"
27 "de:16053:153003::15300303" "Jena, Burgaupark"
28 "de:16053:153004::15300401" "Jena, Busbahnhof"
29 "de:16053:153050::15305000" "Jena, Stadtzentrum Teichgraben"
30 "de:16053:153050::15305002" "Jena, Stadtzentrum Teichgraben"
31 "de:16053:153166::15316600" "Jena, Stadtzentrum Löbdergraben"
38 "de:16053:153137::15313702" "Jena, Schlippenstraße"
39 "de:16053:153137::15313700" "Jena, Schlippenstraße"
54 "de:16053:153055::15305500" "Jena, Burgaupark"
63 "de:16053:153124::15312400" "Jena, Lobeda-Ost"
65 "de:16053:153043::15304300" "Jena, Emil-Wölk-Straße"
66 "de:16053:153043::15304301" "Jena, Emil-Wölk-Straße"
67 "000015304100" "Jena, Göschwitz Bahnhof"
69 "de:16053:153028::15302802" "Jena, Westbahnhofstraße"
70 "de:16053:153028::15302800" "Jena, Westbahnhofstraße"
78 "de:16053:153002::15300201" "Jena, Beutenberg Campus"
79 "de:16053:153002::15300200" "Jena, Beutenberg Campus"
80 "de:16053:153115::15311500" "Jena, Grüne Aue"
81 "de:16053:153115::15311501" "Jena, Grüne Aue"
85 "de:16053:153109::15310901" "Jena, Enver-Şimşek-Platz"
88 "de:16053:153002::15300204" "Jena, Beutenberg Campus"
99 "de:16053:153021::15302103" "Jena, Winzerla"
100 "de:16053:153021::15302102" "Jena, Winzerla"
101 "de:16053:153021::15302105" "Jena, Winzerla"
102 "de:16053:153021::15302106" "Jena, Winzerla"
103 "de:16053:153016::15301600" "Jena, Westbahnhof"
127 "de:16053:153090::15309000" "Jena, Mühltal"
128 "de:16053:153090::15309001" "Jena, Mühltal"
143 "de:16053:153014::15301401" "Jena, Spittelplatz"
144 "de:16053:153014::15301400" "Jena, Spittelplatz"
147 "de:16053:153097::15309703" "Jena, Scharnhorststraße"
148 "de:16053:153097::15309701" "Jena, Scharnhorststraße"
193 "de:16053:153004::15300403" "Jena, Busbahnhof"
196 "de:16053:153157::15315700" "Jena, Lützeroda"
211 "de:16053:153078::15307802" "Jena, Zwätzen Schleife"
212 "de:16053:153078::15307803" "Jena, Zwätzen Schleife"
214 "de:16053:153040::15304001" "Jena, An der Eule"
215 "de:16053:153040::15304000" "Jena, An der Eule"
216 "de:16053:153097::15309702" "Jena, Scharnhorststraße"
217 "de:16053:153024::15302402" "Jena, Nordschule"
218 "de:16053:153166::15316603" "Jena, Stadtzentrum Löbdergraben"
219 "de:16053:153166::15316602" "Jena, Stadtzentrum Löbdergraben"
220 "de:16053:153167::15316701" "Jena, Stadtzentrum Holzmarkt"
transfer_distance_above_2_km INFO 16

transfer_distance_above_2_km

The transfer distance from stop to stop in transfers.txt is larger than 2 km.

You can see more about this notice here.

csvRowNumber (?) The row number from `transfers.txt` for the faulty entry. fromStopId (?) The ID of the stop in `from_stop_id`. toStopId (?) The ID of the stop in `to_stop_id`. distanceKm (?) The distance between the two stops in km.
23518 "de:06611:200001::9" "de:06611:200007::1" 3.0539457010358095
23519 "de:06611:200001::9" "de:06611:200007::3" 3.0310202136364377
23520 "de:06611:200001::9" "de:06611:200007::4" 3.0207638017931586
23521 "de:06611:200001::9" "de:06611:200007::7" 2.998030923431375
23524 "de:06611:200001::12" "de:06611:200007::1" 3.0329966595223747
23525 "de:06611:200001::12" "de:06611:200007::3" 3.0100771884789856
23526 "de:06611:200001::12" "de:06611:200007::4" 2.9998094706876257
23527 "de:06611:200001::12" "de:06611:200007::7" 2.977360160021408
23528 "de:06611:200007::1" "de:06611:200001::9" 3.0539457010358095
23529 "de:06611:200007::1" "de:06611:200001::12" 3.0329966595223747
23534 "de:06611:200007::3" "de:06611:200001::9" 3.0310202136364377
23535 "de:06611:200007::3" "de:06611:200001::12" 3.0100771884789856
23540 "de:06611:200007::4" "de:06611:200001::9" 3.0207638017931586
23541 "de:06611:200007::4" "de:06611:200001::12" 2.9998094706876257
23546 "de:06611:200007::7" "de:06611:200001::9" 2.998030923431375
23547 "de:06611:200007::7" "de:06611:200001::12" 2.977360160021408
trip_headsign_matches_intermediate_stop INFO 407

trip_headsign_matches_intermediate_stop

Trip headsign matches the name of an intermediate stop, not the last stop.

The trip_headsign matches the stop_name of a stop that is not the last stop of the trip. This may confuse passengers boarding after that stop, since the headsign suggests the vehicle is heading to a stop it has already passed.

You can see more about this notice here.

Only the first 50 of 407 affected records are displayed below.

csvRowNumber (?) The row number of the faulty record in `trips.txt`. tripId (?) The id of the trip with the problematic headsign. tripHeadsign (?) The headsign value that matches an intermediate stop name. stopId1 (?) The id of the intermediate stop whose name matches the headsign. stopSequence (?) The stop_sequence value of the intermediate stop that matches the headsign. stopId2 (?) The id of the actual last stop of the trip.
1383 "39417079" "Dingelstädt, ZOB" "de:16061:600243::60024305" 7 "de:16061:600243::60024303"
1385 "39417080" "Dingelstädt, ZOB" "de:16061:600243::60024305" 7 "de:16061:600243::60024303"
1386 "39417078" "Dingelstädt, ZOB" "de:16061:600243::60024305" 7 "de:16061:600243::60024305"
2466 "39417212" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2472 "40062630" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2478 "40126372" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2485 "39558167" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2491 "39586545" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2497 "39684144" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
2503 "39784229" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000104" 14 "de:16061:600001::60000104"
3168 "39333093" "Söckey, Ersatzhaltestelle" "de:16061:661049::66104901" 4 "de:16061:661049::66104900"
3171 "39333095" "Söckey, Ersatzhaltestelle" "de:16061:661049::66104901" 4 "de:16061:661049::66104900"
3181 "39416837" "Söckey, Ersatzhaltestelle" "de:16061:661049::66104901" 4 "de:16061:661049::66104900"
3257 "39417056" "Dingelstädt, ZOB" "de:16061:600243::60024305" 13 "de:16061:600243::60024305"
3259 "39417057" "Dingelstädt, ZOB" "de:16061:600243::60024305" 13 "de:16061:600243::60024302"
3640 "39332774" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000102" 2 "de:16061:600001::60000101"
3642 "39332773" "Heilbad Heiligenstadt, ZOB" "de:16061:600001::60000102" 2 "de:16061:600001::60000101"
4490 "39416661" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4492 "39416663" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4493 "39332882" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4503 "39416662" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4507 "40062006" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4511 "40125748" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4517 "39557546" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4521 "39585920" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4525 "39683519" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4529 "39783606" "Arenshausen, Schule" "de:16061:600074::60007400" 19 "de:16061:600074::60007400"
4649 "38160607" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4650 "38160606" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4651 "38160605" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4652 "38160590" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4653 "38160589" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4654 "38160588" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4655 "38160587" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4656 "38160586" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4657 "38160585" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4658 "38160584" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4659 "38160583" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4660 "38160582" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4661 "38160581" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4662 "38160580" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4663 "38160579" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4664 "38160592" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4665 "38160591" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4668 "39413673" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4669 "39413672" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4670 "39413671" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4671 "39413670" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4672 "39331456" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"
4673 "39413669" "Ilmenau, Busbahnhof" "de:16070:2600001::260000100" 0 "de:16070:2600001::260000108"