GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-22T14:36:48Z,
for the dataset file:///shared/rhein-neckar-verkehrgmbhrnv.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
N/A
Publisher URL:
N/A
Feed Email:
N/A
Feed Language:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. routes.txt
  4. stop_times.txt
  5. stops.txt
  6. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 109
  • Shapes: 0
  • Stops: 2342
  • Trips: 13313

Specification Compliance report

2785 notices reported (0 errors, 453 warnings, 2332 infos)

Notice Code Severity Total
expired_calendar WARNING 53

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

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "174-175-176-177-178-179-181-182-183-184-185-186-188-189-190-191-192-193-195-196-197-198-199-200"
3 "174-175-176-177-178-181-182-183-184-185-188-189-190-191-192-195-196-197-198-199"
4 "174-175-176-177-178-179-180-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
5 "174-175-176-177-178"
6 "174-175-176-177-178-179-180"
7 "187-194-201"
8 "181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
9 "181-182-183-184-185-186-188-189-190-191-192-193-195-196-197-198-199-200"
10 "174-175-176-177-178-179-180-181-182-183-184-185-186-188-189-190-191-192-193-195-196-197-198-199-200"
11 "180-187-194-201"
12 "179-186-193-200"
13 "179-180-186-187-193-194-200-201"
14 "179-180-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
15 "185-186-192-193-199-200"
16 "181-182-183-184-187-188-189-190-191-194-195-196-197-198-201"
17 "181-182-183-184-185-187-188-189-190-191-192-194-195-196-197-198-199-201"
18 "179-180"
19 "174-175-176-177-178-179-180-181-182-183-184-185-187-188-189-190-191-192-194-195-196-197-198-199-201"
20 "174-175-176-177-178-180-181-182-183-184-185-187-188-189-190-191-192-194-195-196-197-198-199-201"
21 "186-187-193-194-200-201"
22 "186-193-200"
23 "174-175-176-177-178-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
24 "185-192-199"
25 "185-186-187-192-193-194-199-200-201"
26 "174-175-176-177-178-181-182-183-184-188-189-190-191-195-196-197-198"
27 "180"
28 "179"
29 "174-175-176-177-178-179-180-187-194-201"
30 "174-175-176-177-178-179"
31 "181-182-183-184-188-189-190-191-195-196-197-198"
32 "174-175-176-177-178-179-181-182-183-184-186-188-189-190-191-193-195-196-197-198-200"
33 "180-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
34 "180-185-186-187-192-193-194-199-200-201"
35 "181-182-183-184-185-188-189-190-191-192-195-196-197-198-199"
36 "174-175-176-177-178-180-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
37 "174-175-176-177-178-180"
38 "179-186-187-193-194-200-201"
39 "179-181-182-183-184-185-186-188-189-190-191-192-193-195-196-197-198-199-200"
40 "174-175-176-177-178-179-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
41 "174-175-176-177-181-182-183-184-188-189-190-191-195-196-197-198"
42 "178-185-192-199"
43 "174-175-176-177-178-181-182-183-184-185"
44 "179-186-188-189-190-191-192-193-195-196-197-198-199-200"
45 "188-189-190-191-192-195-196-197-198-199"
46 "174-175-176-177-178-179-181-182-183-184-185-186-193-200"
47 "179-180-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
48 "178-179-185-186-192-193-199-200"
49 "178-179-181-182-183-184-185-186-187-188-189-190-191-192-193-194-195-196-197-198-199-200-201"
50 "174-175-176-177-178-179-180-181-182-183-184-185-188-189-190-191-192-195-196-197-198-199"
51 "174-175-176-177-181-182-183-184"
fast_travel_between_consecutive_stops WARNING 394

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 394 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.
8671 "53-152-2053-45000" "53" 170.33713715446638 0.4731587143179622 188887 29 "242306" "Hombuschstraße" "13:14:00" 188888 30 "234506" "Niederweid" "13:14:10"
8663 "53-156-3053-69960" "53" 170.33713715446638 0.4731587143179622 188601 22 "242306" "Hombuschstraße" "19:54:00" 188602 23 "234506" "Niederweid" "19:54:10"
8591 "53-156-1-55620" "53" 170.33713715446638 0.4731587143179622 186178 22 "242306" "Hombuschstraße" "15:52:00" 186179 23 "234506" "Niederweid" "15:52:10"
8591 "53-156-1-55620" "53" 196.39761112636054 0.545548919795446 186183 27 "239906" "Bonadiesstraße" "15:55:00" 186184 28 "240006" "Bunsenstraße" "15:55:10"
764 "3-12-1003-13200" "3" 128.4096649323113 0.3566935137008648 20468 6 "261601" "Roche" "03:45:00" 20469 7 "261201" "Altrheinstraße" "03:45:10"
8738 "53-130-2053-25800" "53" 170.33713715446638 0.4731587143179622 190689 29 "242306" "Hombuschstraße" "07:54:00" 190690 30 "234506" "Niederweid" "07:54:10"
8909 "53-130-2053-55800" "53" 170.33713715446638 0.4731587143179622 196296 29 "242306" "Hombuschstraße" "16:14:00" 196297 30 "234506" "Niederweid" "16:14:10"
629 "3-12-1003-16800" "3" 128.4096649323113 0.3566935137008648 16651 6 "261601" "Roche" "04:45:00" 16652 7 "261201" "Altrheinstraße" "04:45:10"
8693 "53-152-2053-65400" "53" 170.33713715446638 0.4731587143179622 189313 29 "242306" "Hombuschstraße" "18:54:00" 189314 30 "234506" "Niederweid" "18:54:10"
7777 "46-10-1-77160" "46" 174.15634134434396 0.4837676148453998 175333 9 "670905" "Neckarh. Friedhof" "21:34:00" 175334 10 "62605" "Neckarh. Schloss" "21:34:10"
7773 "46-10-1-80760" "46" 174.15634134434396 0.4837676148453998 175280 9 "670905" "Neckarh. Friedhof" "22:34:00" 175281 10 "62605" "Neckarh. Schloss" "22:34:10"
8907 "53-130-2053-61800" "53" 170.33713715446638 0.4731587143179622 196224 29 "242306" "Hombuschstraße" "17:54:00" 196225 30 "234506" "Niederweid" "17:54:10"
621 "3-2-2003-41640" "3" 128.4096649323113 0.3566935137008648 16383 6 "261601" "Roche" "11:39:00" 16384 7 "261201" "Altrheinstraße" "11:39:10"
8727 "53-6-1-80820" "53" 170.33713715446638 0.4731587143179622 190389 22 "242306" "Hombuschstraße" "22:52:00" 190390 23 "234506" "Niederweid" "22:52:10"
8727 "53-6-1-80820" "53" 196.39761112636054 0.545548919795446 190394 27 "239906" "Bonadiesstraße" "22:55:00" 190395 28 "240006" "Bunsenstraße" "22:55:10"
8689 "53-156-1-37620" "53" 170.33713715446638 0.4731587143179622 189194 22 "242306" "Hombuschstraße" "10:52:00" 189195 23 "234506" "Niederweid" "10:52:10"
8689 "53-156-1-37620" "53" 196.39761112636054 0.545548919795446 189199 27 "239906" "Bonadiesstraße" "10:55:00" 189200 28 "240006" "Bunsenstraße" "10:55:10"
7770 "46-6-1-59220" "46" 174.15634134434396 0.4837676148453998 175235 9 "670905" "Neckarh. Friedhof" "16:35:00" 175236 10 "62605" "Neckarh. Schloss" "16:35:10"
8764 "53-152-2053-49800" "53" 170.33713715446638 0.4731587143179622 191551 29 "242306" "Hombuschstraße" "14:34:00" 191552 30 "234506" "Niederweid" "14:34:10"
8608 "53-152-2053-47400" "53" 170.33713715446638 0.4731587143179622 186757 29 "242306" "Hombuschstraße" "13:54:00" 186758 30 "234506" "Niederweid" "13:54:10"
7776 "46-6-1-82560" "46" 174.15634134434396 0.4837676148453998 175318 9 "670905" "Neckarh. Friedhof" "23:04:00" 175319 10 "62605" "Neckarh. Schloss" "23:04:10"
7789 "46-6-1-89760" "46" 174.15634134434396 0.4837676148453998 175513 9 "670905" "Neckarh. Friedhof" "25:04:00" 175514 10 "62605" "Neckarh. Schloss" "25:04:10"
7761 "46-6-1-66420" "46" 174.15634134434396 0.4837676148453998 175100 9 "670905" "Neckarh. Friedhof" "18:35:00" 175101 10 "62605" "Neckarh. Schloss" "18:35:10"
8846 "53-156-1-57420" "53" 170.33713715446638 0.4731587143179622 194153 22 "242306" "Hombuschstraße" "16:22:00" 194154 23 "234506" "Niederweid" "16:22:10"
8846 "53-156-1-57420" "53" 196.39761112636054 0.545548919795446 194158 27 "239906" "Bonadiesstraße" "16:25:00" 194159 28 "240006" "Bunsenstraße" "16:25:10"
573 "3-402-2-74280" "3" 128.4096649323113 0.3566935137008648 15144 6 "261601" "Roche" "20:43:00" 15145 7 "261201" "Altrheinstraße" "20:43:10"
8881 "53-156-1-43020" "53" 170.33713715446638 0.4731587143179622 195359 22 "242306" "Hombuschstraße" "12:22:00" 195360 23 "234506" "Niederweid" "12:22:10"
8881 "53-156-1-43020" "53" 196.39761112636054 0.545548919795446 195364 27 "239906" "Bonadiesstraße" "12:25:00" 195365 28 "240006" "Bunsenstraße" "12:25:10"
742 "3-2-2003-77040" "3" 128.4096649323113 0.3566935137008648 19930 6 "261601" "Roche" "21:29:00" 19931 7 "261201" "Altrheinstraße" "21:29:10"
8778 "53-6-1-21420" "53" 170.33713715446638 0.4731587143179622 192003 22 "242306" "Hombuschstraße" "06:22:00" 192004 23 "234506" "Niederweid" "06:22:10"
8778 "53-6-1-21420" "53" 196.39761112636054 0.545548919795446 192008 27 "239906" "Bonadiesstraße" "06:25:00" 192009 28 "240006" "Bunsenstraße" "06:25:10"
8922 "53-130-2053-37800" "53" 170.33713715446638 0.4731587143179622 196761 29 "242306" "Hombuschstraße" "11:14:00" 196762 30 "234506" "Niederweid" "11:14:10"
8796 "53-6-1-82620" "53" 170.33713715446638 0.4731587143179622 192570 22 "242306" "Hombuschstraße" "23:22:00" 192571 23 "234506" "Niederweid" "23:22:10"
8796 "53-6-1-82620" "53" 196.39761112636054 0.545548919795446 192575 27 "239906" "Bonadiesstraße" "23:25:00" 192576 28 "240006" "Bunsenstraße" "23:25:10"
704 "3-212-1003-85200" "3" 128.4096649323113 0.3566935137008648 18903 6 "261601" "Roche" "23:45:00" 18904 7 "261201" "Altrheinstraße" "23:45:10"
694 "3-2-2003-55440" "3" 128.4096649323113 0.3566935137008648 18583 6 "261601" "Roche" "15:29:00" 18584 7 "261201" "Altrheinstraße" "15:29:10"
8786 "53-6-1-48420" "53" 170.33713715446638 0.4731587143179622 192255 22 "242306" "Hombuschstraße" "13:52:00" 192256 23 "234506" "Niederweid" "13:52:10"
8786 "53-6-1-48420" "53" 196.39761112636054 0.545548919795446 192260 27 "239906" "Bonadiesstraße" "13:55:00" 192261 28 "240006" "Bunsenstraße" "13:55:10"
8743 "53-6-1-34020" "53" 170.33713715446638 0.4731587143179622 190857 22 "242306" "Hombuschstraße" "09:52:00" 190858 23 "234506" "Niederweid" "09:52:10"
8743 "53-6-1-34020" "53" 196.39761112636054 0.545548919795446 190862 27 "239906" "Bonadiesstraße" "09:55:00" 190863 28 "240006" "Bunsenstraße" "09:55:10"
604 "3-2-2003-23040" "3" 128.4096649323113 0.3566935137008648 15865 6 "261601" "Roche" "06:29:00" 15866 7 "261201" "Altrheinstraße" "06:29:10"
7771 "46-10-1-75360" "46" 174.15634134434396 0.4837676148453998 175250 9 "670905" "Neckarh. Friedhof" "21:04:00" 175251 10 "62605" "Neckarh. Schloss" "21:04:10"
8627 "53-152-2053-61800" "53" 170.33713715446638 0.4731587143179622 187392 29 "242306" "Hombuschstraße" "17:54:00" 187393 30 "234506" "Niederweid" "17:54:10"
8827 "53-6-1-52020" "53" 170.33713715446638 0.4731587143179622 193546 22 "242306" "Hombuschstraße" "14:52:00" 193547 23 "234506" "Niederweid" "14:52:10"
8827 "53-6-1-52020" "53" 196.39761112636054 0.545548919795446 193551 27 "239906" "Bonadiesstraße" "14:55:00" 193552 28 "240006" "Bunsenstraße" "14:55:10"
767 "3-4-2003-84240" "3" 128.4096649323113 0.3566935137008648 20519 6 "261601" "Roche" "23:29:00" 20520 7 "261201" "Altrheinstraße" "23:29:10"
5519 "31-70-3-72060" "31" 361.5093939590665 1.0041927609974068 125358 2 "614302" "Herrenmühle" "20:02:00" 125359 3 "118132" "Peterskirche" "20:02:10"
5519 "31-70-3-72060" "31" 171.4395438182937 0.47622095505081585 125368 12 "122604" "Technologiepark" "20:18:00" 125369 13 "123802" "Pädagog.Hochschule" "20:18:10"
8896 "53-130-2053-35400" "53" 170.33713715446638 0.4731587143179622 195832 29 "242306" "Hombuschstraße" "10:34:00" 195833 30 "234506" "Niederweid" "10:34:10"
8660 "53-152-2053-23400" "53" 170.33713715446638 0.4731587143179622 188503 29 "242306" "Hombuschstraße" "07:14:00" 188504 30 "234506" "Niederweid" "07:14:10"
leading_or_trailing_whitespaces WARNING 1

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.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"routes.txt" 15 "route_long_name" "HD Hauptbahnhof - Seegarten - Karlsplatz "
missing_recommended_file WARNING 1

missing_recommended_file

A recommended file is missing.

You can see more about this notice here.

filename (?) The name of the faulty file.
"feed_info.txt"
mixed_case_recommended_field WARNING 2

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_desc" "xxx" 103
"routes.txt" "route_desc" "xxx" 108
same_name_and_description_for_route WARNING 1

same_name_and_description_for_route

Same name and description for route.

The GTFS spec defines routes.txt route_desc as:

Description of a route that provides useful, quality information. Do not simply duplicate the name of the route.

See the GTFS and GTFS Best Practices links below for more examples of how to populate the route_short_name, route_long_name, and route_desc fields.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. routeId (?) The id of the faulty record. routeDesc (?) The `routes.routes_desc` of the faulty record. specifiedField (?) Either `route_short_name` or `route_long_name`.
79 "95" "Berliner Platz - maudach" "route_long_name"
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20251222" "20200622" "20200717"
platform_without_parent_station INFO 2332

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 2332 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 "11601" "Bad Dürkheim Bahnhof"
3 "13401" "Bad Dürkheim Ost"
4 "13402" "Bad Dürkheim Ost"
5 "46161" "Schauernheim Nord"
6 "46262" "Schauernheim Süd"
7 "51501" "Dossenheim Bahnhof"
8 "51502" "Dossenheim Bahnhof"
9 "51511" "Dossenheim Bahnhof"
10 "51512" "Dossenheim Bahnhof"
11 "51601" "Dossenheim Süd"
12 "51602" "Dossenheim Süd"
13 "51611" "Dossenheim Süd"
14 "51612" "Dossenheim Süd"
15 "61605" "Edingen Ost"
16 "61606" "Edingen Ost"
17 "61705" "Thomas-Mann-Straße"
18 "61706" "Thomas-Mann-Straße"
19 "61901" "Edingen Bahnhof"
20 "61906" "Edingen Bahnhof"
21 "61911" "Edingen Bahnhof"
22 "61912" "Edingen Bahnhof"
23 "61920" "Edingen Bahnhof"
24 "61921" "Edingen Bahnhof"
25 "62005" "Pfälzer Hof"
26 "62006" "Pfälzer Hof"
27 "62105" "Edingen Rathaus"
28 "62106" "Edingen Rathaus"
29 "62206" "Schillerstraße"
30 "62301" "Edingen West"
31 "62311" "Edingen West"
32 "62312" "Edingen West"
33 "62405" "Neckarh. Brücke"
34 "62406" "Neckarh. Brücke"
35 "62505" "Neckarhausen Ost"
36 "62506" "Neckarhausen Ost"
37 "62605" "Neckarh. Schloss"
38 "62606" "Neckarh. Schloss"
39 "62705" "Neckarh. West"
40 "62706" "Neckarh. West"
41 "62805" "Ahornstraße"
42 "62901" "Neu-Ed. Gewerbegeb."
43 "62905" "Neu-Ed. Gewerbegeb."
44 "62906" "Neu-Ed. Gewerbegeb."
45 "62907" "Neu-Ed. Gewerbegeb."
46 "62908" "Neu-Ed. Gewerbegeb."
47 "62911" "Neu-Ed. Gewerbegeb."
48 "62912" "Neu-Ed. Gewerbegeb."
49 "63005" "Breslauer Str. (NEd)"
50 "63006" "Breslauer Str. (NEd)"
51 "63105" "Lilienstraße"