galeo — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-23T19:44:15Z,
for the dataset file:///shared/galeo_ca40764e.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Aplibus
Publisher URL:
https://www.aplibus.com
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
N/A
Feed End Date:
N/A

Files included


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

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 7
  • Shapes: 29
  • Stops: 146
  • Trips: 360

Specification Compliance report

989 notices reported (56 errors, 933 warnings, 0 infos)

Notice Code Severity Total
decreasing_or_equal_stop_time_distance ERROR 56

decreasing_or_equal_stop_time_distance

Decreasing or equal shape_dist_traveled in stop_times.txt.

When sorted by stop_times.stop_sequence, two consecutive entries in stop_times.txt should have increasing distance, based on the field shape_dist_traveled. If the values are equal, this is considered as an error.

You can see more about this notice here.

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

tripId (?) The id of the faulty trip. stopId (?) The id of the faulty stop. csvRowNumber (?) The row number from `stop_times.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. stopSequence (?) The faulty record's `stop_times.stop_sequence`. prevCsvRowNumber (?) The row number from `stop_times.txt` of the previous stop time. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous stop time. prevStopSequence (?) The previous record's `stop_times.stop_sequence`.
"200000304" "1010628" 1123 4.124 9 1122 4.124 8
"300000048" "1010582" 3144 8.101 17 3143 8.101 16
"300000006" "1010628" 2505 8.062 15 2504 8.062 14
"300000005" "1010628" 2427 8.062 15 2426 8.062 14
"300000008" "1010628" 2678 8.062 15 2677 8.062 14
"300000007" "1010628" 2594 8.062 15 2593 8.062 14
"300000009" "1010628" 2767 8.062 15 2766 8.062 14
"300000001" "1010628" 2199 8.062 15 2198 8.062 14
"300000004" "1010628" 2343 8.062 15 2342 8.062 14
"300000003" "1010628" 2271 8.062 15 2270 8.062 14
"300000020" "1010628" 2184 4.124 9 2183 4.124 8
"300000011" "1010628" 2950 8.062 15 2949 8.062 14
"300000010" "1010628" 2845 8.062 15 2844 8.062 14
"300000013" "1010628" 3090 8.062 15 3089 8.062 14
"300000012" "1010628" 3009 8.062 15 3008 8.062 14
"400000061" "1010628" 3828 8.062 15 3827 8.062 14
"400000060" "1010628" 3739 8.062 15 3738 8.062 14
"100000520" "1010628" 305 8.062 15 304 8.062 14
"100000521" "1010628" 383 8.062 15 382 8.062 14
"100000522" "1010628" 472 8.062 15 471 8.062 14
"100000523" "1010628" 556 8.062 15 555 8.062 14
"100000524" "1010628" 645 8.062 15 644 8.062 14
"100000525" "1010628" 723 8.062 15 722 8.062 14
"100000526" "1010628" 828 8.062 15 827 8.062 14
"100000527" "1010628" 887 8.062 15 886 8.062 14
"100000528" "1010628" 974 8.062 15 973 8.062 14
"400000063" "1010628" 4011 8.062 15 4010 8.062 14
"400000062" "1010628" 3906 8.062 15 3905 8.062 14
"400000065" "1010628" 4151 8.062 15 4150 8.062 14
"400000064" "1010628" 4070 8.062 15 4069 8.062 14
"200000250" "1010628" 1889 8.062 15 1888 8.062 14
"200000251" "1010628" 1948 8.062 15 1947 8.062 14
"200000252" "1010628" 2035 8.062 15 2034 8.062 14
"400000059" "1010628" 3655 8.062 15 3654 8.062 14
"400000056" "1010628" 3404 8.062 15 3403 8.062 14
"400000055" "1010628" 3332 8.062 15 3331 8.062 14
"100000515" "1010582" 1022 8.101 17 1021 8.101 16
"400000058" "1010628" 3566 8.062 15 3565 8.062 14
"400000057" "1010628" 3488 8.062 15 3487 8.062 14
"100000517" "1010628" 77 8.062 15 76 8.062 14
"100000518" "1010628" 149 8.062 15 148 8.062 14
"100000519" "1010628" 221 8.062 15 220 8.062 14
"400000054" "1010628" 3260 8.062 15 3259 8.062 14
"200000244" "1010628" 1366 8.062 15 1365 8.062 14
"200000245" "1010628" 1444 8.062 15 1443 8.062 14
"200000246" "1010628" 1533 8.062 15 1532 8.062 14
"200000247" "1010628" 1617 8.062 15 1616 8.062 14
"200000241" "1010628" 1138 8.062 15 1137 8.062 14
"200000242" "1010628" 1210 8.062 15 1209 8.062 14
"200000243" "1010628" 1282 8.062 15 1281 8.062 14
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 591

equal_shape_distance_diff_coordinates_distance_below_threshold

Two consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than 0 but less than 1.11m.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and small difference of coordinates (greater than 0 but less than 1.11 m distance) result in a warning.

You can see more about this notice here.

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

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"22" 5079 0.0 2 5078 0.0 1 0.45889254116924294
"22" 5090 0.302 13 5089 0.302 12 3.8388990226807084E-10
"22" 5092 0.307 15 5091 0.307 14 0.7947299998653325
"22" 5122 1.519 45 5121 1.519 44 0.004651369760117582
"22" 5123 1.519 46 5122 1.519 45 0.004651369580858026
"22" 5124 1.519 47 5123 1.519 46 1.2441640777400617E-9
"22" 5140 1.963 63 5139 1.963 62 0.16997664636858176
"22" 5141 1.963 64 5140 1.963 63 0.16997664374341964
"22" 5142 1.963 65 5141 1.963 64 3.2189784048129325E-9
"22" 5167 2.657 90 5166 2.657 89 1.6742441564788866E-9
"22" 5168 2.657 91 5167 2.657 90 0.048580008012074335
"22" 5169 2.657 92 5168 2.657 91 0.04858000921246162
"22" 5199 3.746 122 5198 3.746 121 0.36971162712357675
"22" 5213 4.228 136 5212 4.228 135 1.7841796253586825E-9
"22" 5214 4.228 137 5213 4.228 136 0.019393313390032866
"22" 5215 4.228 138 5214 4.228 137 0.019393314317356747
"22" 5226 4.796 149 5225 4.796 148 0.11119510020250134
"22" 5227 4.796 150 5226 4.796 149 0.11119509949517714
"22" 5228 4.796 151 5227 4.796 150 8.729569112394126E-10
"22" 5241 5.215 164 5240 5.215 163 1.5524693346210894E-9
"22" 5243 5.216 166 5242 5.216 165 0.6811911971855892
"22" 5252 5.546 175 5251 5.546 174 1.1510163627033443E-9
"22" 5253 5.546 176 5252 5.546 175 0.38027861938386626
"22" 5254 5.546 177 5253 5.546 176 0.38027861970372795
"22" 5256 5.784 179 5255 5.784 178 0.46398965082634674
"22" 5258 5.785 181 5257 5.785 180 7.033748564639902E-10
"22" 5272 6.246 195 5271 6.246 194 0.10646067794697078
"23" 5304 1.213 32 5303 1.213 31 0.004651369760117582
"23" 5305 1.213 33 5304 1.213 32 0.004651369580858026
"23" 5306 1.213 34 5305 1.213 33 1.2441640777400617E-9
"23" 5323 1.657 51 5322 1.657 50 0.16997664374341964
"23" 5324 1.657 52 5323 1.657 51 3.2189784048129325E-9
"23" 5349 2.35 77 5348 2.35 76 1.6742441564788866E-9
"23" 5350 2.35 78 5349 2.35 77 0.048580008012074335
"23" 5351 2.35 79 5350 2.35 78 0.04858000921246162
"23" 5387 3.879 115 5386 3.879 114 2.0788240586006693E-8
"23" 5388 3.879 116 5387 3.879 115 0.22610694976507595
"23" 5403 4.382 131 5402 4.382 130 0.36971162712357675
"23" 5417 4.864 145 5416 4.864 144 1.7841796253586825E-9
"23" 5418 4.864 146 5417 4.864 145 0.019393313390032866
"23" 5419 4.864 147 5418 4.864 146 0.019393314317356747
"23" 5430 5.432 158 5429 5.432 157 0.11119510020250134
"23" 5431 5.432 159 5430 5.432 158 0.11119509949517714
"23" 5432 5.432 160 5431 5.432 159 8.729569112394126E-10
"23" 5445 5.851 173 5444 5.851 172 1.5524693346210894E-9
"23" 5456 6.182 184 5455 6.182 183 1.1510163627033443E-9
"23" 5457 6.182 185 5456 6.182 184 0.38027861938386626
"23" 5461 6.421 189 5460 6.421 188 0.4639896506308824
"23" 5462 6.421 190 5461 6.421 189 7.033748564639902E-10
"24" 5478 0.0 2 5477 0.0 1 0.2083681655827878
equal_shape_distance_same_coordinates WARNING 20

equal_shape_distance_same_coordinates

Two consecutive points have equal shape_dist_traveled and the same lat/lon coordinates in shapes.txt.

When sorted by shape.shape_pt_sequence, the values for shape_dist_traveled must increase along a shape. Two consecutive points with equal values for shape_dist_traveled and the same coordinates indicate a duplicative shape point.

You can see more about this notice here.

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the faulty record. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) Actual distance traveled along the shape from the first shape point to the previous shape point. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`.
"24" 5513 1.615 37 5512 1.615 36
"25" 5853 1.615 37 5852 1.615 36
"26" 6130 2.481 76 6129 2.481 75
"26" 6214 6.506 160 6213 6.506 159
"27" 6554 2.481 76 6553 2.481 75
"27" 6638 6.506 160 6637 6.506 159
"28" 6994 6.846 194 6993 6.846 193
"29" 7235 6.382 175 7234 6.382 174
"11" 2641 5.43 164 2640 5.43 163
"17" 4144 1.547 56 4143 1.547 55
"18" 4453 5.912 145 4452 5.912 144
"19" 4643 1.324 43 4642 1.324 42
"1" 68 3.777 67 67 3.777 66
"2" 321 3.777 67 320 3.777 66
"6" 1539 2.245 83 1538 2.245 82
"7" 1791 2.245 83 1790 2.245 82
"8" 2038 2.245 83 2037 2.245 82
"9" 2298 2.519 96 2297 2.519 95
"20" 4814 1.324 43 4813 1.324 42
"21" 4915 0.383 16 4914 0.383 15
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_recommended_field WARNING 3

missing_recommended_field

A recommended field is missing.

The given field has no value in some input row, even though values are recommended.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"feed_info.txt" 2 "feed_start_date"
"feed_info.txt" 2 "feed_end_date"
"feed_info.txt" 2 "feed_version"
mixed_case_recommended_field WARNING 305

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 305 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_headsign" "SOMMIERES - PL. DES AIRES" 2
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 3
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 4
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 5
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 6
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 7
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 8
"trips.txt" "trip_headsign" "MARSILLARGUES - CHARLES CORBIERE [2]" 10
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 11
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 12
"trips.txt" "trip_headsign" "LUNEL-VIEL - COOPERATIVE" 14
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 15
"trips.txt" "trip_headsign" "LUNEL - C.COM P. DE MER" 16
"trips.txt" "trip_headsign" "LUNEL - C.COM P. DE MER" 17
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 18
"trips.txt" "trip_headsign" "SAINT-NAZAIRE-DE-PEZAN - CENTRE" 19
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 20
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 21
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 23
"trips.txt" "trip_headsign" "MARSILLARGUES - CHARLES CORBIERE [2]" 24
"trips.txt" "trip_headsign" "SOMMIERES - PL. DES AIRES" 26
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 27
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 28
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 29
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 30
"trips.txt" "trip_headsign" "LUNEL-VIEL - COOPERATIVE" 31
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 32
"trips.txt" "trip_headsign" "SAINT-NAZAIRE-DE-PEZAN - CENTRE" 33
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 34
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 35
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 38
"trips.txt" "trip_headsign" "MARSILLARGUES - CHARLES CORBIERE [2]" 39
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 40
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 41
"trips.txt" "trip_headsign" "GALARGUES - MISTRAL" 42
"trips.txt" "trip_headsign" "LUNEL-VIEL - COOPERATIVE" 43
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 44
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE" 45
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 46
"trips.txt" "trip_headsign" "SAINT-NAZAIRE-DE-PEZAN - CENTRE" 47
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 48
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 49
"trips.txt" "trip_headsign" "LUNEL - C.COM P. DE MER" 50
"trips.txt" "trip_headsign" "LUNEL - C.COM P. DE MER" 51
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 52
"trips.txt" "trip_headsign" "MARSILLARGUES - CHARLES CORBIERE [2]" 53
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 54
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 55
"trips.txt" "trip_headsign" "LUNEL-VIEL - COOPERATIVE" 56
"trips.txt" "trip_headsign" "LUNEL - GARE MULTIMODALE [2]" 58
route_long_name_contains_short_name WARNING 7

route_long_name_contains_short_name

Long name should not contain short name for a single route.

In routes.txt, route_long_name should not contain the value for route_short_name, because when both are provided, they are often combined by transit applications. Note that only one of the two fields is required. If there is no short name used for a route, use route_long_name only.

Good examples:

route_short_name/route_long_name Dataset
"N"/"Judah" Muni San Fransisco
"6"/"ML King Jr Blvd" Trimet Portland Streetcar
"55"/"Boulevard Saint Laurent" STM Montreal
"1"/"Rangiora/Cashmere" Metro Christchurch

Bad examples:

route_short_name/route_long_name
"604"/"604"
"14"/"Route 14"
"2"/"Route 2: Bellows Falls In-Town"

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeShortName (?) The faulty record's `route_short_name`. routeLongName (?) The faulty record's `route_long_name`.
"1" 2 "1" "1"
"2" 3 "2" "2"
"3" 4 "3" "3"
"4" 5 "4" "4"
"5" 6 "5" "5"
"6" 7 "6" "6"
"RELEVE" 8 "RELEVE" "RELEVE"
stop_too_far_from_shape_using_user_distance WARNING 3

stop_too_far_from_shape_using_user_distance

Stop time too far from shape.

A stop time entry that is a large distance away from the location of the shape in shapes.txt as defined by shape_dist_traveled values.

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. stopTimeCsvRowNumber (?) The row number of the faulty record from `stop_times.txt`. stopId (?) The id of the stop that is referred to. stopName (?) The name of the stop that is referred to. match (?) Latitude and longitude pair of the location. geoDistanceToShape (?) Distance from stop to shape.
7 "5" "100000564" 62 "1010628" "LUNEL - Gare Multimodale" [43.67508,4.132040000000018] 496.2916492498214
8 "6" "100000517" 77 "1010628" "LUNEL - Gare Multimodale" [43.68178447371923,4.1278252632894405] 322.6491430754737
87 "8" "100000515" 1022 "1010582" "LUNEL - République" [43.67914345051711,4.129477650760265] 493.6742215515282
stops_match_shape_out_of_order WARNING 3

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.
7 "5" "100000564" 62 "1010628" "LUNEL - Gare Multimodale" [43.67909886382216,4.129244316463456] 61 "1010582" "LUNEL - République" [43.67508,4.13204]
8 "6" "100000517" 77 "1010628" "LUNEL - Gare Multimodale" [43.67909886382216,4.129244316463456] 76 "1001616" "LUNEL - Louis Abric" [43.68177036331035,4.127839630085673]
87 "8" "100000515" 1022 "1010582" "LUNEL - République" [43.67507607820276,4.132040619233078] 1021 "1010628" "LUNEL - Gare Multimodale" [43.67914345051712,4.129477650760259]