GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-05T02:49:42Z,
for the dataset file:///shared/reseau-express-metropolitain_3beea51b.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


  • Réseau Express Métropolitain

Feed Info


Publisher Name:
Réseau Express Métropolitain
Publisher URL:
https://rem.info/fr
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2026-04-30
Feed End Date:
2026-05-31

Files included


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

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 3
  • Shapes: 13
  • Stops: 115
  • Trips: 2730

Specification Compliance report

3837 notices reported (1896 errors, 1941 warnings, 0 infos)

Notice Code Severity Total
foreign_key_violation ERROR 1896

foreign_key_violation

Wrong foreign key.

A foreign key references the primary key of another file. A foreign key violation means that the foreign key referenced from a given row (the child file) cannot be found in the corresponding file (the parent file). The Foreign keys are defined in the specification under "Type" for each file.

You can see more about this notice here.

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

childFilename (?) The name of the file from which reference is made. childFieldName (?) The name of the field that makes reference. parentFilename (?) The name of the file that is referred to. parentFieldName (?) The name of the field that is referred to. fieldValue (?) The faulty record's value. csvRowNumber (?) The row of the faulty record.
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7070
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7071
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7072
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7073
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7106
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7107
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7108
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7109
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7142
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7143
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7144
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7145
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7178
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7179
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7180
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7181
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7227
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7228
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7229
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7230
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7295
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7296
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7297
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7298
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7363
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7364
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7365
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7366
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7431
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7432
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7433
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7434
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7499
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7500
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7501
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7502
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7567
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7568
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7569
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7570
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7635
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7636
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7637
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7638
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7703
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7704
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_JYV" 7705
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_02_SAB" 7706
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_DSO" 7771
"stop_times.txt" "stop_id" "stops.txt" "stop_id" "STA_ZCD_BT_QUAI_01_PTC" 7772
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 23

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.
"S30017" 13778 47.307 160057 13777 47.307 160056 0.13584209599375252
"S20040" 7132 8.347 70001 7131 8.347 60017 0.07792373103268509
"S30015" 11418 0.343 10012 11417 0.343 10011 0.831271224100706
"S30015" 11968 27.704 110001 11967 27.704 100017 0.07792373103268509
"S30015" 12040 31.863 130029 12039 31.863 130028 0.512977628963912
"S30013" 10739 27.703 110001 10738 27.703 100017 0.07792373103268509
"S10015" 4509 34.707 140006 4508 34.707 140005 0.3829235195726622
"S10015" 4544 36.888 150006 4543 36.888 150005 0.1914481171554904
"S10015" 4547 36.988 150009 4546 36.988 150008 0.07792267784563142
"S10015" 4743 43.696 180001 4742 43.696 170080 0.15577212993641903
"S10014" 3342 34.707 140006 3341 34.707 140005 0.3829235195726622
"S10014" 3377 36.888 150006 3376 36.888 150005 0.1914481171554904
"S10014" 3380 36.988 150009 3379 36.988 150008 0.07792267784563142
"S10014" 3576 43.696 180001 3575 43.696 170080 0.15577212993641903
"S10008" 570 25.962 130001 569 25.962 120017 0.07792373103268509
"S10008" 642 30.121 150029 641 30.121 150028 0.512977628963912
"S30009" 8961 0.343 10012 8960 0.343 10011 0.831271224100706
"S30009" 9511 27.704 110001 9510 27.704 100017 0.07792373103268509
"S30009" 9583 31.863 130029 9582 31.863 130028 0.512977628963912
"S10011" 1806 25.962 130001 1805 25.962 120017 0.07792373103268509
"S10011" 1878 30.121 150029 1877 30.121 150028 0.512977628963912
"S20028" 4836 0.374 10029 4835 0.374 10028 0.512977628963912
"S20039" 6318 8.347 70001 6317 8.347 60017 0.07792373103268509
equal_shape_distance_same_coordinates WARNING 1877

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 1877 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`.
"S30017" 12706 1.489 20001 12705 1.489 10070
"S30017" 12781 5.152 30001 12780 5.152 20075
"S30017" 12788 5.4 30008 12787 5.4 30007
"S30017" 12790 5.411 30010 12789 5.411 30009
"S30017" 12792 5.446 30012 12791 5.446 30011
"S30017" 12796 5.629 30016 12795 5.629 30015
"S30017" 12802 5.794 30022 12801 5.794 30021
"S30017" 12805 5.854 30025 12804 5.854 30024
"S30017" 12808 6.08 30028 12807 6.08 30027
"S30017" 12814 6.344 30034 12813 6.344 30033
"S30017" 12819 6.511 30039 12818 6.511 30038
"S30017" 12821 6.578 30041 12820 6.578 30040
"S30017" 12823 6.644 30043 12822 6.644 30042
"S30017" 12827 6.964 30047 12826 6.964 30046
"S30017" 12830 7.117 30050 12829 7.117 30049
"S30017" 12833 7.271 30053 12832 7.271 30052
"S30017" 12836 7.424 30056 12835 7.424 30055
"S30017" 12839 7.577 30059 12838 7.577 30058
"S30017" 12846 8.358 30066 12845 8.358 30065
"S30017" 12849 8.488 30069 12848 8.488 30068
"S30017" 12852 8.619 30072 12851 8.619 30071
"S30017" 12855 8.749 30075 12854 8.749 30074
"S30017" 12858 8.879 30078 12857 8.879 30077
"S30017" 12859 8.879 30079 12858 8.879 30078
"S30017" 12873 10.206 30093 12872 10.206 30092
"S30017" 12876 10.309 30096 12875 10.309 30095
"S30017" 12881 10.538 40001 12880 10.538 30100
"S30017" 12884 10.642 40004 12883 10.642 40003
"S30017" 12886 10.658 40006 12885 10.658 40005
"S30017" 12888 10.673 40008 12887 10.673 40007
"S30017" 12890 10.703 40010 12889 10.703 40009
"S30017" 12892 10.718 40012 12891 10.718 40011
"S30017" 12896 10.941 40016 12895 10.941 40015
"S30017" 12899 10.984 40019 12898 10.984 40018
"S30017" 12903 11.026 40023 12902 11.026 40022
"S30017" 12907 11.062 40027 12906 11.062 40026
"S30017" 12911 11.104 40031 12910 11.104 40030
"S30017" 12915 11.146 40035 12914 11.146 40034
"S30017" 12919 11.188 40039 12918 11.188 40038
"S30017" 12923 11.313 40043 12922 11.313 40042
"S30017" 12926 11.358 40046 12925 11.358 40045
"S30017" 12930 11.403 40050 12929 11.403 40049
"S30017" 12936 11.471 40056 12935 11.471 40055
"S30017" 12940 11.508 40060 12939 11.508 40059
"S30017" 12944 11.545 40064 12943 11.545 40063
"S30017" 12948 11.583 40068 12947 11.583 40067
"S30017" 12952 11.62 40072 12951 11.62 40071
"S30017" 12961 11.727 40081 12960 11.727 40080
"S30017" 12965 11.772 40085 12964 11.772 40084
"S30017" 12970 11.91 40090 12969 11.91 40089
expired_calendar WARNING 2

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.
5 "MAV-RDS-16A144.xml (GTFS)"
8 "MAV-RDS-16A140.xml (GTFS).xml"
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 "20260505" "20260531" "20260604"
stop_too_far_from_shape WARNING 20

stop_too_far_from_shape

Stop too far from trip shape.

Per GTFS Best Practices, route alignments (in shapes.txt) should be within 100 meters of stop locations which a trip serves. This potentially indicates a problem with the location of the stop or the path of the shape.

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.
445 "S30017" "RDS-32A220.xml_0001" 7070 "STA_ZCD_BT_QUAI_01_DSO" "" [45.440678,-73.425608] 8723717.775646588
445 "S30017" "RDS-32A220.xml_0001" 7071 "STA_ZCD_BT_QUAI_01_PTC" "" [45.440678,-73.425608] 8723717.775646588
445 "S30017" "RDS-32A220.xml_0001" 7072 "STA_ZCD_BT_QUAI_01_JYV" "" [45.440678,-73.425608] 8723717.775646588
445 "S30017" "RDS-32A220.xml_0001" 7073 "STA_ZCD_BT_QUAI_02_SAB" "" [45.440678,-73.425608] 8723717.775646588
836 "S30015" "RDS-32A220.xml_0392" 13824 "STA_ZCD_BT_QUAI_01_SAB" "" [45.440689,-73.425689] 8723724.211508155
836 "S30015" "RDS-32A220.xml_0392" 13825 "STA_ZCD_BT_QUAI_02_JYV" "" [45.440689,-73.425689] 8723724.211508155
836 "S30015" "RDS-32A220.xml_0392" 13826 "STA_ZCD_BT_QUAI_02_PTC" "" [45.440689,-73.425689] 8723724.211508155
836 "S30015" "RDS-32A220.xml_0392" 13827 "STA_ZCD_BT_QUAI_02_DSO" "" [45.440689,-73.425689] 8723724.211508155
673 "S30013" "RDS-32A220.xml_0229" 11007 "STA_ZCD_BT_QUAI_02_SAB" "" [45.440689,-73.425689] 8723724.211508155
673 "S30013" "RDS-32A220.xml_0229" 11008 "STA_ZCD_BT_QUAI_02_JYV" "" [45.440689,-73.425689] 8723724.211508155
673 "S30013" "RDS-32A220.xml_0229" 11009 "STA_ZCD_BT_QUAI_02_PTC" "" [45.440689,-73.425689] 8723724.211508155
673 "S30013" "RDS-32A220.xml_0229" 11010 "STA_ZCD_BT_QUAI_02_DSO" "" [45.440689,-73.425689] 8723724.211508155
669 "S30009" "RDS-32A220.xml_0225" 10935 "STA_ZCD_BT_QUAI_01_SAB" "" [45.440689,-73.425689] 8723724.211508155
669 "S30009" "RDS-32A220.xml_0225" 10936 "STA_ZCD_BT_QUAI_02_JYV" "" [45.440689,-73.425689] 8723724.211508155
669 "S30009" "RDS-32A220.xml_0225" 10937 "STA_ZCD_BT_QUAI_02_PTC" "" [45.440689,-73.425689] 8723724.211508155
669 "S30009" "RDS-32A220.xml_0225" 10938 "STA_ZCD_BT_QUAI_02_DSO" "" [45.440689,-73.425689] 8723724.211508155
552 "S30008" "RDS-32A220.xml_0108" 8935 "STA_ZCD_BT_QUAI_01_DSO" "" [45.440678,-73.425608] 8723717.775646588
552 "S30008" "RDS-32A220.xml_0108" 8936 "STA_ZCD_BT_QUAI_01_PTC" "" [45.440678,-73.425608] 8723717.775646588
552 "S30008" "RDS-32A220.xml_0108" 8937 "STA_ZCD_BT_QUAI_01_JYV" "" [45.440678,-73.425608] 8723717.775646588
552 "S30008" "RDS-32A220.xml_0108" 8938 "STA_ZCD_BT_QUAI_01_SAB" "" [45.440678,-73.425608] 8723717.775646588
stop_without_stop_time WARNING 18

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.
12 "STA_ZCD_BT_QUAI_03_RIV" "Station Brossard - Quai 3"
15 "STA_ZCD_BT_QUAI_03_A40" "Station Côte-de-Liesse - Quai 3"
101 "STA_ZCD_BT_SD_01_RIV" "Zone de prise en charge voie 1"
102 "STA_ZCD_BT_SD_02_RIV" "Zone de prise en charge voie 2"
103 "STA_ZCD_UP_SD_05_RIV" "Zone de retournement Brossard voie 1"
104 "STA_ZCD_UP_SD_06_RIV" "Zone de retournement Brossard voie 2"
105 "STA_ZCD_DN_SD_10A_PAN" "Zone de retournement Panama voie 2"
106 "STA_ZCD_UP_SD_01B_IDS" "Zone de retournement Île-des-Soeurs voie 1"
107 "STA_ZCD_UP_SD_04_IDS" "Zone de retournement Île-des-Soeurs voie 2"
108 "STA_ZCD_UP_SD_01C_GCT" "Zone de retournement Gare Centrale voie 2"
109 "STA_ZCD_DN_SD_09_A40" "Zone de retournement A401-TB1-A402"
110 "STA_ZCD_BT_SD_17_DEM" "Zone de prise en charge voie 1"
111 "STA_ZCD_BT_SD_20_DEM" "Zone de prise en charge voie 2"
112 "STA_ZCD_DN_SD_13_DEM" "Zone de retournement Deux-Montagnes voie 1"
113 "STA_ZCD_DN_SD_16_DEM" "Zone de retournement Deux-Montagnes voie 2"
114 "STA_ZCD_UP_SD_23D_EDM" "Zone de retournement Mont-Royal voie 1"
115 "STA_ZCD_UP_SD_26D_EDM" "Zone de retournement Mont-Royal voie 2"
116 "STA_ZCD_DN_SD_15_BFC" "Zone de retournement Bois-Franc par la voie 1"