vmt — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-21T14:02:12Z,
for the dataset file:///shared/vmt_73d04710.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-07-01
Feed End Date:
2027-01-31

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: 44
  • Blocks: 32045
  • Routes: 863
  • Shapes: 0
  • Stops: 13192
  • Trips: 119477

Specification Compliance report

5850 notices reported (0 errors, 3619 warnings, 2231 infos)

Notice Code Severity Total
duplicate_route_name WARNING 63

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 63 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`.
2 "9282_0" 3 "9281_0" "10" "" 0 "121"
2 "9282_0" 4 "9197_0" "10" "" 0 "121"
5 "9194_3" 17 "8557_3" "SEV" "" 3 "121"
2 "9282_0" 39 "8530_0" "10" "" 0 "121"
90 "5721_3" 99 "3745_3" "2" "" 3 "137"
89 "5722_3" 103 "3741_3" "5" "" 3 "137"
181 "6946_3" 187 "6871_3" "B" "" 3 "96"
182 "6945_3" 188 "6276_3" "A" "" 3 "96"
182 "6945_3" 191 "4856_3" "A" "" 3 "96"
181 "6946_3" 208 "3368_3" "B" "" 3 "96"
293 "4961_2" 295 "4513_2" "HSB326" "" 2 "166"
296 "4512_2" 297 "4511_2" "HSB325" "" 2 "166"
326 "6849_3" 327 "6848_3" "701" "" 3 "44"
326 "6849_3" 328 "6847_3" "701" "" 3 "44"
324 "6851_3" 339 "6655_3" "710" "" 3 "44"
326 "6849_3" 346 "6648_3" "701" "" 3 "44"
495 "3547_3" 496 "3546_3" "18" "" 3 "112"
577 "9210_2" 583 "7997_2" "RE29" "" 2 "78"
578 "9209_2" 585 "7996_2" "RE28" "" 2 "78"
579 "9208_2" 591 "6794_2" "RE20" "" 2 "78"
580 "9207_2" 592 "6793_2" "RE19" "" 2 "78"
581 "9206_2" 594 "6792_2" "RE14" "" 2 "78"
627 "5931_3" 628 "5881_3" "SEV" "" 3 "176"
627 "5931_3" 629 "5862_3" "SEV" "" 3 "176"
627 "5931_3" 630 "5852_3" "SEV" "" 3 "176"
665 "7202_3" 666 "7201_3" "252" "" 3 "114"
667 "5547_3" 668 "5546_3" "3" "" 3 "114"
671 "3997_3" 672 "3996_3" "282" "" 3 "114"
675 "3010_3" 676 "3009_3" "292" "" 3 "114"
673 "3012_3" 677 "3007_3" "291" "" 3 "114"
678 "3006_3" 679 "3005_3" "293" "" 3 "114"
674 "3011_3" 680 "3004_3" "289" "" 3 "114"
684 "3000_3" 689 "2995_3" "287" "" 3 "114"
686 "2998_3" 690 "2994_3" "285" "" 3 "114"
685 "2999_3" 691 "2993_3" "286" "" 3 "114"
682 "3002_3" 692 "2992_3" "281" "" 3 "114"
688 "2996_3" 694 "2990_3" "280" "" 3 "114"
695 "2989_3" 696 "2988_3" "255" "" 3 "114"
683 "3001_3" 697 "2987_3" "253" "" 3 "114"
687 "2997_3" 698 "2986_3" "249" "" 3 "114"
693 "2991_3" 699 "2985_3" "248" "" 3 "114"
700 "2984_3" 701 "2981_3" "288" "" 3 "114"
705 "2974_3" 706 "2973_3" "233" "" 3 "114"
681 "3003_3" 708 "2971_3" "247" "" 3 "114"
702 "2977_3" 711 "2968_3" "237" "" 3 "114"
710 "2969_3" 712 "2967_3" "240" "" 3 "114"
713 "2966_3" 714 "2965_3" "239" "" 3 "114"
709 "2970_3" 715 "2964_3" "238" "" 3 "114"
703 "2976_3" 716 "2963_3" "236" "" 3 "114"
707 "2972_3" 717 "2961_3" "235" "" 3 "114"
expired_calendar WARNING 804

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 804 affected records are displayed below.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "1"
3 "2"
4 "3"
5 "4"
6 "5"
7 "6"
8 "7"
9 "8"
10 "9"
27 "26"
28 "27"
34 "33"
42 "41"
43 "42"
44 "43"
45 "44"
48 "47"
50 "49"
51 "50"
52 "51"
53 "52"
54 "53"
55 "54"
56 "55"
68 "67"
69 "68"
73 "72"
75 "74"
76 "75"
79 "78"
80 "79"
96 "95"
99 "98"
101 "100"
106 "105"
107 "106"
108 "107"
111 "110"
114 "113"
116 "115"
119 "118"
120 "119"
121 "120"
122 "121"
127 "126"
139 "138"
140 "139"
143 "142"
148 "147"
149 "148"
fast_travel_between_consecutive_stops WARNING 91

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 91 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.
96745 "38281048" "8073_3" 220.604373676521 1.838369780637675 1364612 19 "de:16076:3010631::301063100" "Braunichswalde, Wendeschleife" "12:50:30" 1364613 20 "de:16076:276039::27603900" "Seelingstädt, Siedlung" "12:51:00"
39525 "40858042" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39546 "40292650" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39620 "40720474" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39591 "40602258" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39605 "40676974" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39510 "40184973" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39561 "40369789" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39495 "40125498" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
39577 "40494256" "3614_3" 163.14934136538736 1.3595778447115612 561470 19 "de:16061:600229::60022900" "Breitenbach (b. Leinefelde), Hauptstraße" "19:35:00" 561471 20 "de:16061:661027::66102701" "Worbis, Gewerbegebiet" "19:35:30"
118013 "40063028" "5038_3" 199.62896728687693 1.1090498182604274 1646552 12 "de:16063:210221::21022100" "Masbach" "15:42:20" 1646553 13 "de:16063:210220::21022000" "Mariengart" "15:42:40"
118013 "40063028" "5038_3" 184.4512024894308 1.02472890271906 1646553 13 "de:16063:210220::21022000" "Mariengart" "15:42:40" 1646554 14 "de:16063:210215::21021500" "Wölferbütt, Gemeinde" "15:43:00"
41776 "40698091" "6655_3" 166.5508640051057 2.7758477334184284 593676 13 "de:16072:472092::47209200" "Neuhaus-Schierschnitz, Apotheke" "08:18:00" 593677 14 "de:16072:472127::47212700" "Rotheul, Gemeinde" "08:18:00"
97370 "40369487" "3531_3" 210.00342702025546 1.750028558502129 1373602 12 "de:16076:3012481::301248101" "Meilitz (b. Wünschendorf / Elster)" "13:52:00" 1373603 13 "de:16052:152068::15206802" "Gera, Liebschwitz Friedensbrücke" "13:52:30"
37488 "40126289" "3636_3" 218.9389878724335 1.8244915656036125 529910 11 "de:16061:600299::60029900" "Großbartloff, untere Haltestelle" "17:43:30" 529911 12 "de:16061:600368::60036800" "Großbartloff, Herrode" "17:44:00"
114114 "40766842" "3255_3" 306.34504669803465 2.5528753891502887 1586998 10 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "18:49:00" 1586999 11 "de:16066:2200378::220037801" "Henneberg, Ort" "18:49:30"
114131 "39495743" "3255_3" 473.04104135267534 2.6280057852926406 1587122 2 "de:16066:2200330::220033001" "Henneberg, Schule" "05:52:00" 1587123 3 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "05:52:20"
114131 "39495743" "3255_3" 459.51757004705195 2.5528753891502887 1587123 3 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "05:52:20" 1587124 4 "de:16066:2200378::220037801" "Henneberg, Ort" "05:52:40"
113932 "39496651" "3260_3" 303.37171791143953 2.5280976492619964 1584064 3 "de:16066:2200474::220047401" "Oepfershausen, Unterdorf" "11:05:00" 1584065 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "11:05:30"
113932 "39496651" "3260_3" 527.1784594690662 2.92876921927259 1584067 6 "de:16066:2200837::220083701" "Unterkatz, Alte Mühle" "11:10:20" 1584068 7 "de:16066:2200505::220050501" "Wahns, Ortsausgang" "11:10:40"
37427 "40126312" "3636_3" 230.3888070575193 1.9199067254793274 529070 1 "de:16064:900250::90025000" "Lengenfeld/Stein, Unterdorf" "17:45:30" 529071 2 "de:16061:600368::60036801" "Großbartloff, Herrode" "17:46:00"
37427 "40126312" "3636_3" 219.73790703197983 1.8311492252664987 529073 4 "de:16061:600298::60029801" "Großbartloff, obere Haltestelle" "17:47:30" 529074 5 "de:16061:600376::60037601" "Luttergrund" "17:48:00"
113499 "39494725" "4026_3" 150.1841178755652 1.2515343156297098 1577905 10 "de:16066:2200341::220034100" "Exdorf" "06:09:00" 1577906 11 "de:16066:2200342::220034201" "Obendorf" "06:09:30"
96727 "38281076" "8074_3" 220.604373676521 1.838369780637675 1364154 18 "de:16076:3010631::301063100" "Braunichswalde, Wendeschleife" "08:19:30" 1364155 19 "de:16076:276039::27603900" "Seelingstädt, Siedlung" "08:20:00"
41786 "39376700" "6655_3" 183.4367752946495 0.7643198970610395 593880 17 "de:16072:472151::47215101" "Sichelreuth, Höhe" "15:25:15" 593881 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "15:25:30"
41786 "39376700" "6655_3" 179.62402952274778 0.7484334563447824 593881 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "15:25:30" 593882 19 "de:16072:472092::47209200" "Neuhaus-Schierschnitz, Apotheke" "15:25:45"
96786 "37635141" "8071_3" 220.79801286166986 1.226655627009277 1365313 17 "de:16076:3030501::303050101" "Großenstein, Ort" "18:40:00" 1365314 18 "de:16076:3030541::303054100" "Baldenhain" "18:40:20"
96786 "37635141" "8071_3" 401.0748862550408 2.2281938125280045 1365314 18 "de:16076:3030541::303054100" "Baldenhain" "18:40:20" 1365315 19 "de:16076:3030551::303055101" "Reichstädt, Ort" "18:40:40"
114058 "39496049" "3256_3" 445.8281799168435 3.7152348326403626 1586161 4 "de:16066:2200443::220044300" "Reichenhausen" "16:20:00" 1586162 5 "de:16066:2200439::220043900" "Melpers" "16:20:30"
116290 "39784633" "5810_3" 203.2922985006617 1.6941024875055142 1619823 11 "de:16063:210411::21041100" "Spahl" "12:02:30" 1619824 12 "de:16063:210405::21040500" "Ketten" "12:03:00"
114023 "39496091" "3256_3" 445.8281799168435 3.7152348326403626 1585603 6 "de:16066:2200439::220043900" "Melpers" "13:56:00" 1585604 7 "de:16066:2200443::220044300" "Reichenhausen" "13:56:30"
113911 "39496668" "3260_3" 880.350296992041 2.9345009899734698 1583804 3 "de:16066:2200505::220050500" "Wahns, Ortsausgang" "10:37:12" 1583805 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "10:37:24"
113911 "39496668" "3260_3" 155.158455136176 0.51719485045392 1583805 4 "de:16066:2200837::220083700" "Unterkatz, Alte Mühle" "10:37:24" 1583806 5 "de:16066:2200467::220046700" "Unterkatz" "10:37:36"
113911 "39496668" "3260_3" 155.89195298600447 0.5196398432866816 1583806 5 "de:16066:2200467::220046700" "Unterkatz" "10:37:36" 1583807 6 "de:16066:2200837::220083701" "Unterkatz, Alte Mühle" "10:37:48"
114098 "39495776" "3255_3" 276.3970287996361 2.3033085733303005 1586802 12 "de:16066:2200401::220040100" "Haselbach (Rhönblick)" "16:57:00" 1586803 13 "de:16066:2200411::220041100" "Gleimershausen" "16:57:30"
41784 "39376701" "6655_3" 183.4367752946495 0.7643198970610395 593834 17 "de:16072:472151::47215101" "Sichelreuth, Höhe" "12:45:15" 593835 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "12:45:30"
41784 "39376701" "6655_3" 179.62402952274778 0.7484334563447824 593835 18 "de:16072:472094::47209401" "Neuhaus-Schierschnitz, Schierschnitz" "12:45:30" 593836 19 "de:16072:472092::47209200" "Neuhaus-Schierschnitz, Apotheke" "12:45:45"
114082 "40767135" "3256_3" 445.8281799168435 3.7152348326403626 1586547 1 "de:16066:2200443::220044300" "Reichenhausen" "15:30:00" 1586548 2 "de:16066:2200439::220043900" "Melpers" "15:30:30"
114067 "39496056" "3256_3" 445.8281799168435 3.7152348326403626 1586547 1 "de:16066:2200443::220044300" "Reichenhausen" "15:30:00" 1586548 2 "de:16066:2200439::220043900" "Melpers" "15:30:30"
96767 "37635137" "8071_3" 240.35715195296478 2.0029762662747066 1364876 9 "de:16076:176068::17606800" "Brahmenau, Culm" "05:44:00" 1364877 10 "de:16076:3010741::301074100" "Caasen, Ort" "05:44:30"
96767 "37635137" "8071_3" 151.0731829128136 1.2589431909401134 1364877 10 "de:16076:3010741::301074100" "Caasen, Ort" "05:44:30" 1364878 11 "de:16076:3011971::301197100" "Hirschfeld" "05:45:00"
116282 "40510093" "5810_3" 204.6924274706713 1.705770228922261 1619713 11 "de:16063:210411::21041100" "Spahl" "12:02:30" 1619714 12 "de:16063:210405::21040501" "Ketten" "12:03:00"
114099 "39495773" "3255_3" 270.20277694406724 0.6004506154312605 1586813 8 "de:16066:2200378::220037800" "Henneberg, Ort" "17:49:00" 1586814 9 "de:16066:2200330::220033000" "Henneberg, Schule" "17:49:08"
114099 "39495773" "3255_3" 457.38251935501137 1.016405598566692 1586814 9 "de:16066:2200330::220033000" "Henneberg, Schule" "17:49:08" 1586815 10 "de:16066:2200381::220038100" "Einödhausen" "17:49:16"
114099 "39495773" "3255_3" 868.1572053793273 1.9292382341762828 1586815 10 "de:16066:2200381::220038100" "Einödhausen" "17:49:16" 1586816 11 "de:16066:2200382::220038200" "Unterharles" "17:49:24"
114099 "39495773" "3255_3" 1912.5647742955564 4.250143942879014 1586816 11 "de:16066:2200382::220038200" "Unterharles" "17:49:24" 1586817 12 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "17:49:32"
114099 "39495773" "3255_3" 1148.79392511763 2.5528753891502887 1586817 12 "de:16066:2200331::220033100" "Bauerbach (b. Meiningen)" "17:49:32" 1586818 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40"
114099 "39495773" "3255_3" 611.3454827737032 1.3585455172748961 1586818 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40" 1586819 14 "de:16066:2200396::220039600" "Henneberg, Ziegelei" "17:49:48"
114099 "39495773" "3255_3" 180.2067295516657 0.6006890985055523 1586819 14 "de:16066:2200396::220039600" "Henneberg, Ziegelei" "17:49:48" 1586820 15 "de:16066:2200398::220039800" "Hermannsfeld, Fasanerie" "17:50:00"
102129 "40881162" "6779_3" 191.72687973974146 1.5977239978311788 1438074 0 "de:16075:8012658:801265800:801265850" "Pößneck unt Bf" "21:30:00" 1438075 1 "de:16075:2812531::281253103" "Pößneck, Oberer Bahnhof" "21:30:30"
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.
114099 "39495773" "3255_3" 931.4202402183184 10.349113780203538 1586813 8 "de:16066:2200378::220037800" "Henneberg, Ort" "17:49:00" 1586818 13 "de:16066:2200378::220037801" "Henneberg, Ort" "17:49:40"
leading_or_trailing_whitespaces WARNING 841

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 841 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" 3715 "stop_name" "Rudolstadt, Bahnhof "
"stops.txt" 4555 "stop_name" "Unterwirbach, Am Wirbach "
"stops.txt" 4556 "stop_name" "Unterwirbach, Am Wirbach "
"stops.txt" 4989 "stop_name" "Saalburg-Ebersdorf, Kloster "
"stops.txt" 4990 "stop_name" "Saalburg-Ebersdorf, Kloster "
"stops.txt" 5455 "stop_name" "Suhl, Am Bahndamm "
"stops.txt" 5941 "stop_name" "Triebes, Geraer Straße "
"stops.txt" 8777 "stop_name" "Schmölln (b. Hummelshain), Abzweig "
"stops.txt" 8778 "stop_name" "Schmölln (b. Hummelshain), Abzweig "
"stops.txt" 8782 "stop_name" "Bibra, Abzweig "
"stops.txt" 8783 "stop_name" "Bibra, Abzweig "
"stops.txt" 10896 "stop_name" "Erfurt, Dessauer Straße "
"stops.txt" 10897 "stop_name" "Erfurt, Dessauer Straße "
"stops.txt" 10914 "stop_name" "Haina (b. Römhild), Ortsausgang "
"stops.txt" 10915 "stop_name" "Haina (b. Römhild), Ortsausgang "
"stops.txt" 11638 "stop_name" "Triebes, Geraer Straße "
"trips.txt" 31373 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31374 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31390 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31392 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31394 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31409 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31410 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31411 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31412 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31413 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31414 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31415 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31416 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31417 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31418 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31419 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31420 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31421 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31422 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31423 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31424 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31425 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31426 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31427 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31428 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31429 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31430 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31431 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31432 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31433 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31434 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31435 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31436 "trip_headsign" "Rudolstadt, Bahnhof "
"trips.txt" 31437 "trip_headsign" "Rudolstadt, Bahnhof "
mixed_case_recommended_field WARNING 4

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" 291
"routes.txt" "route_short_name" "1 SEV" 377
"routes.txt" "route_short_name" "6 SEV" 379
"routes.txt" "route_short_name" "2/3 SEV" 380
non_ascii_or_non_printable_char WARNING 12

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" 585356 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585386 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585425 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585588 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585618 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585658 "stop_id" "de:09473:17113:0Î:2"
"stop_times.txt" 585679 "stop_id" "de:09473:17113:0Î:2"
"stops.txt" 12573 "stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25109 "to_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25110 "from_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25111 "from_stop_id" "de:09473:17113:0Î:2"
"transfers.txt" 25111 "to_stop_id" "de:09473:17113:0Î:2"
route_color_contrast WARNING 2

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" 318 "#FBBA00" "#FFFFFF"
"2879_3" 319 "#FBBA00" "#FFFFFF"
service_has_no_active_day_of_the_week WARNING 1801

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 1801 affected records are displayed below.

csvRowNumber (?) The row number in calendar.txt where the error occurs. serviceId (?) The service_id field value.
2 "1"
3 "2"
4 "3"
5 "4"
6 "5"
7 "6"
8 "7"
9 "8"
10 "9"
11 "10"
12 "11"
13 "12"
17 "16"
27 "26"
28 "27"
29 "28"
32 "31"
34 "33"
39 "38"
42 "41"
43 "42"
44 "43"
45 "44"
48 "47"
50 "49"
51 "50"
52 "51"
53 "52"
54 "53"
55 "54"
56 "55"
59 "58"
63 "62"
64 "63"
65 "64"
66 "65"
67 "66"
68 "67"
69 "68"
70 "69"
71 "70"
72 "71"
73 "72"
74 "73"
75 "74"
76 "75"
79 "78"
80 "79"
82 "81"
83 "82"
big_gap_in_service INFO 1008

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 1008 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.
"13" "2026-07-03" "2026-08-17" 44
"13" "2026-10-09" "2026-10-26" 16
"22" "2026-07-03" "2026-08-03" 30
"23" "2026-07-04" "2026-08-08" 34
"24" "2026-07-05" "2026-08-09" 34
"25" "2026-07-04" "2026-08-08" 34
"28" "2026-08-14" "2026-10-12" 58
"28" "2026-10-23" "2026-12-23" 60
"29" "2026-07-05" "2026-08-08" 33
"30" "2026-07-05" "2026-08-08" 33
"31" "2026-08-14" "2026-10-12" 58
"31" "2026-10-23" "2026-12-23" 60
"32" "2026-07-03" "2026-08-03" 30
"34" "2026-07-04" "2026-08-08" 34
"35" "2026-07-05" "2026-08-08" 33
"36" "2026-07-04" "2026-08-08" 34
"37" "2026-07-04" "2026-08-03" 29
"38" "2026-08-10" "2026-10-12" 62
"38" "2026-10-23" "2026-12-23" 60
"39" "2026-07-05" "2026-08-09" 34
"40" "2026-07-04" "2026-08-03" 29
"46" "2026-10-09" "2026-10-26" 16
"56" "2026-07-10" "2026-07-27" 16
"58" "2026-07-10" "2026-07-27" 16
"58" "2026-08-14" "2026-10-12" 58
"58" "2026-10-23" "2026-12-23" 60
"62" "2026-07-03" "2026-10-01" 89
"62" "2026-10-09" "2026-10-26" 16
"64" "2026-07-10" "2026-10-01" 82
"66" "2026-07-12" "2026-10-03" 82
"69" "2026-07-12" "2026-10-03" 82
"71" "2026-07-10" "2026-10-12" 93
"71" "2026-10-23" "2026-12-23" 60
"73" "2026-10-23" "2026-12-23" 60
"81" "2026-07-03" "2026-08-10" 37
"81" "2026-08-14" "2026-10-05" 51
"82" "2026-07-05" "2026-08-15" 40
"82" "2026-08-16" "2026-10-03" 47
"83" "2026-07-05" "2026-08-10" 35
"84" "2026-07-03" "2026-10-05" 93
"84" "2026-10-09" "2026-10-26" 16
"85" "2026-07-03" "2026-08-10" 37
"86" "2026-07-05" "2026-08-10" 35
"86" "2026-08-16" "2026-10-03" 47
"87" "2026-07-03" "2026-08-03" 30
"87" "2026-08-07" "2026-10-05" 58
"88" "2026-07-05" "2026-08-03" 28
"88" "2026-08-09" "2026-10-03" 54
"89" "2026-07-05" "2026-08-08" 33
"89" "2026-08-09" "2026-10-03" 54
platform_without_parent_station INFO 1188

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 1188 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:06412:912:5:9" "Frankfurt (Main) Süd"
3 "de:16073:8010014:801001400:801001450" "Bad Blankenburg (Thüringer Wald)"
5 "de:16067:8010136:801013600:801013650" "Gotha"
6 "de:15002:8010159:5:09" "Halle (Saale) Hbf"
8 "de:16070:8012317:801231700:801231750" "Martinroda (bei Ilmenau)"
9 "de:16075:8012472:801247201:801247251" "Neustadt (Orla)"
18 "de:16051:8071357::807135700" "Erfurt Hbf (Intercity-Hotel) SEV"
19 "de:16053:153167::15316700" "Jena, Stadtzentrum Holzmarkt"
20 "de:16053:153003::15300300" "Jena, Burgaupark"
28 "de:16053:153003::15300303" "Jena, Burgaupark"
29 "de:16053:153004::15300401" "Jena, Busbahnhof"
30 "de:16053:153050::15305000" "Jena, Stadtzentrum Teichgraben"
31 "de:16053:153050::15305002" "Jena, Stadtzentrum Teichgraben"
32 "de:16053:153166::15316600" "Jena, Stadtzentrum Löbdergraben"
39 "de:16053:153137::15313702" "Jena, Schlippenstraße"
40 "de:16053:153137::15313700" "Jena, Schlippenstraße"
56 "de:16053:153055::15305500" "Jena, Burgaupark"
65 "de:16053:153124::15312400" "Jena, Lobeda-Ost"
67 "de:16053:153043::15304300" "Jena, Emil-Wölk-Straße"
68 "de:16053:153043::15304301" "Jena, Emil-Wölk-Straße"
69 "000015304100" "Jena, Göschwitz Bahnhof"
71 "de:16053:153028::15302802" "Jena, Westbahnhofstraße"
72 "de:16053:153028::15302800" "Jena, Westbahnhofstraße"
80 "de:16053:153002::15300201" "Jena, Beutenberg Campus"
81 "de:16053:153002::15300200" "Jena, Beutenberg Campus"
82 "de:16053:153115::15311500" "Jena, Grüne Aue"
83 "de:16053:153115::15311501" "Jena, Grüne Aue"
87 "de:16053:153109::15310901" "Jena, Enver-Şimşek-Platz"
90 "de:16053:153002::15300204" "Jena, Beutenberg Campus"
101 "de:16053:153021::15302103" "Jena, Winzerla"
102 "de:16053:153021::15302102" "Jena, Winzerla"
103 "de:16053:153021::15302105" "Jena, Winzerla"
104 "de:16053:153021::15302106" "Jena, Winzerla"
105 "de:16053:153016::15301600" "Jena, Westbahnhof"
129 "de:16053:153090::15309000" "Jena, Mühltal"
130 "de:16053:153090::15309001" "Jena, Mühltal"
145 "de:16053:153014::15301401" "Jena, Spittelplatz"
146 "de:16053:153014::15301400" "Jena, Spittelplatz"
149 "de:16053:153097::15309703" "Jena, Scharnhorststraße"
150 "de:16053:153097::15309701" "Jena, Scharnhorststraße"
195 "de:16053:153004::15300403" "Jena, Busbahnhof"
198 "de:16053:153157::15315700" "Jena, Lützeroda"
213 "de:16053:153078::15307802" "Jena, Zwätzen Schleife"
214 "de:16053:153078::15307803" "Jena, Zwätzen Schleife"
216 "de:16053:153040::15304001" "Jena, An der Eule"
217 "de:16053:153040::15304000" "Jena, An der Eule"
218 "de:16053:153097::15309702" "Jena, Scharnhorststraße"
219 "de:16053:153024::15302402" "Jena, Nordschule"
220 "de:16053:153166::15316603" "Jena, Stadtzentrum Löbdergraben"
221 "de:16053:153166::15316602" "Jena, Stadtzentrum Löbdergraben"
transfer_distance_above_2_km INFO 18

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.
23587 "de:06611:200001::9" "de:06611:200007::1" 3.0539457010358095
23588 "de:06611:200001::9" "de:06611:200007::3" 3.0310202136364377
23589 "de:06611:200001::9" "de:06611:200007::4" 3.0207638017931586
23590 "de:06611:200001::9" "de:06611:200007::7" 2.998030923431375
23593 "de:06611:200001::12" "de:06611:200007::1" 3.0329966595223747
23594 "de:06611:200001::12" "de:06611:200007::3" 3.0100771884789856
23595 "de:06611:200001::12" "de:06611:200007::4" 2.9998094706876257
23596 "de:06611:200001::12" "de:06611:200007::7" 2.977360160021408
23597 "de:06611:200007::1" "de:06611:200001::9" 3.0539457010358095
23598 "de:06611:200007::1" "de:06611:200001::12" 3.0329966595223747
23603 "de:06611:200007::3" "de:06611:200001::9" 3.0310202136364377
23604 "de:06611:200007::3" "de:06611:200001::12" 3.0100771884789856
23609 "de:06611:200007::4" "de:06611:200001::9" 3.0207638017931586
23610 "de:06611:200007::4" "de:06611:200001::12" 2.9998094706876257
23615 "de:06611:200007::7" "de:06611:200001::9" 2.998030923431375
23616 "de:06611:200007::7" "de:06611:200001::12" 2.977360160021408
23635 "000540001400" "000540020100" 3.032336953245544
23636 "000540020100" "000540001400" 3.032336953245544
trip_headsign_matches_intermediate_stop INFO 17

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.

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.
945 "37637865" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
946 "37637863" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
947 "37637862" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
948 "37637861" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
949 "37637860" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
950 "37637859" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
951 "37637864" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
952 "37637856" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
953 "37637855" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
954 "37637858" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
955 "37637857" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
961 "37637848" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
962 "37637849" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
963 "37637847" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
964 "37637846" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
965 "37637845" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"
966 "37637844" "Nordhausen, Bahnhofsplatz" "de:16062:700001::70000106" 0 "de:16062:700001::70000100"