GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-12T17:14:28Z,
for the dataset file:///shared/gtfsmodifi-1.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Google LLC
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2025-07-30
Feed End Date:
2025-08-31

Files included


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

Counts


  • Agencies: 1
  • Blocks: 45
  • Routes: 5
  • Shapes: 22
  • Stops: 188
  • Trips: 453

Specification Compliance report

2843 notices reported (0 errors, 2834 warnings, 9 infos)

Notice Code Severity Total
equal_shape_distance_same_coordinates WARNING 2366

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.

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

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`.
"6002_1-15104" 9976 0.7357 49 9975 0.7357 48
"6002_1-15104" 9978 0.7365 51 9977 0.7365 50
"6002_1-15104" 9982 0.7398 55 9981 0.7398 54
"6002_1-15104" 9984 0.741 57 9983 0.741 56
"6002_1-15104" 9986 0.7425 59 9985 0.7425 58
"6002_1-15104" 9991 0.7457 64 9990 0.7457 63
"6002_1-15104" 9994 0.7479 67 9993 0.7479 66
"6002_1-15104" 10024 1.1352 97 10023 1.1352 96
"6002_1-15104" 10046 1.7635 119 10045 1.7635 118
"6002_1-15104" 10094 2.4181 167 10093 2.4181 166
"6002_1-15104" 10190 3.6325 263 10189 3.6325 262
"6002_1-15104" 10191 3.6325 264 10190 3.6325 263
"6002_1-15104" 10193 3.6337 266 10192 3.6337 265
"6002_1-15104" 10196 3.6354 269 10195 3.6354 268
"6002_1-15104" 10197 3.6354 270 10196 3.6354 269
"6002_1-15104" 10199 3.6366 272 10198 3.6366 271
"6002_1-15104" 10200 3.6366 273 10199 3.6366 272
"6002_1-15104" 10201 3.6366 274 10200 3.6366 273
"6002_1-15104" 10203 3.6379 276 10202 3.6379 275
"6002_1-15104" 10204 3.6379 277 10203 3.6379 276
"6002_1-15104" 10206 3.6388 279 10205 3.6388 278
"6002_1-15104" 10209 3.6408 282 10208 3.6408 281
"6002_1-15104" 10210 3.6408 283 10209 3.6408 282
"6002_1-15104" 10212 3.6421 285 10211 3.6421 284
"6002_1-15104" 10214 3.6429 287 10213 3.6429 286
"6002_1-15104" 10216 3.6437 289 10215 3.6437 288
"6002_1-15104" 10219 3.6458 292 10218 3.6458 291
"6002_1-15104" 10221 3.6465 294 10220 3.6465 293
"6002_1-15104" 10222 3.6465 295 10221 3.6465 294
"6002_1-15104" 10224 3.6477 297 10223 3.6477 296
"6002_1-15104" 10225 3.6477 298 10224 3.6477 297
"6002_1-15104" 10227 3.6485 300 10226 3.6485 299
"6002_1-15104" 10229 3.6499 302 10228 3.6499 301
"6002_1-15104" 10230 3.6499 303 10229 3.6499 302
"6002_1-15104" 10232 3.6507 305 10231 3.6507 304
"6002_1-15104" 10234 3.6515 307 10233 3.6515 306
"6002_1-15104" 10240 3.657 313 10239 3.657 312
"6002_1-15104" 10242 3.6578 315 10241 3.6578 314
"6002_1-15104" 10243 3.6578 316 10242 3.6578 315
"6002_1-15104" 10245 3.6593 318 10244 3.6593 317
"6002_1-15104" 10247 3.6601 320 10246 3.6601 319
"6002_1-15104" 10249 3.6609 322 10248 3.6609 321
"6002_1-15104" 10287 4.4801 360 10286 4.4801 359
"6002_1-15104" 10323 4.6482 396 10322 4.6482 395
"6002_1-15104" 10357 4.6863 430 10356 4.6863 429
"6002_1-15104" 10367 4.6964 440 10366 4.6964 439
"6002_1-15104" 10503 7.5642 576 10502 7.5642 575
"6002_1-15104" 10589 8.0005 662 10588 8.0005 661
"6002_1-15104" 10591 8.002 664 10590 8.002 663
"6002_1-15104" 10593 8.0033 666 10592 8.0033 665
expired_calendar WARNING 12

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.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "6001_1_0000001_2-16973857"
3 "6001_1-15085-15352_0000010_2-17039377"
4 "6001_1-15085-15352_1111100_2-17039372"
5 "6002_1-15076_0000010_2-33685590"
6 "6002_1-15076_1111100_2-33685508"
7 "6003_1-15116_0000010_2-50397203"
8 "6003_1-15116_1111100_2-50397187"
9 "6003_1-15460_0000001_2-53870688"
10 "6004_1_0000010_2-70516773"
11 "6004_1_1111100_2-70516737"
12 "6005_1_0000010_2-87293980"
13 "6005_1_1111100_2-87293983"
feed_expiration_date7_days WARNING 1

feed_expiration_date7_days

Dataset should be valid for at least the next 7 days.

The dataset expiration date defined in feed_info.txt is in seven days or less. At any time, the published GTFS dataset should be valid for at least the next 7 days.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. currentDate (?) Current date (YYYYMMDD format). feedEndDate (?) Feed end date (YYYYMMDD format). suggestedExpirationDate (?) Suggested expiration date (YYYYMMDD format).
2 "20251212" "20250831" "20251219"
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
mixed_case_recommended_field WARNING 453

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 453 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" "JASSANS-RIOTTIER" 2
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 3
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 4
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 5
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 6
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 7
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 8
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 9
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 10
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 11
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 12
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 13
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 14
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 15
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 16
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 17
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 18
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 19
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 20
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 21
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 22
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 23
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 24
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 25
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 26
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 27
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 28
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 29
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 30
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 31
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 32
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 33
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 34
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 35
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 36
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 37
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 38
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 39
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 40
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 41
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 42
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 43
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 44
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 45
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 46
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 47
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 48
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 49
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 50
"trips.txt" "trip_headsign" "JASSANS-RIOTTIER" 51
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.
"20251212" "20250707" "20250830"
unknown_column INFO 9

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"agency.txt" "ticketing_deep_link_id" 9
"routes.txt" "ticketing_deep_link_id" 9
"trips.txt" "vehicle_category_id" 11
"trips.txt" "ticketing_trip_id" 12
"trips.txt" "ticketing_type" 13
"stop_times.txt" "ticketing_type" 11
"shapes.txt" "shape_pt_source_google" 5
"stops.txt" "signposted_as" 14
"stops.txt" "stop_access" 15