GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 5.0.1 at 2024-06-07T16:00:58Z,
for the dataset file:///tmp/1_in.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Keolis Quimper
Publisher URL:
http://www.qub.fr/se-deplacer/les-horaires/rechercher-une-fiche-horaire/
Feed Language:
French
Feed Start Date:
2024-05-06
Feed End Date:
2024-09-01

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. feed_info.txt
  5. routes.txt
  6. stop_times.txt
  7. stops.txt
  8. trips.txt

Counts


  • Agencies: 1
  • Blocks: 1
  • Routes: 57
  • Shapes: 0
  • Stops: 1606
  • Trips: 2837

GTFS Features included (?) GTFS features provide a standardized vocabulary to define and describe features that are officially adopted in GTFS.


Feed InformationRoute ColorsHeadsignsWheelchair AccessibilityLocation Types

Specification Compliance report

88135 notices reported (0 errors, 88135 warnings, 0 infos)

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 7

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.

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.
2244 "287182" "2_511" 177.1382478440866 5.904608261469554 63103 33 "QUIBFCE2" "BOULEVARD DE France" "18:04:00" 63104 34 "QUIDUDU2" "LUDUDU" "18:05:00"
2242 "287180" "2_511" 177.1382478440866 5.904608261469554 63031 33 "QUIBFCE2" "BOULEVARD DE France" "16:55:00" 63032 34 "QUIDUDU2" "LUDUDU" "16:56:00"
2241 "287179" "2_511" 177.1382478440866 5.904608261469554 62995 33 "QUIBFCE2" "BOULEVARD DE France" "16:25:00" 62996 34 "QUIDUDU2" "LUDUDU" "16:26:00"
2246 "287184" "2_511" 177.1382478440866 5.904608261469554 63175 33 "QUIBFCE2" "BOULEVARD DE France" "19:09:00" 63176 34 "QUIDUDU2" "LUDUDU" "19:10:00"
2247 "287185" "2_511" 177.1382478440866 5.904608261469554 63211 33 "QUIBFCE2" "BOULEVARD DE France" "19:46:00" 63212 34 "QUIDUDU2" "LUDUDU" "19:47:00"
2245 "287183" "2_511" 177.1382478440866 5.904608261469554 63139 33 "QUIBFCE2" "BOULEVARD DE France" "18:36:00" 63140 34 "QUIDUDU2" "LUDUDU" "18:37:00"
2243 "287181" "2_511" 177.1382478440866 5.904608261469554 63067 33 "QUIBFCE2" "BOULEVARD DE France" "17:28:00" 63068 34 "QUIDUDU2" "LUDUDU" "17:29:00"
fast_travel_between_far_stops WARNING 69

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.

Only the first 50 of 69 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.
2239 "287177" "2_511" 160.22937732715062 10.681958488476708 62922 32 "QUIRKMO2" "RDPT KERMOYSAN" "15:15:00" 62924 34 "QUIDUDU2" "LUDUDU" "15:18:00"
2528 "291473" "2_511" 160.22937732715062 10.681958488476708 72963 32 "QUIRKMO2" "RDPT KERMOYSAN" "09:55:00" 72965 34 "QUIDUDU2" "LUDUDU" "09:58:00"
2257 "287195" "2_511" 160.22937732715062 10.681958488476708 63527 32 "QUIRKMO2" "RDPT KERMOYSAN" "09:55:00" 63529 34 "QUIDUDU2" "LUDUDU" "09:58:00"
2536 "291481" "2_511" 160.22937732715062 10.681958488476708 73251 32 "QUIRKMO2" "RDPT KERMOYSAN" "14:25:00" 73253 34 "QUIDUDU2" "LUDUDU" "14:28:00"
2258 "287196" "2_511" 160.22937732715062 10.681958488476708 63563 32 "QUIRKMO2" "RDPT KERMOYSAN" "14:25:00" 63565 34 "QUIDUDU2" "LUDUDU" "14:28:00"
2542 "291487" "2_511" 160.22937732715062 10.681958488476708 73467 32 "QUIRKMO2" "RDPT KERMOYSAN" "17:36:00" 73469 34 "QUIDUDU2" "LUDUDU" "17:39:00"
2271 "287209" "2_511" 160.22937732715062 10.681958488476708 64031 32 "QUIRKMO2" "RDPT KERMOYSAN" "17:36:00" 64033 34 "QUIDUDU2" "LUDUDU" "17:39:00"
2538 "291483" "2_511" 160.22937732715062 10.681958488476708 73323 32 "QUIRKMO2" "RDPT KERMOYSAN" "15:25:00" 73325 34 "QUIDUDU2" "LUDUDU" "15:28:00"
2267 "287205" "2_511" 160.22937732715062 10.681958488476708 63887 32 "QUIRKMO2" "RDPT KERMOYSAN" "15:25:00" 63889 34 "QUIDUDU2" "LUDUDU" "15:28:00"
2531 "291476" "2_511" 160.22937732715062 10.681958488476708 73071 32 "QUIRKMO2" "RDPT KERMOYSAN" "11:45:00" 73073 34 "QUIDUDU2" "LUDUDU" "11:48:00"
2261 "287199" "2_511" 160.22937732715062 10.681958488476708 63671 32 "QUIRKMO2" "RDPT KERMOYSAN" "11:45:00" 63673 34 "QUIDUDU2" "LUDUDU" "11:48:00"
2540 "291485" "2_511" 160.22937732715062 10.681958488476708 73395 32 "QUIRKMO2" "RDPT KERMOYSAN" "16:36:00" 73397 34 "QUIDUDU2" "LUDUDU" "16:39:00"
2269 "287207" "2_511" 160.22937732715062 10.681958488476708 63959 32 "QUIRKMO2" "RDPT KERMOYSAN" "16:36:00" 63961 34 "QUIDUDU2" "LUDUDU" "16:39:00"
2529 "291474" "2_511" 160.22937732715062 10.681958488476708 72999 32 "QUIRKMO2" "RDPT KERMOYSAN" "10:35:00" 73001 34 "QUIDUDU2" "LUDUDU" "10:38:00"
2259 "287197" "2_511" 160.22937732715062 10.681958488476708 63599 32 "QUIRKMO2" "RDPT KERMOYSAN" "10:35:00" 63601 34 "QUIDUDU2" "LUDUDU" "10:38:00"
2545 "291490" "2_511" 160.22937732715062 10.681958488476708 73575 32 "QUIRKMO2" "RDPT KERMOYSAN" "19:13:00" 73577 34 "QUIDUDU2" "LUDUDU" "19:16:00"
2274 "287212" "2_511" 160.22937732715062 10.681958488476708 64139 32 "QUIRKMO2" "RDPT KERMOYSAN" "19:13:00" 64141 34 "QUIDUDU2" "LUDUDU" "19:16:00"
2228 "287166" "2_511" 160.22937732715062 10.681958488476708 62526 32 "QUIRKMO2" "RDPT KERMOYSAN" "09:11:00" 62528 34 "QUIDUDU2" "LUDUDU" "09:14:00"
2526 "291471" "2_511" 160.22937732715062 10.681958488476708 72891 32 "QUIRKMO2" "RDPT KERMOYSAN" "08:42:00" 72893 34 "QUIDUDU2" "LUDUDU" "08:45:00"
2255 "287193" "2_511" 160.22937732715062 10.681958488476708 63455 32 "QUIRKMO2" "RDPT KERMOYSAN" "08:42:00" 63457 34 "QUIDUDU2" "LUDUDU" "08:45:00"
2240 "287178" "2_511" 160.22937732715062 10.681958488476708 62958 32 "QUIRKMO2" "RDPT KERMOYSAN" "15:52:00" 62960 34 "QUIDUDU2" "LUDUDU" "15:55:00"
2524 "291469" "2_511" 160.22937732715062 10.681958488476708 72819 32 "QUIRKMO2" "RDPT KERMOYSAN" "07:29:00" 72821 34 "QUIDUDU2" "LUDUDU" "07:32:00"
2253 "287191" "2_511" 160.22937732715062 10.681958488476708 63383 32 "QUIRKMO2" "RDPT KERMOYSAN" "07:29:00" 63385 34 "QUIDUDU2" "LUDUDU" "07:32:00"
2541 "291486" "2_511" 160.22937732715062 10.681958488476708 73431 32 "QUIRKMO2" "RDPT KERMOYSAN" "17:06:00" 73433 34 "QUIDUDU2" "LUDUDU" "17:09:00"
2270 "287208" "2_511" 160.22937732715062 10.681958488476708 63995 32 "QUIRKMO2" "RDPT KERMOYSAN" "17:06:00" 63997 34 "QUIDUDU2" "LUDUDU" "17:09:00"
2535 "291480" "2_511" 160.22937732715062 10.681958488476708 73215 32 "QUIRKMO2" "RDPT KERMOYSAN" "13:45:00" 73217 34 "QUIDUDU2" "LUDUDU" "13:48:00"
2265 "287203" "2_511" 160.22937732715062 10.681958488476708 63815 32 "QUIRKMO2" "RDPT KERMOYSAN" "13:45:00" 63817 34 "QUIDUDU2" "LUDUDU" "13:48:00"
2238 "287176" "2_511" 160.22937732715062 10.681958488476708 62886 32 "QUIRKMO2" "RDPT KERMOYSAN" "14:45:00" 62888 34 "QUIDUDU2" "LUDUDU" "14:48:00"
2533 "291478" "2_511" 160.22937732715062 10.681958488476708 73143 32 "QUIRKMO2" "RDPT KERMOYSAN" "12:45:00" 73145 34 "QUIDUDU2" "LUDUDU" "12:48:00"
2263 "287201" "2_511" 160.22937732715062 10.681958488476708 63743 32 "QUIRKMO2" "RDPT KERMOYSAN" "12:45:00" 63745 34 "QUIDUDU2" "LUDUDU" "12:48:00"
2231 "287169" "2_511" 160.22937732715062 10.681958488476708 62634 32 "QUIRKMO2" "RDPT KERMOYSAN" "10:56:00" 62636 34 "QUIDUDU2" "LUDUDU" "10:59:00"
2229 "287167" "2_511" 160.22937732715062 10.681958488476708 62562 32 "QUIRKMO2" "RDPT KERMOYSAN" "09:51:00" 62564 34 "QUIDUDU2" "LUDUDU" "09:54:00"
2532 "291477" "2_511" 160.22937732715062 10.681958488476708 73107 32 "QUIRKMO2" "RDPT KERMOYSAN" "12:15:00" 73109 34 "QUIDUDU2" "LUDUDU" "12:18:00"
2262 "287200" "2_511" 160.22937732715062 10.681958488476708 63707 32 "QUIRKMO2" "RDPT KERMOYSAN" "12:15:00" 63709 34 "QUIDUDU2" "LUDUDU" "12:18:00"
2244 "287182" "2_511" 160.22937732715062 10.681958488476708 63102 32 "QUIRKMO2" "RDPT KERMOYSAN" "18:02:00" 63104 34 "QUIDUDU2" "LUDUDU" "18:05:00"
2546 "291491" "2_511" 160.22937732715062 10.681958488476708 73611 32 "QUIRKMO2" "RDPT KERMOYSAN" "19:43:00" 73613 34 "QUIDUDU2" "LUDUDU" "19:46:00"
2275 "287213" "2_511" 160.22937732715062 10.681958488476708 64175 32 "QUIRKMO2" "RDPT KERMOYSAN" "19:43:00" 64177 34 "QUIDUDU2" "LUDUDU" "19:46:00"
2525 "291470" "2_511" 160.22937732715062 10.681958488476708 72855 32 "QUIRKMO2" "RDPT KERMOYSAN" "08:07:00" 72857 34 "QUIDUDU2" "LUDUDU" "08:10:00"
2254 "287192" "2_511" 160.22937732715062 10.681958488476708 63419 32 "QUIRKMO2" "RDPT KERMOYSAN" "08:07:00" 63421 34 "QUIDUDU2" "LUDUDU" "08:10:00"
2232 "287170" "2_511" 160.22937732715062 10.681958488476708 62670 32 "QUIRKMO2" "RDPT KERMOYSAN" "11:41:00" 62672 34 "QUIDUDU2" "LUDUDU" "11:44:00"
2227 "287165" "2_511" 160.22937732715062 10.681958488476708 62490 32 "QUIRKMO2" "RDPT KERMOYSAN" "08:42:00" 62492 34 "QUIDUDU2" "LUDUDU" "08:45:00"
2234 "287172" "2_511" 160.22937732715062 10.681958488476708 62742 32 "QUIRKMO2" "RDPT KERMOYSAN" "12:43:00" 62744 34 "QUIDUDU2" "LUDUDU" "12:46:00"
2230 "287168" "2_511" 160.22937732715062 10.681958488476708 62598 32 "QUIRKMO2" "RDPT KERMOYSAN" "10:26:00" 62600 34 "QUIDUDU2" "LUDUDU" "10:29:00"
2242 "287180" "2_511" 160.22937732715062 10.681958488476708 63030 32 "QUIRKMO2" "RDPT KERMOYSAN" "16:53:00" 63032 34 "QUIDUDU2" "LUDUDU" "16:56:00"
2236 "287174" "2_511" 160.22937732715062 10.681958488476708 62814 32 "QUIRKMO2" "RDPT KERMOYSAN" "13:38:00" 62816 34 "QUIDUDU2" "LUDUDU" "13:41:00"
2537 "291482" "2_511" 160.22937732715062 10.681958488476708 73287 32 "QUIRKMO2" "RDPT KERMOYSAN" "14:55:00" 73289 34 "QUIDUDU2" "LUDUDU" "14:58:00"
2266 "287204" "2_511" 160.22937732715062 10.681958488476708 63851 32 "QUIRKMO2" "RDPT KERMOYSAN" "14:55:00" 63853 34 "QUIDUDU2" "LUDUDU" "14:58:00"
2543 "291488" "2_511" 160.22937732715062 10.681958488476708 73503 32 "QUIRKMO2" "RDPT KERMOYSAN" "18:16:00" 73505 34 "QUIDUDU2" "LUDUDU" "18:19:00"
2272 "287210" "2_511" 160.22937732715062 10.681958488476708 64067 32 "QUIRKMO2" "RDPT KERMOYSAN" "18:16:00" 64069 34 "QUIDUDU2" "LUDUDU" "18:19:00"
2527 "291472" "2_511" 160.22937732715062 10.681958488476708 72927 32 "QUIRKMO2" "RDPT KERMOYSAN" "09:13:00" 72929 34 "QUIDUDU2" "LUDUDU" "09:16:00"
missing_feed_contact_email_and_url WARNING 1

missing_feed_contact_email_and_url

Best Practices for feed_info.txt suggest providing at least one of feed_contact_email and feed_contact_url.

You can see more about this notice here.

csvRowNumber (?) The row number of the validated record.
2
missing_timepoint_value WARNING 83071

missing_timepoint_value

stop_times.timepoint value is missing for a record.

Even though the column timepoint is optional in stop_times.txt according to the specification, stop_times.timepoint should not be empty when provided.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's `stop_times.trip_id`. stopSequence (?) The faulty record's `stop_times.stop_sequence`.
2 "217517" 1
3 "217517" 2
4 "217518" 1
5 "217518" 2
6 "217794" 1
7 "217794" 2
8 "217794" 3
9 "217794" 4
10 "217794" 5
11 "217794" 6
12 "217794" 7
13 "217794" 8
14 "217794" 9
15 "217794" 10
16 "217794" 11
17 "217794" 12
18 "217794" 13
19 "217794" 14
20 "217794" 15
21 "217794" 16
22 "217794" 17
23 "217794" 18
24 "217794" 19
25 "217794" 20
26 "217794" 21
27 "217794" 22
28 "217794" 23
29 "217795" 1
30 "217795" 2
31 "217795" 3
32 "217795" 4
33 "217795" 5
34 "217795" 6
35 "217795" 7
36 "217795" 8
37 "217795" 9
38 "217795" 10
39 "217795" 11
40 "217795" 12
41 "217795" 13
42 "217795" 14
43 "217795" 15
44 "217795" 16
45 "217795" 17
46 "217795" 18
47 "217795" 19
48 "217795" 20
49 "217795" 21
50 "217795" 22
51 "217795" 23
mixed_case_recommended_field WARNING 4984

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.

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

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"stops.txt" "stop_name" "AN BALAN AOUR" 2
"stops.txt" "stop_name" "BARRE NEVEZ" 3
"stops.txt" "stop_name" "BEL AIR" 4
"stops.txt" "stop_name" "BRIEC - AIRE DE COVOITURAGE" 5
"stops.txt" "stop_name" "3 CROIX" 6
"stops.txt" "stop_name" "ECOLE SAINTE-ANNE" 7
"stops.txt" "stop_name" "ECOLE YVES DE KERGUELEN" 8
"stops.txt" "stop_name" "LES 3 FONTAINES" 9
"stops.txt" "stop_name" "GOAREM AR BLEIZ" 10
"stops.txt" "stop_name" "BRIEC GURVALE" 14
"stops.txt" "stop_name" "HAMEAU DE KERNON" 15
"stops.txt" "stop_name" "CC BRIEC" 16
"stops.txt" "stop_name" "JULES FERRY" 17
"stops.txt" "stop_name" "KER ANNA" 18
"stops.txt" "stop_name" "KERLEZ BIHAN" 23
"stops.txt" "stop_name" "BRIEC LESPRITEN" 35
"stops.txt" "stop_name" "BRIEC MAIRIE" 37
"stops.txt" "stop_name" "MAISON DE L ENFANCE" 38
"stops.txt" "stop_name" "BRIEC MAQUIS" 39
"stops.txt" "stop_name" "MENEZ CROAS VAR" 40
"stops.txt" "stop_name" "MENEZ ROCH MEUR" 41
"stops.txt" "stop_name" "QUENEACH PODOU" 42
"stops.txt" "stop_name" "NENEZ NEVEZ" 43
"stops.txt" "stop_name" "CITE DE L'ODET" 44
"stops.txt" "stop_name" "PRAT HIR" 45
"stops.txt" "stop_name" "PEN PARCOU" 47
"stops.txt" "stop_name" "COLLEGE PIERRE STEPHAN" 48
"stops.txt" "stop_name" "LES PYRENEES" 49
"stops.txt" "stop_name" "ROCH AN DOL" 50
"stops.txt" "stop_name" "GENERAL DE GAULLE" 51
"stops.txt" "stop_name" "COLLEGE SAINT PIERRE" 53
"stops.txt" "stop_name" "TY MARIE" 54
"stops.txt" "stop_name" "TY NEVEZ PERN" 55
"stops.txt" "stop_name" "TY RU" 56
"stops.txt" "stop_name" "LE VERN" 57
"stops.txt" "stop_name" "LE WOUEZ" 59
"stops.txt" "stop_name" "YEUN KERDEVEZ" 60
"stops.txt" "stop_name" "ZI PAYS BAS" 61
"stops.txt" "stop_name" "LA PETITE BOISSIERE" 62
"stops.txt" "stop_name" "EDERN BOURG" 63
"stops.txt" "stop_name" "CROAS BENODIC" 64
"stops.txt" "stop_name" "COAT DREGAT" 65
"stops.txt" "stop_name" "PARC LA HAUT" 68
"stops.txt" "stop_name" "HELLEN CHAPELLE" 69
"stops.txt" "stop_name" "LE NIVER" 78
"stops.txt" "stop_name" "PARC AN AMIEL" 79
"stops.txt" "stop_name" "QUENEACH GOUZIEN" 81
"stops.txt" "stop_name" "STANG KERGOURLAY" 85
"stops.txt" "stop_name" "SAINT ADRIEN" 86
"stops.txt" "stop_name" "ST JEAN BOTLAN" 87
route_color_contrast WARNING 3

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.
"P120_200" 29 "#5EFFF1" "#FFFFFF"
"P170_400" 39 "#FBBA00" "#FFFFFF"
"P33_300" 46 "#ACDEF9" "#FFFFFF"