cacl-l7-10 — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-14T21:11:01Z,
for the dataset file:///shared/cacl-l7-10_c91805d0.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. attributions.txt
  3. calendar.txt
  4. calendar_dates.txt
  5. routes.txt
  6. shapes.txt
  7. stop_times.txt
  8. stops.txt
  9. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 2
  • Shapes: 10
  • Stops: 191
  • Trips: 189

Specification Compliance report

2230 notices reported (3 errors, 2154 warnings, 73 infos)

Notice Code Severity Total
duplicate_key ERROR 2

duplicate_key

Duplicated entity.

The values of the given key and rows are duplicates.

You can see more about this notice here.

filename (?) The name of the faulty file oldCsvRowNumber (?) The row of the first occurrence. newCsvRowNumber (?) The row of the other occurrence. fieldName1 (?) Composite key's first field name. fieldValue1 (?) Composite key's first value.
"stop_times.txt" 1314 1315 "trip_id,stop_sequence" "2e30253b-09b3-4c61-a118-5c74c8f1dee4,21"
"shapes.txt" 208 209 "shape_id,shape_pt_sequence" "2e30253b-09b3-4c61-a118-5c74c8f1dee4,21"
stop_time_with_arrival_before_previous_departure_time ERROR 1

stop_time_with_arrival_before_previous_departure_time

Backwards time travel between stops in stop_times.txt

For a given trip_id, the arrival_time of (n+1)-th stoptime in sequence must not precede the departure_time of n-th stoptime in sequence in stop_times.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. prevCsvRowNumber (?) The row of the previous stop time. tripId (?) The trip_id associated to the faulty record. arrivalTime (?) Arrival time at the faulty record. departureTime (?) Departure time at the previous stop time.
1314 1313 "2e30253b-09b3-4c61-a118-5c74c8f1dee4" "05:38:00" "05:42:00"
leading_or_trailing_whitespaces WARNING 100

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 100 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.
"trips.txt" 27 "trip_short_name" " 07 SCO 78B"
"trips.txt" 28 "trip_short_name" " 07 SCO 76E"
"trips.txt" 29 "trip_short_name" " 07 SCO 74A EXPRESS"
"trips.txt" 30 "trip_short_name" " 07 SCO 72C"
"trips.txt" 31 "trip_short_name" " 07 SCO 70G"
"trips.txt" 32 "trip_short_name" " 07 SCO 68F"
"trips.txt" 33 "trip_short_name" " 07 SCO 66D"
"trips.txt" 34 "trip_short_name" " 07 SCO 64B"
"trips.txt" 35 "trip_short_name" " 07 SCO 22B"
"trips.txt" 36 "trip_short_name" " 07 SCO 20E"
"trips.txt" 37 "trip_short_name" " 07 SCO 18C"
"trips.txt" 38 "trip_short_name" " 07 SCO 16A EXPRESS"
"trips.txt" 39 "trip_short_name" " 07 SCO 14G"
"trips.txt" 40 "trip_short_name" " 07 SCO 12F"
"trips.txt" 41 "trip_short_name" " 07 SCO 10D"
"trips.txt" 42 "trip_short_name" " 07 SCO 08B"
"trips.txt" 43 "trip_short_name" " 07 SCO 06E"
"trips.txt" 44 "trip_short_name" " 07 SCO 04C"
"trips.txt" 45 "trip_short_name" " 07 SCO 02A EXPRESS"
"trips.txt" 48 "trip_short_name" " 07 SCO 62A EXPRESS"
"trips.txt" 49 "trip_short_name" " 07 SCO 60E"
"trips.txt" 50 "trip_short_name" " 07 SCO 58C"
"trips.txt" 51 "trip_short_name" " 07 SCO 56G"
"trips.txt" 52 "trip_short_name" " 07 SCO 54F"
"trips.txt" 53 "trip_short_name" " 07 SCO 52D"
"trips.txt" 54 "trip_short_name" " 07 SCO 50B"
"trips.txt" 55 "trip_short_name" " 07 SCO 46E"
"trips.txt" 56 "trip_short_name" " 07 SCO 44C"
"trips.txt" 57 "trip_short_name" " 07 SCO 42G"
"trips.txt" 58 "trip_short_name" " 07 SCO 40F"
"trips.txt" 59 "trip_short_name" " 07 SCO 38D"
"trips.txt" 60 "trip_short_name" " 07 SCO 36B"
"trips.txt" 62 "trip_short_name" " 07 SCO 32A EXPRESS"
"trips.txt" 63 "trip_short_name" " 07 SCO 30C"
"trips.txt" 64 "trip_short_name" " 07 SCO 28G"
"trips.txt" 65 "trip_short_name" " 07 SCO 26F"
"trips.txt" 66 "trip_short_name" " 07 SCO 24D"
"trips.txt" 68 "trip_short_name" " 07 SCO 25A EXPRESS"
"trips.txt" 69 "trip_short_name" " 07 SCO 09A EXPRESS"
"trips.txt" 102 "trip_short_name" " 07 SCO 35G"
"trips.txt" 103 "trip_short_name" " 07 SCO 33F"
"trips.txt" 104 "trip_short_name" " 07 SCO 31D"
"trips.txt" 105 "trip_short_name" " 07 SCO 29B"
"trips.txt" 106 "trip_short_name" " 07 SCO 27E"
"trips.txt" 107 "trip_short_name" " 07 SCO 23C"
"trips.txt" 108 "trip_short_name" " 07 SCO 21G"
"trips.txt" 109 "trip_short_name" " 07 SCO 19F"
"trips.txt" 110 "trip_short_name" " 07 SCO 17D"
"trips.txt" 111 "trip_short_name" " 07 SCO 15B"
"trips.txt" 112 "trip_short_name" " 07 SCO 13E"
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 249

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 249 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.
"trips.txt" "trip_short_name" "07 VAC 50B" 2
"trips.txt" "trip_short_name" "07 VAC 48D" 3
"trips.txt" "trip_short_name" "07 VAC 46A" 4
"trips.txt" "trip_short_name" "07 VAC 44C" 5
"trips.txt" "trip_short_name" "07 VAC 42B" 6
"trips.txt" "trip_short_name" "07 VAC 40D" 7
"trips.txt" "trip_short_name" "07 VAC 38A" 8
"trips.txt" "trip_short_name" "07 VAC 36C" 9
"trips.txt" "trip_short_name" "07 VAC 34B" 10
"trips.txt" "trip_short_name" "07 VAC 32D" 11
"trips.txt" "trip_short_name" "07 VAC 30A" 12
"trips.txt" "trip_short_name" "07 VAC 28C" 13
"trips.txt" "trip_short_name" "07 VAC 26B" 14
"trips.txt" "trip_short_name" "07 VAC 24D" 15
"trips.txt" "trip_short_name" "07 VAC 22A" 16
"trips.txt" "trip_short_name" "07 VAC 20C" 17
"trips.txt" "trip_short_name" "07 VAC 18B" 18
"trips.txt" "trip_short_name" "07 VAC 16D" 19
"trips.txt" "trip_short_name" "07 VAC 14A" 20
"trips.txt" "trip_short_name" "07 VAC 12C" 21
"trips.txt" "trip_short_name" "07 VAC 10B" 22
"trips.txt" "trip_short_name" "07 VAC 08D" 23
"trips.txt" "trip_short_name" "07 VAC 06A" 24
"trips.txt" "trip_short_name" "07 VAC 04C" 25
"trips.txt" "trip_short_name" "07 VAC 02B" 26
"trips.txt" "trip_short_name" "07 SCO 78B" 27
"trips.txt" "trip_short_name" "07 SCO 76E" 28
"trips.txt" "trip_short_name" "07 SCO 74A EXPRESS" 29
"trips.txt" "trip_short_name" "07 SCO 72C" 30
"trips.txt" "trip_short_name" "07 SCO 70G" 31
"trips.txt" "trip_short_name" "07 SCO 68F" 32
"trips.txt" "trip_short_name" "07 SCO 66D" 33
"trips.txt" "trip_short_name" "07 SCO 64B" 34
"trips.txt" "trip_short_name" "07 SCO 22B" 35
"trips.txt" "trip_short_name" "07 SCO 20E" 36
"trips.txt" "trip_short_name" "07 SCO 18C" 37
"trips.txt" "trip_short_name" "07 SCO 16A EXPRESS" 38
"trips.txt" "trip_short_name" "07 SCO 14G" 39
"trips.txt" "trip_short_name" "07 SCO 12F" 40
"trips.txt" "trip_short_name" "07 SCO 10D" 41
"trips.txt" "trip_short_name" "07 SCO 08B" 42
"trips.txt" "trip_short_name" "07 SCO 06E" 43
"trips.txt" "trip_short_name" "07 SCO 04C" 44
"trips.txt" "trip_short_name" "07 SCO 02A EXPRESS" 45
"trips.txt" "trip_short_name" "07 SCO 67AEXPRESS" 46
"trips.txt" "trip_short_name" "07 SCO 55AEXPRESS" 47
"trips.txt" "trip_short_name" "07 SCO 62A EXPRESS" 48
"trips.txt" "trip_short_name" "07 SCO 60E" 49
"trips.txt" "trip_short_name" "07 SCO 58C" 50
"trips.txt" "trip_short_name" "07 SCO 56G" 51
non_ascii_or_non_printable_char WARNING 1800

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.

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

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.
"trips.txt" 2 "service_id" "Période de vacances"
"trips.txt" 3 "service_id" "Période de vacances"
"trips.txt" 4 "service_id" "Période de vacances"
"trips.txt" 5 "service_id" "Période de vacances"
"trips.txt" 6 "service_id" "Période de vacances"
"trips.txt" 7 "service_id" "Période de vacances"
"trips.txt" 8 "service_id" "Période de vacances"
"trips.txt" 9 "service_id" "Période de vacances"
"trips.txt" 10 "service_id" "Période de vacances"
"trips.txt" 11 "service_id" "Période de vacances"
"trips.txt" 12 "service_id" "Période de vacances"
"trips.txt" 13 "service_id" "Période de vacances"
"trips.txt" 14 "service_id" "Période de vacances"
"trips.txt" 15 "service_id" "Période de vacances"
"trips.txt" 16 "service_id" "Période de vacances"
"trips.txt" 17 "service_id" "Période de vacances"
"trips.txt" 18 "service_id" "Période de vacances"
"trips.txt" 19 "service_id" "Période de vacances"
"trips.txt" 20 "service_id" "Période de vacances"
"trips.txt" 21 "service_id" "Période de vacances"
"trips.txt" 22 "service_id" "Période de vacances"
"trips.txt" 23 "service_id" "Période de vacances"
"trips.txt" 24 "service_id" "Période de vacances"
"trips.txt" 25 "service_id" "Période de vacances"
"trips.txt" 26 "service_id" "Période de vacances"
"trips.txt" 27 "service_id" "Période scolaire"
"trips.txt" 28 "service_id" "Période scolaire"
"trips.txt" 29 "service_id" "Période scolaire"
"trips.txt" 30 "service_id" "Période scolaire"
"trips.txt" 31 "service_id" "Période scolaire"
"trips.txt" 32 "service_id" "Période scolaire"
"trips.txt" 33 "service_id" "Période scolaire"
"trips.txt" 34 "service_id" "Période scolaire"
"trips.txt" 35 "service_id" "Période scolaire"
"trips.txt" 36 "service_id" "Période scolaire"
"trips.txt" 37 "service_id" "Période scolaire"
"trips.txt" 38 "service_id" "Période scolaire"
"trips.txt" 39 "service_id" "Période scolaire"
"trips.txt" 40 "service_id" "Période scolaire"
"trips.txt" 41 "service_id" "Période scolaire"
"trips.txt" 42 "service_id" "Période scolaire"
"trips.txt" 43 "service_id" "Période scolaire"
"trips.txt" 44 "service_id" "Période scolaire"
"trips.txt" 45 "service_id" "Période scolaire"
"trips.txt" 46 "service_id" "Période scolaire"
"trips.txt" 47 "service_id" "Période scolaire"
"trips.txt" 48 "service_id" "Période scolaire"
"trips.txt" 49 "service_id" "Période scolaire"
"trips.txt" 50 "service_id" "Période scolaire"
"trips.txt" 51 "service_id" "Période scolaire"
stop_without_stop_time WARNING 3

stop_without_stop_time

A stop in stops.txt is not referenced by any stop_times.stop_id.

Such stops are not used by any trip and normally do not provide user value. This notice may indicate a typo in stop_times.txt.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
82 "84" "Ranch"
90 "ESM1" "Saint Michel"
91 "STDM1" "Stade de Matoury"
stops_match_shape_out_of_order WARNING 1

stops_match_shape_out_of_order

Two stop entries are different than their arrival-departure order defined by shapes.txt.

This could indicate a problem with the location of the stops, the path of the shape, or the sequence of the stops for their trip.

You can see more about this notice here.

tripCsvRowNumber (?) The row number of the faulty record from `trips.txt`. shapeId (?) The id of the shape that is referred to. tripId (?) The id of the trip that is referred to. stopTimeCsvRowNumber1 (?) The row number of the first faulty record from `stop_times.txt`. stopId1 (?) The id of the first stop that is referred to. stopName1 (?) The name of the first stop that is referred to. match1 (?) Latitude and longitude pair of the first matching location. stopTimeCsvRowNumber2 (?) The row number of the second faulty record from `stop_times.txt`. stopId2 (?) The id of the second stop that is referred to. stopName2 (?) The name of the second stop that is referred to. match2 (?) Latitude and longitude pair of the second matching location.
117 "2e30253b-09b3-4c61-a118-5c74c8f1dee4" "2e30253b-09b3-4c61-a118-5c74c8f1dee4" 1315 "90" "Rue des Cotonniers" [4.881482,-52.336367] 1314 "STP-39" "Ronds-Points Cogneau Nord" [4.873288,-52.322854]
big_gap_in_service INFO 2

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.

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.
"Période de vacances" "2021-04-24" "2021-05-14" 19
"Période scolaire" "2026-07-10" "2026-08-24" 44
unsorted_stop_times INFO 1

unsorted_stop_times

Stop times are not sorted by trip_id and stop_sequence.

'stop_times.txt' entries for a given trip are not sorted by stop_sequence, or are not contiguous in the file.

You can see more about this notice here.

tripId (?) The faulty record's trip_id. startCsvRowNumber (?) CSV row number of the first stop_times entry for this trip. endCsvRowNumber (?) CSV row number of the last stop_times entry for this trip.
"2e30253b-09b3-4c61-a118-5c74c8f1dee4" 1295 1323
unused_station INFO 70

unused_station

Unused station.

A stop has location_type STATION (1) but does not appear in any stop's parent_station.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
20 "80_693fe1b4cd034" "Mairie de Matoury"
52 "STA-STP-PENIT2_693fe1b4cd14d" "CENTRE PENITENTIAIRE2"
64 "STA-STP-STLAM2_693fe1b4cd1b2" "STADE EDMARD LAMA"
41 "STA-STP-GR-SCOL2_693fe1b4cd0e6" "CONCORDE GR SCOL"
24 "87_693fe1b4cd057" "Ronds-Points Cogneau"
27 "93_693fe1b4cd071" "Vénéré"
60 "STA-STP-SERVAIR2_693fe1b4cd190" "SERVAIR"
26 "91_693fe1b4cd068" "Korosol"
32 "STA-STP-CONCORD2_693fe1b4cd09b" "CONCORDE LABRANCHE"
33 "STA-STP-CTEKO1_693fe1b4cd0a3" "CENTRE DE TRI EKOTRI"
49 "STA-STP-MORT31_693fe1b4cd133" "CHEMIN MORTIUM 3"
65 "STA-STP-STMIC1_693fe1b4cd1ba" "ECOLE ST MICHEL"
3 "27_693fe1b4ccf93" "Family Plaza"
13 "65_693fe1b4ccff6" "Collège Canopée"
9 "57_693fe1b4ccfd2" "Terca"
38 "STA-STP-DUMES1_693fe1b4cd0cd" "CITE CONCORDE"
42 "STA-STP-LDMAS1_693fe1b4cd0f7" "LYCEE LEON GONTRAN DAMAS"
61 "STA-STP-STAMU1_693fe1b4cd198" "STADE MUNICIPAL DE MATOURY"
25 "89_693fe1b4cd060" "Rue des Cotonniers"
36 "STA-STP-DDPAF2_693fe1b4cd0bd" "LOT. FUSHIA"
43 "STA-STP-MEDICAL1_693fe1b4cd101" "CONCORDE"
8 "55_693fe1b4ccfc9" "Jasmen Kayenn"
58 "STA-STP-SERV1_693fe1b4cd17f" "SERVAIR"
29 "STA-STP-BEAU_693fe1b4cd082" "CC Beauregard"
45 "STA-STP-MORT1_693fe1b4cd112" "CHEMIN MORTIUM 1"
22 "83_693fe1b4cd046" "Ranch"
16 "71_693fe1b4cd010" "Rue de la Canneraie"
56 "STA-STP-RHUME1_693fe1b4cd16e" "LA RHUMERIE"
37 "STA-STP-DESIR_693fe1b4cd0c5" "RN2 - La Désirée"
17 "73_693fe1b4cd019" "La Rhumerie"
2 "26_693fe1b4ccf4e" "Ecole Barbadine"
5 "29_693fe1b4ccfad" "Stade Municipal"
14 "67_693fe1b4ccfff" "Collège Saint Pierre"
57 "STA-STP-RHUME2_693fe1b4cd177" "LA RHUMERIE"
11 "61_693fe1b4ccfe4" "Cayenne - Gare Routière"
46 "STA-STP-MORT12_693fe1b4cd11a" "CHEMIN MORTIUM 1"
44 "STA-STP-MEDICAL2_693fe1b4cd109" "CONCORDE"
63 "STA-STP-STLAM1_693fe1b4cd1a9" "STADE EDMARD LAMA"
183 "STA-STP-SERV1_69d60c243da06" "SERVAIR"
19 "77_693fe1b4cd02c" "Wang"
47 "STA-STP-MORT21_693fe1b4cd123" "CHEMIN MORTIUM 2"
146 "81_69d60c243d8ce" "PROGT"
18 "75_693fe1b4cd022" "Centre Commercial Makoupy"
50 "STA-STP-MORT32_693fe1b4cd13c" "CHEMIN MORTIUM 3"
55 "STA-STP-RANCH2_693fe1b4cd165" "LE RANCH MATOURIENNE"
66 "STA-STP-STMIC2_693fe1b4cd1c2" "ECOLE ST MICHEL"
31 "STA-STP-CONCORD1_693fe1b4cd093" "CONCORDE LABRANCHE"
15 "69_693fe1b4cd008" "Eglise de Matoury"
30 "STA-STP-CALIF_693fe1b4cd08a" "RN2 - Califourchon"
21 "81_693fe1b4cd03d" "PROGT"