GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-02-03T22:06:46Z,
for the dataset file:///shared/suburbain_4247c6c9.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. calendar.txt
  3. calendar_dates.txt
  4. routes.txt
  5. shapes.txt
  6. stop_times.txt
  7. stops.txt
  8. transfers.txt
  9. trips.txt

Counts


  • Agencies: 0
  • Blocks: 353
  • Routes: 35
  • Shapes: 147
  • Stops: 1675
  • Trips: 22160

Specification Compliance report

1601 notices reported (41 errors, 1559 warnings, 1 infos)

Notice Code Severity Total
block_trips_with_overlapping_stop_times ERROR 26

block_trips_with_overlapping_stop_times

Trips with the same block id have overlapping stop times.

You can see more about this notice here.

csvRowNumberA (?) The row number from `trips.txt` of the first faulty trip. tripIdA (?) The id of first faulty trip. serviceIdA (?) The service id of the first faulty trip. csvRowNumberB (?) The row number from `trips.txt` of the second faulty trip. tripIdB (?) The id of the other faulty trip. serviceIdB (?) The service id of the other faulty trip. blockId (?) The `trips.block_id` of the overlapping trip. intersection (?) The overlapping period.
2860 "202602031583209344" "20260203" 3665 "202602031583209334" "20260203" "21H32" "20260203"
3982 "202602091583209344" "20260209" 5392 "202602091583209334" "20260209" "21H32" "20260209"
4876 "202602101583209344" "20260210" 5154 "202602101583209334" "20260210" "21H32" "20260210"
5194 "202602051583209344" "20260205" 2479 "202602051583209334" "20260205" "21H32" "20260205"
5757 "202602061583209344" "20260206" 3065 "202602061583209334" "20260206" "21H32" "20260206"
6229 "202602171583209344" "20260217" 7608 "202602171583209334" "20260217" "21H32" "20260217"
6574 "202602161583209344" "20260216" 4672 "202602161583209334" "20260216" "21H32" "20260216"
6929 "202602191583209344" "20260219" 8278 "202602191583209334" "20260219" "21H32" "20260219"
7395 "202602131583209344" "20260213" 4345 "202602131583209334" "20260213" "21H32" "20260213"
7662 "202602121583209344" "20260212" 5609 "202602121583209334" "20260212" "21H32" "20260212"
10732 "202602201583209344" "20260220" 7925 "202602201583209334" "20260220" "21H32" "20260220"
4561 "202602111583209344" "20260211" 5822 "202602111583209334" "20260211" "21H32C" "20260211"
5432 "202602041583209344" "20260204" 2684 "202602041583209334" "20260204" "21H32C" "20260204"
7312 "202602181583209344" "20260218" 7343 "202602181583209334" "20260218" "21H32C" "20260218"
4051 "202602241583205824" "20260224" 4607 "202602241583205806" "20260224" "20V12" "20260224"
4334 "202602231583205824" "20260223" 4913 "202602231583205806" "20260223" "20V12" "20260223"
4650 "202602261583205824" "20260226" 7430 "202602261583205806" "20260226" "20V12" "20260226"
4943 "202602251583205824" "20260225" 7693 "202602251583205806" "20260225" "20V12" "20260225"
5990 "202603041583205824" "20260304" 6618 "202603041583205806" "20260304" "20V12" "20260304"
6322 "202603031583205824" "20260303" 6986 "202603031583205806" "20260303" "20V12" "20260303"
7725 "202602271583205824" "20260227" 8385 "202602271583205806" "20260227" "20V12" "20260227"
7899 "202603021583205824" "20260302" 6109 "202603021583205806" "20260302" "20V12" "20260302"
16164 "202602071583202991" "20260207" 15398 "202602071583202976" "20260207" "22H10S" "20260207"
18225 "202602141583202991" "20260214" 18218 "202602141583202976" "20260214" "22H10S" "20260214"
19314 "202602211583202991" "20260221" 20121 "202602211583202976" "20260221" "22H10S" "20260221"
21059 "202602281583202991" "20260228" 21020 "202602281583202976" "20260228" "22H10S" "20260228"
missing_required_field ERROR 3

missing_required_field

A required field is missing.

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

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.
"agency.txt" 2 "agency_name"
"agency.txt" 2 "agency_url"
"agency.txt" 3 "agency_url"
missing_stop_name ERROR 12

missing_stop_name

stops.stop_name is required for location_type equal to 0, 1, or 2.

stops.stop_name is required for locations that are stops (location_type=0), stations (location_type=1) or entrances/exits (location_type=2).

You can see more about this notice here.

csvRowNumber (?) The row of the faulty record. locationType (?) `stops.location_type` of the faulty record. stopId (?) The `stops.stop_id` of the faulty record.
29 "STOP" "0:00001"
83 "STOP" "0:00003"
84 "STOP" "0:00002"
85 "STOP" "0:00004"
86 "STOP" "0:00231"
462 "STOP" "0:00005"
1251 "STATION" "1:DEPTOL2"
1426 "STATION" "1:PRADREG"
1427 "STATION" "1:DEPTOL1"
1428 "STATION" "1:DEPCDM"
1429 "STATION" "1:DEPGINH"
1531 "STATION" "1:DEPBOUL"
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 939

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 939 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.
"L16P147" 9018 110.0 14 9017 110.0 13 0.4417461427869047
"L16P147" 9191 2226.0 187 9190 2226.0 186 0.04520084935547674
"L16P147" 9259 3227.0 255 9258 3227.0 254 0.17480311595410208
"L16P147" 9328 4068.0 324 9327 4068.0 323 0.5724081492876443
"L16P147" 9450 5494.0 446 9449 5494.0 445 0.3602762519248669
"L16P147" 9476 5802.0 472 9475 5802.0 471 0.3853968576320005
"L20P87" 29902 2996.0 208 29901 2996.0 207 0.5265054448527187
"L20P87" 30007 4524.0 313 30006 4524.0 312 0.1991226860990516
"L20P87" 30066 5247.0 372 30065 5247.0 371 0.5646284531322917
"L20P87" 30083 5397.0 389 30082 5397.0 388 0.21287974044022664
"L20P87" 30205 6841.0 511 30204 6841.0 510 0.5691514834712261
"L20P87" 30214 6861.0 520 30213 6861.0 519 0.3528059273333338
"L20P87" 30235 7225.0 541 30234 7225.0 540 0.8486955482845622
"L40P17" 53782 3624.0 195 53781 3624.0 194 0.4175916670471151
"L40P17" 53797 3686.0 210 53796 3686.0 209 0.500668984269815
"L40P17" 53819 4086.0 232 53818 4086.0 231 0.635664263140528
"L40P17" 53826 4108.0 239 53825 4108.0 238 0.28985408206114344
"L40P17" 53882 5055.0 295 53881 5055.0 294 0.2614501771987641
"L40P17" 53895 5100.0 308 53894 5100.0 307 0.5564107717771986
"L40P17" 53986 6855.0 399 53985 6855.0 398 0.30292167588185664
"L40P17" 54035 7527.0 448 54034 7527.0 447 0.3936268030217168
"L25P16" 25536 76.0 20 25535 76.0 19 0.40715222800458234
"L25P16" 25547 110.0 31 25546 110.0 30 0.2034128110688678
"L42P36" 59552 902.0 69 59551 902.0 68 0.5973931124950158
"L42P36" 59602 1289.0 119 59601 1289.0 118 0.18563785852177142
"L42P36" 59675 2931.0 192 59674 2931.0 191 0.7778736531448126
"L42P36" 59802 5095.0 319 59801 5095.0 318 0.05870358124367768
"L42P36" 59827 5211.0 344 59826 5211.0 343 0.5262793836486259
"L42P36" 59994 9299.0 511 59993 9299.0 510 0.13150911993591552
"L42P36" 60049 9956.0 566 60048 9956.0 565 0.5126205373459046
"L21P56" 41168 285.0 10 41167 285.0 9 0.24601808124085325
"L21P56" 41227 960.0 69 41226 960.0 68 0.11320861345080878
"L21P56" 41273 1797.0 115 41272 1797.0 114 0.0195614483982213
"L21P56" 41278 1819.0 120 41277 1819.0 119 0.10452894272878084
"L21P56" 41354 3840.0 196 41353 3840.0 195 0.24476148405823514
"L21P56" 41390 4492.0 232 41389 4492.0 231 0.06671706068736016
"L21P56" 41425 5503.0 267 41424 5503.0 266 0.41562958953196555
"L21P56" 41496 6692.0 338 41495 6692.0 337 0.09845326110188016
"L21P56" 41546 7349.0 388 41545 7349.0 387 0.09904635397449366
"L21P56" 41595 8736.0 437 41594 8736.0 436 0.1624310733955418
"L21P56" 41776 11877.0 618 41775 11877.0 617 0.37958062604096265
"L21P56" 41946 14535.0 788 41945 14535.0 787 0.31792630028984264
"L21P56" 41955 14567.0 797 41954 14567.0 796 0.16078415952739253
"L21P56" 42009 14859.0 851 42008 14859.0 850 0.16078415952739253
"L51P236" 6237 1666.0 82 6236 1666.0 81 0.6367054064569614
"L51P236" 6240 1672.0 85 6239 1672.0 84 0.2726709564340596
"L51P236" 6327 3005.0 172 6326 3005.0 171 0.3691447432697083
"L51P236" 6371 3748.0 216 6370 3748.0 215 0.06671706068736016
"L51P236" 6455 5171.0 300 6454 5171.0 299 0.44479004604600664
"L42P37" 15587 68.0 27 15586 68.0 26 0.25621000656898874
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"
route_long_name_contains_short_name WARNING 32

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`.
"9" 2 "9" "9"
"33" 3 "33" "33"
"22" 4 "22" "22"
"52" 5 "52" "52"
"53" 6 "53" "53"
"14" 7 "14" "14"
"93" 8 "93" "93"
"43" 9 "43" "43"
"32" 10 "32" "32"
"21" 11 "21" "21"
"42" 12 "42" "42"
"44" 13 "44" "44"
"51" 14 "51" "51"
"20" 18 "20" "20"
"41" 19 "41" "41"
"30" 20 "30" "30"
"40" 21 "40" "40"
"8" 22 "8" "8"
"91" 23 "91" "91"
"95" 24 "95" "95"
"16" 25 "16" "16"
"96" 26 "96" "96"
"18" 27 "18" "18"
"17" 28 "17" "17"
"38" 29 "38" "38"
"26" 30 "26" "26"
"36" 31 "36" "36"
"25" 32 "25" "25"
"46" 33 "46" "46"
"24" 34 "24" "24"
"34" 35 "34" "34"
"23" 36 "23" "23"
stop_without_stop_time WARNING 499

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.

Only the first 50 of 499 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.
3 "0:10233" "Millénaire"
6 "0:05126" "CNRS"
7 "0:04141" "Corum"
8 "0:05213" "Lycée G.Clemenceau"
9 "0:93105" "Parc Expo"
10 "0:93237" "Port Marianne"
11 "0:93272" "Cougourlude"
12 "0:93171" "Pérols Etang de l'Or"
13 "0:93163" "Cougourlude"
14 "0:93109" "Soriech"
15 "0:04106" "Georges Danton"
17 "0:17124" "Sabines"
18 "0:18104" "Sabines"
20 "0:28125" "Parc Expo"
21 "0:22231" "Campus Agropolis"
22 "0:22230" "Lycée F. Bazille"
24 "0:09232" "Place de l'Europe"
25 "0:05230" "Hortus"
27 "0:08111" "Pinsons"
28 "0:08110" "Ernest Renan"
29 "0:00001" ""
30 "0:05102" "Castelle"
31 "0:05103" "Passerines"
32 "0:05104" "Les Pins"
33 "0:27115" "Passerines"
34 "0:08120" "Salaison"
35 "0:53104" "Raymond Recouly"
36 "0:51206" "Philippe Lamour"
37 "0:06109" "Guillaume Janvier"
38 "0:06227" "Place du 8 Mai 1945"
39 "0:06226" "Georges Brassens"
40 "0:06107" "Ronceray"
41 "0:06214" "Ronceray"
42 "0:06127" "Place du 8 Mai 1945"
44 "0:27227" "Les Arbousiers"
45 "0:22222" "Collège P. M. France"
46 "0:22135" "Collège P. M. France"
47 "0:23238" "Occitanie"
49 "0:06126" "Georges Brassens"
50 "0:11135" "Rondelet"
51 "0:09134" "Place de l'Europe"
52 "0:00331" "Villetelles"
53 "0:00332" "Villetelles"
57 "0:00234" "Occitanie"
58 "0:00131" "École d'Architecture"
59 "0:20253" "Collège L.Germain"
61 "0:38125" "Marronniers"
62 "0:38238" "Marronniers"
63 "0:51102" "Marcel Dassault"
64 "0:00382" "Arrêt Provisoire"
unused_shape WARNING 88

unused_shape

Shape is not used in GTFS file trips.txt.

All records defined by GTFS shapes.txt should be used in trips.txt.

You can see more about this notice here.

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

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"L9P57" 2
"L52P97" 599
"L9P37" 745
"L93P56" 1342
"L93P76" 1577
"L93P27" 1887
"L93P57" 2227
"L8P127" 2548
"L53P36" 2758
"L8P126" 3110
"L53P17" 3339
"L43P16" 3670
"L42P17" 4768
"L14P76" 5415
"L52P96" 5645
"L53P37" 5879
"L51P236" 6155
"L94P66" 6471
"L94P57" 6613
"L92P76" 6796
"L92P77" 6975
"L30P56" 7160
"L30P17" 7540
"L16P16" 7986
"L9P176" 8433
"L16P147" 9004
"L9P56" 10573
"L91P26" 11721
"L26P26" 11966
"L95P17" 12058
"L95P16" 12257
"L95P26" 12471
"L14P97" 12516
"L51P66" 12736
"L53P106" 13024
"L91P27" 13078
"L94P86" 13353
"L91P217" 13567
"L91P216" 13738
"L21P17" 13949
"L32P27" 22246
"L21P46" 23262
"L21P16" 23270
"L41P26" 23301
"L46P26" 23464
"L32P37" 23472
"L25P16" 25516
"L32P26" 25553
"L40P36" 26501
"L32P36" 27019
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.
"stops.txt" "vehicle_type" 10