GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-12T20:02:08Z,
for the dataset file:///shared/trains.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
TRAINS
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2025-12-04
Feed End Date:
2026-01-04

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: 5
  • Shapes: 24
  • Stops: 120
  • Trips: 159

Specification Compliance report

535 notices reported (0 errors, 534 warnings, 1 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 24

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.

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.
"40153" 4564 30.701 90008 4563 30.701 90007 0.6379141701650034
"40168" 7347 43.64 100001 7346 43.64 90017 0.5773895471448189
"40168" 7351 43.837 100005 7350 43.837 100004 0.5888703719609324
"40168" 7558 58.683 120001 7557 58.683 110030 0.5432390770363464
"40167" 6383 3.447 20001 6382 3.447 10050 0.5131059434359935
"40167" 6573 18.47 40001 6572 18.47 30160 0.3425589511489414
"40166" 6074 43.64 110001 6073 43.64 100017 0.5773895471448189
"40166" 6078 43.837 110005 6077 43.837 110004 0.5888703719609324
"40166" 6285 58.683 130001 6284 58.683 120030 0.5432390770363464
"60229" 8685 4.98 20025 8684 4.98 20024 0.11119510090982554
"50189" 8119 13.298 50036 8118 13.298 50035 0.22239020181965108
"50189" 8154 16.459 50071 8153 16.459 50070 0.23570104521521298
"50188" 7691 9.388 40017 7690 9.388 40016 0.23570104521521298
"50188" 7725 12.548 40051 7724 12.548 40050 0.22239020181965108
"60231" 10135 54.236 190001 10134 54.236 180019 0.7042600629937278
"60230" 9119 4.579 70001 9118 4.579 60027 0.45156270527208553
"30138" 3798 28.399 60003 3797 28.399 60002 0.13578938384578823
"30138" 3929 34.374 60134 3928 34.374 60133 0.2338187892834543
"40160" 5600 22.787 60008 5599 22.787 60007 0.6379141701650034
"10476" 1146 47.358 170081 1145 47.358 170080 1.0365754945148544
"10478" 1611 0.453 10008 1610 0.453 10007 0.7772014859965815
"30139" 3937 0.28 10005 3936 0.28 10004 0.2338187892834543
"30139" 4058 6.238 10126 4057 6.238 10125 0.13578938384578823
"30139" 4126 16.97 40006 4125 16.97 40005 0.5177223545542003
equal_shape_distance_same_coordinates WARNING 267

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 267 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`.
"40153" 4279 2.747 20001 4278 2.747 10017
"40153" 4288 4.263 30001 4287 4.263 20009
"40153" 4326 7.914 40001 4325 7.914 30038
"40153" 4355 13.428 50001 4354 13.428 40029
"40153" 4373 16.394 60001 4372 16.394 50018
"40153" 4406 19.052 70001 4405 19.052 60033
"40153" 4435 22.073 80001 4434 22.073 70029
"40153" 4557 28.375 90001 4556 28.375 80122
"40153" 4592 34.352 100001 4591 34.352 90035
"10480" 2409 3.738 20001 2408 3.738 10041
"10480" 2479 9.077 30001 2478 9.077 20070
"10480" 2506 12.188 40001 2505 12.188 30027
"10480" 2542 17.808 50001 2541 17.808 40036
"10480" 2565 21.511 60001 2564 21.511 50023
"10480" 2597 26.277 70001 2596 26.277 60032
"10480" 2617 28.765 80001 2616 28.765 70020
"10480" 2693 34.369 90001 2692 34.369 80076
"10480" 2723 38.127 100001 2722 38.127 90030
"40168" 7052 15.265 20001 7051 15.265 10091
"40168" 7174 21.567 30001 7173 21.567 20122
"40168" 7203 24.588 40001 7202 24.588 30029
"40168" 7236 27.246 50001 7235 27.246 40033
"40168" 7254 30.212 60001 7253 30.212 50018
"40168" 7283 35.726 70001 7282 35.726 60029
"40168" 7321 39.376 80001 7320 39.376 70038
"40168" 7330 40.893 90001 7329 40.893 80009
"40168" 7528 54.922 110001 7527 54.922 100181
"40156" 4708 9.288 20001 4707 9.288 10058
"40156" 4743 15.265 30001 4742 15.265 20035
"40156" 4865 21.567 40001 4864 21.567 30122
"40156" 4894 24.588 50001 4893 24.588 40029
"40156" 4927 27.246 60001 4926 27.246 50033
"40156" 4945 30.212 70001 4944 30.212 60018
"40156" 4974 35.726 80001 4973 35.726 70029
"40156" 5012 39.376 90001 5011 39.376 80038
"40156" 5021 40.892 100001 5020 40.892 90009
"40167" 6413 7.205 30001 6412 7.205 20030
"40167" 6590 21.218 50001 6589 21.218 40017
"40167" 6599 22.734 60001 6598 22.734 50009
"40167" 6637 26.384 70001 6636 26.384 60038
"40167" 6666 31.898 80001 6665 31.898 70029
"40167" 6684 34.864 90001 6683 34.864 80018
"40167" 6717 37.522 100001 6716 37.522 90033
"40167" 6746 40.543 110001 6745 40.543 100029
"40167" 6868 46.845 120001 6867 46.845 110122
"40167" 6903 52.822 130001 6902 52.822 120035
"40166" 5744 9.288 20001 5743 9.288 10058
"40166" 5779 15.265 30001 5778 15.265 20035
"40166" 5901 21.567 40001 5900 21.567 30122
"40166" 5930 24.588 50001 5929 24.588 40029
fast_travel_between_consecutive_stops WARNING 1

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.
158 "4400150-TRAIN-A25-TRKPI-Semaine-11" "6" 674.9700147263451 2.8123750613597713 1966 19 "_RDP_Nord" "Rivière-des-Prairies Nord" "18:36:00" 1967 20 "MTL54A" "Gare Rivière-des-Prairies" "18:36:15"
feed_expiration_date30_days WARNING 1

feed_expiration_date30_days

Dataset should cover at least the next 30 days of service.

At any time, the GTFS dataset should cover at least the next 30 days of service, and ideally for as long as the operator is confident that the schedule will continue to be operated.

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" "20260104" "20260111"
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 1

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_version"
non_ascii_or_non_printable_char WARNING 239

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 239 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.
"calendar.txt" 5 "service_id" "TRAIN-A25-TRKPI-Fête-1-02"
"calendar_dates.txt" 6 "service_id" "TRAIN-A25-TRKPI-Fête-1-02"
"calendar_dates.txt" 7 "service_id" "TRAIN-A25-TRKPI-Fête-1-02"
"calendar_dates.txt" 8 "service_id" "TRAIN-A25-TRKPI-Fête-1-02"
"calendar_dates.txt" 9 "service_id" "TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 19 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 20 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 21 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 22 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 23 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 24 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 25 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 26 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 27 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 28 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 29 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 30 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 31 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 32 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 33 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 34 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 35 "trip_id" "4083489-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 53 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 54 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 55 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 56 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 57 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 58 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 59 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 60 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 61 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 62 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 63 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 64 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 65 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 66 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 67 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 68 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 69 "trip_id" "4083490-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 87 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 88 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 89 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 90 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 91 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 92 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 93 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 94 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 95 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 96 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
"stop_times.txt" 97 "trip_id" "4083491-TRAIN-A25-TRKPI-Fête-1-02"
unknown_column INFO 1

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.
"stop_times.txt" "platform_track" 10