grand-narbonne — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-07T21:19:39Z,
for the dataset file:///shared/grand-narbonne_4d9c52cd.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Citibus
Publisher URL:
https://www.citibus.fr
Feed Email:
N/A
Feed Language:
French
Feed Start Date:
2026-07-28
Feed End Date:
2026-08-31

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. transfers.txt
  10. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 19
  • Shapes: 56
  • Stops: 511
  • Trips: 1335

Specification Compliance report

3181 notices reported (0 errors, 3175 warnings, 6 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 2946

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 2946 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.
"44" 13180 0.0 2 13179 0.0 1 0.44478040646859895
"44" 13210 1.157 32 13209 1.157 31 2.1837524204739605E-9
"44" 13211 1.157 33 13210 1.157 32 0.09124320529835019
"44" 13212 1.157 34 13211 1.157 33 0.09124320319573116
"44" 13221 1.58 43 13220 1.58 42 0.4378165161568144
"44" 13222 1.58 44 13221 1.58 43 1.6609616597388895E-9
"44" 13231 1.947 53 13230 1.947 52 2.828230534011582E-9
"44" 13232 1.947 54 13231 1.947 53 0.4521114249774241
"44" 13233 1.947 55 13232 1.947 54 3.049053973381987E-9
"44" 13305 3.193 127 13304 3.193 126 0.6663975438448779
"44" 13306 3.193 128 13305 3.193 127 2.415631833840036E-8
"44" 13308 3.194 130 13307 3.194 129 1.99918636294726E-9
"44" 13343 4.0 165 13342 4.0 164 7.645347782102973E-10
"44" 13344 4.0 166 13343 4.0 165 0.3709277467441841
"44" 13589 10.161 411 13588 10.161 410 0.21225197697025347
"44" 13591 10.162 413 13590 10.162 412 1.1730193450669423E-9
"44" 13592 10.162 414 13591 10.162 413 0.16327228795400486
"44" 13994 22.843 816 13993 22.843 815 6.463054586285415E-11
"44" 13996 22.845 818 13995 22.845 817 0.20340488801602935
"44" 14134 28.855 956 14133 28.855 955 9.695104543922422E-11
"44" 14136 28.855 958 14135 28.855 957 9.695104543922422E-11
"44" 14153 29.541 975 14152 29.541 974 1.423846769736675E-9
"44" 14154 29.541 976 14153 29.541 975 0.5158573623793633
"44" 14177 30.13 999 14176 30.13 998 0.5801847979778597
"44" 14178 30.13 1000 14177 30.13 999 8.396612820957777E-10
"44" 14270 46.639 1092 14269 46.639 1091 0.6802659281912576
"44" 14271 46.639 1093 14270 46.639 1092 2.0668208654407414E-9
"44" 14310 47.834 1132 14309 47.834 1131 0.1869875575052175
"44" 14312 47.838 1134 14311 47.838 1133 2.125917993114603E-9
"44" 14334 48.629 1156 14333 48.629 1155 3.2382390907813433E-9
"44" 14335 48.629 1157 14334 48.629 1156 0.2358129198313018
"44" 14336 48.629 1158 14335 48.629 1157 0.23581292103260448
"44" 14407 50.736 1229 14406 50.736 1228 0.019677521340038476
"44" 14409 50.758 1231 14408 50.758 1230 7.256019053418933E-10
"44" 14520 53.62 1342 14519 53.62 1341 2.4294241531450695E-9
"44" 14533 53.849 1355 14532 53.849 1354 0.09495132505939613
"44" 14534 53.849 1356 14533 53.849 1355 2.599224311629284E-8
"44" 14535 53.849 1357 14534 53.849 1356 0.45494513705388384
"44" 14536 53.849 1358 14535 53.849 1357 2.498236718772251E-9
"44" 14554 54.311 1376 14553 54.311 1375 0.1342602006449996
"44" 14555 54.311 1377 14554 54.311 1376 0.13426020267952946
"44" 14556 54.311 1378 14555 54.311 1377 3.1879332654977697E-9
"44" 14568 54.706 1390 14567 54.706 1389 2.3905751735203914E-9
"44" 14570 54.709 1392 14569 54.709 1391 2.1308482353248914E-9
"44" 14598 55.394 1420 14597 55.394 1419 3.2381256604056017E-10
"44" 14599 55.394 1421 14598 55.394 1420 0.1158804351571342
"44" 14600 55.394 1422 14599 55.394 1421 0.1158804354471724
"44" 14615 56.124 1437 14614 56.124 1436 3.3990716636317413E-9
"44" 14617 56.124 1439 14616 56.124 1438 3.3990716636317417E-9
"44" 14672 60.611 1494 14671 60.611 1493 2.1241967457939437E-9
equal_shape_distance_same_coordinates WARNING 144

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 144 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`.
"44" 14135 28.855 957 14134 28.855 956
"44" 14519 53.62 1341 14518 53.62 1340
"44" 14616 56.124 1438 14615 56.124 1437
"44" 14881 69.612 1703 14880 69.612 1702
"44" 14887 69.878 1709 14886 69.878 1708
"44" 14974 72.381 1796 14973 72.381 1795
"45" 12379 0.58 18 12378 0.58 17
"45" 12417 1.625 56 12416 1.625 55
"45" 12429 1.998 68 12428 1.998 67
"46" 8921 12.727 261 8920 12.727 260
"46" 9065 15.662 405 9064 15.662 404
"47" 22922 0.58 18 22921 0.58 17
"47" 22960 1.625 56 22959 1.625 55
"47" 22972 1.998 68 22971 1.998 67
"48" 25678 14.004 535 25677 14.004 534
"48" 25709 15.117 566 25708 15.117 565
"48" 25724 15.535 581 25723 15.535 580
"49" 29144 12.837 468 29143 12.837 467
"49" 29175 13.949 499 29174 13.949 498
"49" 29190 14.368 514 29189 14.368 513
"50" 28586 12.837 468 28585 12.837 467
"50" 28629 14.208 511 28628 14.208 510
"50" 28644 14.627 526 28643 14.627 525
"51" 20460 4.491 159 20459 4.491 158
"51" 20507 5.737 206 20506 5.737 205
"51" 20606 9.061 305 20605 9.061 304
"52" 16938 4.048 130 16937 4.048 129
"52" 16967 5.145 159 16966 5.145 158
"53" 11556 4.127 139 11555 4.127 138
"53" 11585 5.225 168 11584 5.225 167
"10" 2605 6.635 246 2604 6.635 245
"10" 2665 8.544 306 2664 8.544 305
"10" 2694 9.434 335 2693 9.434 334
"10" 2750 10.871 391 2749 10.871 390
"10" 2787 11.738 428 2786 11.738 427
"54" 19102 5.886 194 19101 5.886 193
"54" 19131 6.983 223 19130 6.983 222
"11" 21780 6.635 246 21779 6.635 245
"11" 21851 8.805 317 21850 8.805 316
"11" 21880 9.695 346 21879 9.695 345
"11" 21936 11.132 402 21935 11.132 401
"11" 21973 11.999 439 21972 11.999 438
"55" 26677 5.965 203 26676 5.965 202
"55" 26706 7.063 232 26705 7.063 231
"12" 16279 1.291 69 16278 1.291 68
"12" 16392 4.085 182 16391 4.085 181
"12" 16435 5.456 225 16434 5.456 224
"12" 16664 11.081 454 16663 11.081 453
"13" 18705 6.635 246 18704 6.635 245
"13" 18765 8.544 306 18764 8.544 305
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.
2 "10_OFFRE_SEPT_2"
5 "8_OFFRE_SEPT_2"
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 "20260807" "20260831" "20260906"
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 1

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.

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"stops.txt" "stop_name" "GRUISSAN CRAM" 172
route_long_name_contains_short_name WARNING 1

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`.
"TPMR" 17 "TPMR" "TPMR"
route_short_name_too_long WARNING 2

route_short_name_too_long

Short name of a route is too long (more than 12 characters).

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`.
"TAD_Corbieres" 18 "TAD_Corbieres"
"TAD_Minervois" 20 "TAD_Minervois"
service_has_no_active_day_of_the_week WARNING 5

service_has_no_active_day_of_the_week

A service is not valid for any day of the week.

You can see more about this notice here.

csvRowNumber (?) The row number in calendar.txt where the error occurs. serviceId (?) The service_id field value.
2 "10_OFFRE_SEPT_2"
3 "11_OFFRE_SEPT_2"
4 "12_OFFRE_SEPT_2"
5 "8_OFFRE_SEPT_2"
6 "9_OFFRE_SEPT_2"
stop_too_far_from_shape_using_user_distance WARNING 71

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.

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

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.
41 "15" "900000342" 1285 "_2871" "Cinémas" [43.16253636363636,2.98906] 108.49547257188621
41 "15" "900000342" 1287 "_2612" "Pic de Nore" [43.1845976104974,2.972016917733279] 104.98616367778718
41 "15" "900000342" 1290 "_2788" "Argent Double" [43.18280130434793,2.974145652182367] 107.0983248408504
41 "15" "900000342" 1292 "_2929" "Naïade" [43.18394700000043,2.9793610665573564] 104.59875861902921
41 "15" "900000342" 1293 "_3060" "Saint Jean La Source" [43.185269677468696,2.9820648386581303] 120.93833365801571
41 "15" "900000342" 1294 "_3061" "Elysiques" [43.186452000002866,2.9829755999193215] 126.97371246496398
41 "15" "900000342" 1295 "_3062" "Cimetière de L'Ouest" [43.188164898053856,2.983837550569246] 128.2321100557934
41 "15" "900000342" 1296 "_2387" "Route de Saint Pons" [43.18920509461397,2.9860800005452948] 126.82147357987533
41 "15" "900000342" 1297 "_2526" "Lamartine" [43.186547181003476,2.991871284879477] 126.70044407776278
41 "15" "900000342" 1298 "_2410" "Charles Trenet" [43.18463283022071,2.9947930189589327] 128.04013809328148
41 "15" "900000342" 1299 "_2385" "Karl Marx" [43.18481352942797,2.999351372503296] 126.42705713834451
41 "15" "900000342" 1300 "_2570" "Hôpital" [43.18094693005072,2.9987624854284523] 126.26348740076072
41 "15" "900000342" 1301 "_2990" "Lacroix" [43.180455000535694,3.0008475004477497] 126.51858456557495
41 "15" "900000342" 1302 "_3051" "Les Halles" [43.18054238570055,3.004489990645165] 116.387022553406
41 "15" "900000342" 1303 "_3052" "La Poste" [43.182541871248866,3.007432154591896] 116.10866834815475
41 "15" "900000342" 1306 "_2956" "Sécurité Sociale" [43.19144555562852,3.0092766652024663] 104.42204428908748
41 "15" "900000342" 1307 "_2469" "Brunelière" [43.19336247019533,3.0104622118121775] 104.73409297350541
41 "15" "900000342" 1309 "_3013" "Provence" [43.19269591310995,3.014215999472593] 105.76744828879568
41 "15" "900000342" 1310 "_3014" "Divies" [43.19450192308702,3.0148734613636754] 107.27756466914283
41 "15" "900000342" 1311 "_2922" "Fleming" [43.19543017134459,3.0156431633704823] 108.60889336792563
41 "15" "900000342" 1313 "_2461" "Boulevard 1830" [43.188857234072934,3.0176264882948307] 111.90062908147394
41 "15" "900000342" 1314 "_2572" "Jean Camp" [43.186452282122616,3.017624037278404] 110.16795592358524
41 "15" "900000342" 1315 "_2993" "Ecole Pasteur" [43.18596066667518,3.0203466667019057] 108.74798241257173
41 "15" "900000342" 1317 "_2991" "Colonnes" [43.18298500000654,3.0304700000122855] 109.60256326767954
41 "15" "900000342" 1318 "_3196" "Bonne Source" [43.180022000001365,3.0298063999745293] 102.64312806841181
339 "16" "1100000400" 8929 "_2774" "Chambre des Métiers" [43.171129965908456,2.9822985516713887] 205.16420293558056
339 "16" "1100000400" 8930 "_2416" "ZI Plaisance" [43.16974631653473,2.9879889480295874] 149.29121100679257
339 "16" "1100000400" 8931 "_2425" "Espace de Liberté" [43.173413913070874,2.9917695651079383] 192.99134063056593
339 "16" "1100000400" 8932 "_2953" "Montmorency" [43.17596843213081,2.993634440317946] 209.38665184466734
339 "16" "1100000400" 8933 "_3030" "Pastouret" [43.177891512965324,2.9949232753896813] 209.7615915092121
339 "16" "1100000400" 8934 "_2456" "Cimetière de Bourg" [43.179022250449606,2.9957062474765452] 210.25367354111208
339 "16" "1100000400" 8935 "_2429" "Votaire" [43.181516579668,2.9973680224253254] 209.02939650191848
339 "16" "1100000400" 8936 "_2402" "Jean Jaurès" [43.18351120000563,2.9986075999445228] 209.65730557219234
339 "16" "1100000400" 8937 "_2413" "Gare SNCF" [43.18774375026791,3.0037537489920756] 213.01470668390996
339 "16" "1100000400" 8938 "_2434" "Gare Condorcet" [43.18877826089696,3.0047295651014387] 138.2662979324475
339 "16" "1100000400" 8939 "_2435" "Europe" [43.1897068421776,3.0059242107920325] 200.25664504622654
339 "16" "1100000400" 8940 "_2479" "Palais de Justice" [43.187196923097126,3.0077761538841536] 199.88867315938012
339 "16" "1100000400" 8941 "_3028" "Coubertin" [43.18422846161707,3.0124682052429996] 205.31891770748157
339 "16" "1100000400" 8942 "_2571" "Parc des Sports" [43.18259945591925,3.0175802830016543] 205.03181256543448
339 "16" "1100000400" 8943 "_2683" "Pôle Universitaire" [43.182600588412605,3.01985882344808] 205.81632040642432
339 "16" "1100000400" 8944 "_2979" "Côte des Roses" [43.183285384797195,3.0228615381847237] 187.8117861689509
339 "16" "1100000400" 8945 "_2618" "Coquelicots" [43.18597898310987,3.026537287506584] 200.2461132668794
339 "16" "1100000400" 8946 "_2860" "Lys" [43.18762069789335,3.0280332563161774] 204.22888370032166
339 "16" "1100000400" 8947 "_3023" "Gamelin" [43.186976666679676,3.0311888889022374] 182.88020928617686
339 "16" "1100000400" 8948 "_2849" "Rubens" [43.18531174514783,3.031909596205505] 208.67278834497424
339 "16" "1100000400" 8949 "_2991" "Colonnes" [43.18363323946339,3.030899154754886] 189.31972369140325
339 "16" "1100000400" 8950 "_3196" "Bonne Source" [43.18090203389867,3.0297716949294684] 198.73774675445276
729 "17" "1100001122" 17829 "_2774" "Chambre des Métiers" [43.171129965908456,2.9822985516713887] 205.16420293558056
729 "17" "1100001122" 17830 "_2416" "ZI Plaisance" [43.16974631653473,2.9879889480295874] 149.29121100679257
729 "17" "1100001122" 17831 "_2425" "Espace de Liberté" [43.173413913070874,2.9917695651079383] 192.99134063056593
transfer_distance_too_large WARNING 1

transfer_distance_too_large

The transfer distance from stop to stop in transfers.txt is larger than 10 km.

You can see more about this notice here.

csvRowNumber (?) The row number from `transfers.txt` for the faulty entry. fromStopId (?) The ID of the stop in `from_stop_id`. toStopId (?) The ID of the stop in `to_stop_id`. distanceKm (?) The distance between the two stops in km.
2 "_2480" "_2912" 12.191452706169645
service_window_outside_feed_period INFO 3

service_window_outside_feed_period

A service window is not covered by the feed's validity period.

You can see more about this notice here.

serviceId (?) The service_id whose active window extends outside the feed validity period. serviceWindowStartDate (?) The first active date of the service window. serviceWindowEndDate (?) The last active date of the service window. daysBeforeFeedStart (?) Number of days the service window extends before feed_start_date (0 if none). daysAfterFeedEnd (?) Number of days the service window extends after feed_end_date (0 if none).
"12_OFFRE_SEPT_2" "2026-07-25" "2026-08-29" 3 0
"11_OFFRE_SEPT_2" "2026-07-20" "2026-08-31" 8 0
"9_OFFRE_SEPT_2" "2026-07-19" "2026-08-30" 9 0
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.
"agency.txt" "agency_sort_order" 9
unsorted_stop_times INFO 2

unsorted_stop_times

Stop times are not sorted by trip_id and stop_sequence.

'stop_times.txt' entries for a given trip are not sorted by stop_sequence, or are not contiguous in the file.

You can see more about this notice here.

tripId (?) The faulty record's trip_id. startCsvRowNumber (?) CSV row number of the first stop_times entry for this trip. endCsvRowNumber (?) CSV row number of the last stop_times entry for this trip.
"1200000566" 24126 24147
"1100001099" 17483 17504