stib-mivb — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-08-01T10:44:08Z,
for the dataset file:///shared/stib-mivb_01cc95f8.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
STIB
Feed Email:
data@stib-mivb.brussels
Feed Language:
French
Feed Start Date:
2026-07-20
Feed End Date:
2026-08-16

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

Counts


  • Agencies: 1
  • Blocks: 3920
  • Routes: 87
  • Shapes: 783
  • Stops: 2751
  • Trips: 78588

Specification Compliance report

50049 notices reported (0 errors, 40882 warnings, 9167 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 2153

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 2153 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.
"008t0258" 51685 0.132 10008 51684 0.132 10007 0.21061973016581606
"008t0258" 51689 0.152 10012 51688 0.152 10011 0.23320885633800187
"008t0258" 51693 0.188 10016 51692 0.188 10015 0.23320891137388824
"008t0258" 51698 0.213 10021 51697 0.213 10020 0.28082828742965066
"008t0258" 51702 0.235 10025 51701 0.235 10024 0.11119510090982554
"008t0258" 51705 0.274 10028 51704 0.274 10027 0.13150472444541367
"008t0258" 51708 0.355 10031 51707 0.355 10030 0.07020887328822156
"008t0258" 51712 0.428 10035 51711 0.428 10034 0.302051391261156
"008t0258" 51723 0.689 20007 51722 0.689 20006 0.11119510161714974
"008t0258" 51742 1.131 20026 51741 1.131 20025 0.07021890776551923
"008t0258" 51761 1.497 40004 51760 1.497 40003 0.22239020252697528
"008t0258" 51896 3.57 70001 51895 3.57 60039 0.5375310902486181
"004t0109" 13320 2.018 50002 13319 2.018 50001 0.3619675841982114
"008t0260" 52293 0.132 10008 52292 0.132 10007 0.21061973016581606
"008t0260" 52297 0.152 10012 52296 0.152 10011 0.23320885633800187
"008t0260" 52301 0.188 10016 52300 0.188 10015 0.23320891137388824
"008t0260" 52306 0.213 10021 52305 0.213 10020 0.28082828742965066
"008t0260" 52310 0.235 10025 52309 0.235 10024 0.11119510090982554
"008t0260" 52313 0.274 10028 52312 0.274 10027 0.13150472444541367
"008t0260" 52316 0.355 10031 52315 0.355 10030 0.07020887328822156
"008t0260" 52320 0.428 10035 52319 0.428 10034 0.302051391261156
"008t0260" 52331 0.689 20007 52330 0.689 20006 0.11119510161714974
"008t0260" 52350 1.131 20026 52349 1.131 20025 0.07021890776551923
"008t0260" 52369 1.497 40004 52368 1.497 40003 0.22239020252697528
"056b0159" 166290 2.287 50009 166289 2.287 50008 0.3335853034368008
"056b0159" 166502 5.958 110059 166501 5.958 110058 0.5944789984435529
"056b0159" 166606 7.298 140001 166605 7.298 130021 0.3335853034368008
"008t0263" 52610 4.264 90035 52609 4.264 90034 0.2811257390492779
"004t0101" 12919 2.99 70002 12918 2.99 70001 0.13149754371770783
"005m0092" 15886 2.97 50035 15885 2.97 50034 0.3582050949395051
"004t0105" 13064 1.708 50002 13063 1.708 50001 0.17910091787707627
"004t0105" 13078 2.206 60002 13077 2.206 60001 0.14041345750434514
"004t0105" 13091 2.685 70002 13090 2.685 70001 0.1791182023850635
"046b0507" 140022 7.387 210001 140021 7.387 200022 0.0702262795206489
"046b0509" 140347 7.387 220001 140346 7.387 210022 0.0702262795206489
"046b0509" 140381 8.139 240004 140380 8.139 240003 0.79039896866171
"046b0509" 140448 9.651 280001 140447 9.651 270014 0.6708572810426543
"046b0509" 140519 11.265 300034 140518 11.265 300033 0.5945424072836311
"046b0509" 140526 11.279 300041 140525 11.279 300040 0.6699277043592338
"046b0506" 139523 7.387 210001 139522 7.387 200022 0.0702262795206489
"046b0506" 139557 8.139 230004 139556 8.139 230003 0.79039896866171
"046b0506" 139624 9.651 270001 139623 9.651 260014 0.6708572810426543
"046b0506" 139695 11.265 290034 139694 11.265 290033 0.5945424072836311
"046b0506" 139702 11.279 290041 139701 11.279 290040 0.6699277043592338
"046b0505" 138751 1.133 20044 138750 1.133 20043 0.5666760832494097
"046b0505" 138800 2.322 60002 138799 2.322 60001 0.6042842363918856
"046b0505" 139007 6.667 170005 139006 6.667 170004 0.30630682665173886
"056b0161" 167046 4.266 130016 167045 4.266 130015 0.8923245875285387
"056b0161" 167485 11.546 260002 167484 11.546 260001 0.21035913496077002
"008t0254" 51178 4.264 90035 51177 4.264 90034 0.2811257390492779
equal_shape_distance_same_coordinates WARNING 64

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 64 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`.
"004t0105" 12973 0.0 10002 12972 0.0 10001
"004t0105" 13159 3.758 80056 13158 3.758 80055
"034b0206" 99987 0.0 10002 99986 0.0 10001
"034b0205" 99766 0.0 10002 99765 0.0 10001
"034b0207" 100228 0.0 10002 100227 0.0 10001
"034b0202" 99069 0.0 10002 99068 0.0 10001
"034b0204" 99499 0.0 10002 99498 0.0 10001
"034b0203" 99200 0.0 10002 99199 0.0 10001
"025t0077" 89015 0.659 20002 89014 0.659 20001
"051t0225" 158385 1.282 40002 158384 1.282 40001
"051t0216" 157917 1.282 40002 157916 1.282 40001
"035t0096" 102107 0.0 10002 102106 0.0 10001
"082t0213" 229697 2.431 70002 229696 2.431 70001
"082t0214" 230430 6.746 180002 230429 6.746 180001
"092t0428" 249853 5.962 170001 249852 5.962 160013
"092t0431" 250670 2.673 80001 250669 2.673 70013
"092t0435" 251088 5.962 170001 251087 5.962 160013
"009t0046" 55099 6.002 150025 55098 6.002 150024
"009t0046" 55127 6.303 160012 55126 6.303 160011
"009t0046" 55217 7.869 190028 55216 7.869 190027
"009t0046" 55252 8.267 200002 55251 8.267 200001
"034b0038" 97347 0.0 10002 97346 0.0 10001
"093t0207" 253576 1.281 40002 253575 1.281 40001
"007t0294" 45092 4.582 110002 45091 4.582 110001
"093t0039" 251220 1.281 40002 251219 1.281 40001
"007t0277" 44192 0.0 10002 44191 0.0 10001
"007t0261" 43056 8.875 160002 43055 8.875 160001
"010t0215" 68372 6.11 110056 68371 6.11 110055
"010t0204" 64677 1.506 40022 64676 1.506 40021
"010t0208" 66189 1.506 40022 66188 1.506 40021
"010t0207" 65982 1.506 40022 65981 1.506 40021
"010t0205" 65264 1.506 40022 65263 1.506 40021
"010t0205" 65683 9.107 160056 65682 9.107 160055
"025t0100" 90715 3.394 90002 90714 3.394 90001
"007t0229" 39166 0.0 10002 39165 0.0 10001
"007t0229" 39687 7.748 150002 39686 7.748 150001
"007t0228" 38915 8.875 160002 38914 8.875 160001
"007t0226" 37553 0.0 10002 37552 0.0 10001
"007t0226" 38074 7.748 150002 38073 7.748 150001
"007t0223" 35704 8.875 160002 35703 8.875 160001
"007t0302" 47650 8.875 160002 47649 8.875 160001
"055t0086" 165687 2.554 70002 165686 2.554 70001
"055t0086" 165766 3.993 100021 165765 3.993 100020
"010t0181" 62873 11.198 200056 62872 11.198 200055
"093t0183" 252291 1.281 40002 252290 1.281 40001
"093t0182" 251956 1.281 40002 251955 1.281 40001
"004t0092" 12421 0.0 10002 12420 0.0 10001
"004t0092" 12607 3.758 90002 12606 3.758 90001
"004t0088" 12079 3.155 70002 12078 3.155 70001
"009t0160" 56951 6.002 150025 56950 6.002 150024
expired_calendar WARNING 63

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.

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

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
5 "334261003"
7 "334754606"
8 "332427002"
9 "332913000"
10 "335515601"
11 "331487500"
12 "335297001"
13 "331168600"
22 "335544601"
23 "335296001"
27 "335209601"
31 "335589602"
33 "334364001"
39 "332915000"
41 "335514601"
43 "331485500"
45 "331166600"
51 "335489602"
68 "336234601"
72 "330987000"
75 "334618001"
83 "335546602"
87 "335543601"
102 "335883602"
110 "335885601"
113 "332832000"
121 "335576603"
126 "334572602"
136 "332457001"
153 "329622001"
155 "329321601"
158 "329333501"
165 "335303603"
171 "335779603"
190 "335746602"
194 "332235000"
196 "335628601"
203 "335585602"
210 "335598602"
215 "335630603"
223 "336050601"
226 "335789602"
231 "335693602"
236 "335571602"
243 "335672602"
244 "335676602"
250 "336222602"
275 "335716602"
281 "335294601"
284 "335503601"
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 "20260801" "20260816" "20260831"
mixed_case_recommended_field WARNING 38599

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 38599 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.
"routes.txt" "route_long_name" "GARE DE L'OUEST - STOCKEL" 2
"routes.txt" "route_long_name" "SIMONIS - ELISABETH" 3
"routes.txt" "route_long_name" "GARE DU NORD - STALLE (P)" 4
"routes.txt" "route_long_name" "ERASME - HERRMANN-DEBROUX" 5
"routes.txt" "route_long_name" "ROI BAUDOUIN - ELISABETH" 6
"routes.txt" "route_long_name" "VANDERKINDERE - HEYSEL" 7
"routes.txt" "route_long_name" "LOUISE - ROODEBEEK" 8
"routes.txt" "route_long_name" "GROOT-BIJGAARDEN - ROI BAUDOUIN" 9
"routes.txt" "route_long_name" "HOPITAL MILITAIRE - CHURCHILL" 10
"routes.txt" "route_long_name" "BRUSSELS AIRPORT - BRUSSELS CITY" 11
"routes.txt" "route_long_name" "ETANGS NOIRS - UZ-VUB" 12
"routes.txt" "route_long_name" "UZ-VUB - GARE DU NORD" 13
"routes.txt" "route_long_name" "BEAULIEU - HEILIGENBORRE" 14
"routes.txt" "route_long_name" "ALBERT - VAN HAELEN" 15
"routes.txt" "route_long_name" "SIMONIS - DE WAND" 16
"routes.txt" "route_long_name" "HUNDERENVELD - GARE DU NORD" 17
"routes.txt" "route_long_name" "MAES - LUXEMBOURG" 18
"routes.txt" "route_long_name" "BOONDAEL GARE - ROGIER" 19
"routes.txt" "route_long_name" "BRABANCONNE - KONKEL" 20
"routes.txt" "route_long_name" "DE BROUCKERE - HOF TEN BERG" 21
"routes.txt" "route_long_name" "PORTE DE NAMUR - SAINTE-ANNE" 22
"routes.txt" "route_long_name" "SCHAERBEEK GARE - ESPLANADE" 23
"routes.txt" "route_long_name" "MAELBEEK - KONKEL" 24
"routes.txt" "route_long_name" "ALBERT - GARE DE LINKEBEEK" 25
"routes.txt" "route_long_name" "GARE CENTRALE - HEROS" 26
"routes.txt" "route_long_name" "MONTGOMERY - BAN-EIK" 27
"routes.txt" "route_long_name" "HEROS - TRANSVAAL" 28
"routes.txt" "route_long_name" "ROODEBEEK - VIADUC E40" 29
"routes.txt" "route_long_name" "HEROS - VIVIER D'OIE" 30
"routes.txt" "route_long_name" "MONTGOMERY - TERVUREN STATION" 31
"routes.txt" "route_long_name" "ROODEBEEK - SAINT-VINCENT" 32
"routes.txt" "route_long_name" "MOORTEBEEK - PANNENHUIS" 33
"routes.txt" "route_long_name" "HEEMBEEK - VILVOORDE STATION" 34
"routes.txt" "route_long_name" "ANNEESSENS - DECROLY" 35
"routes.txt" "route_long_name" "GARE DU MIDI - SIMONIS" 36
"routes.txt" "route_long_name" "GARE DU MIDI - LOT STATION" 37
"routes.txt" "route_long_name" "STADE - GARE DU MIDI" 38
"routes.txt" "route_long_name" "WESTLAND SHOPPING - HOPITAL MILITAIRE" 39
"routes.txt" "route_long_name" "TRONE - FOREST (BERVOETS)" 40
"routes.txt" "route_long_name" "DA VINCI - ROGIER" 41
"routes.txt" "route_long_name" "MAELBEEK - BUDA" 42
"routes.txt" "route_long_name" "VILVOORDE STATION - ALBERT II" 43
"routes.txt" "route_long_name" "HOPITAL ETTERBEEK-IXELLES - BORDET STATION" 44
"routes.txt" "route_long_name" "AMBIORIX - UCCLE CALEVOET" 45
"routes.txt" "route_long_name" "GARE DU NORD - PLEIADES" 46
"routes.txt" "route_long_name" "EUROCONTROL - HEYSEL" 47
"routes.txt" "route_long_name" "GARE CENTRALE - CIMETIERE DE BRUXELLES" 48
"routes.txt" "route_long_name" "PORTE DE NAMUR - BORDET STATION" 49
"routes.txt" "route_long_name" "GARE CENTRALE - MACHELEN" 50
"routes.txt" "route_long_name" "GARE CENTRALE - PEAGE" 51
stop_too_far_from_shape WARNING 2

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.
19802 "061b0144" "133471168335789602" 474540 "2469" "MADOU" [50.850419,4.368521] 176.24445908244383
19939 "061b0149" "133472730335789602" 478360 "2469" "MADOU" [50.850419,4.368521] 176.24445908244383
big_gap_in_service INFO 1

big_gap_in_service

A service has a gap of more than 13 days between active service dates.

You can see more about this notice here.

serviceId (?) The service_id that has the gap. gapStartDate (?) The first day of the gap. gapEndDate (?) The last day of the gap. gapDurationDays (?) The number of days in the gap.
"336232601" "2026-07-21" "2026-08-15" 24
trip_headsign_matches_intermediate_stop INFO 9166

trip_headsign_matches_intermediate_stop

Trip headsign matches the name of an intermediate stop, not the last stop.

The trip_headsign matches the stop_name of a stop that is not the last stop of the trip. This may confuse passengers boarding after that stop, since the headsign suggests the vehicle is heading to a stop it has already passed.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record in `trips.txt`. tripId (?) The id of the trip with the problematic headsign. tripHeadsign (?) The headsign value that matches an intermediate stop name. stopId1 (?) The id of the intermediate stop whose name matches the headsign. stopSequence (?) The stop_sequence value of the intermediate stop that matches the headsign. stopId2 (?) The id of the actual last stop of the trip.
2 "132650344331558001" "TRONE" "6432" 25 "1780"
5 "132650347331558001" "TRONE" "6432" 25 "1780"
170 "133660093337057002" "TRONE" "6432" 25 "1780"
173 "133660096337057002" "TRONE" "6432" 25 "1780"
407 "132501393330921501" "TRONE" "6432" 25 "1780"
408 "132501394330921501" "TRONE" "6432" 25 "1780"
492 "132501182330920601" "TRONE" "6432" 25 "1780"
501 "132501191330920601" "TRONE" "6432" 25 "1780"
4975 "132847633332804000" "MAELBEEK" "6464" 31 "2719"
4978 "132847636332804000" "MAELBEEK" "6464" 31 "2719"
4981 "132847639332804000" "MAELBEEK" "6464" 31 "2719"
4984 "132847642332804000" "MAELBEEK" "6464" 31 "2719"
4987 "132847645332804000" "MAELBEEK" "6464" 31 "2719"
4990 "132847648332804000" "MAELBEEK" "6464" 31 "2719"
4993 "132852517332804000" "MAELBEEK" "6464" 31 "2719"
4996 "132852522332804000" "MAELBEEK" "6464" 31 "2719"
4997 "132852523332804000" "MAELBEEK" "6464" 31 "2719"
4999 "132852525332804000" "MAELBEEK" "6464" 31 "2719"
5003 "132852529332804000" "MAELBEEK" "6464" 31 "2719"
5004 "132852530332804000" "MAELBEEK" "6464" 31 "2719"
5005 "132852531332804000" "MAELBEEK" "6464" 31 "2719"
5009 "132852536332804000" "MAELBEEK" "6464" 31 "2719"
5010 "132852537332804000" "MAELBEEK" "6464" 31 "2719"
5012 "132852540332804000" "MAELBEEK" "6464" 31 "2719"
5013 "132852541332804000" "MAELBEEK" "6464" 31 "2719"
5014 "132852543332804000" "MAELBEEK" "6464" 31 "2719"
5016 "132852546332804000" "MAELBEEK" "6464" 31 "2719"
5020 "132852551332804000" "MAELBEEK" "6464" 31 "2719"
5022 "132852556332804000" "MAELBEEK" "6464" 31 "2719"
5024 "132852558332804000" "MAELBEEK" "6464" 31 "2719"
5026 "132852560332804000" "MAELBEEK" "6464" 31 "2719"
5027 "132852561332804000" "MAELBEEK" "6464" 31 "2719"
5029 "132852564332804000" "MAELBEEK" "6464" 31 "2719"
5033 "132852571332804000" "MAELBEEK" "6464" 31 "2719"
5038 "132852576332804000" "MAELBEEK" "6464" 31 "2719"
5041 "132852580332804000" "MAELBEEK" "6464" 31 "2719"
5043 "132852583332804000" "MAELBEEK" "6464" 31 "2719"
5045 "132852585332804000" "MAELBEEK" "6464" 31 "2719"
5046 "132852586332804000" "MAELBEEK" "6464" 31 "2719"
5048 "132852588332804000" "MAELBEEK" "6464" 31 "2719"
5049 "132852589332804000" "MAELBEEK" "6464" 31 "2719"
5053 "132852593332804000" "MAELBEEK" "6464" 31 "2719"
5055 "132852595332804000" "MAELBEEK" "6464" 31 "2719"
5056 "132852596332804000" "MAELBEEK" "6464" 31 "2719"
5058 "132852598332804000" "MAELBEEK" "6464" 31 "2719"
5059 "132852599332804000" "MAELBEEK" "6464" 31 "2719"
5061 "132852601332804000" "MAELBEEK" "6464" 31 "2719"
5062 "132852602332804000" "MAELBEEK" "6464" 31 "2719"
5064 "132852604332804000" "MAELBEEK" "6464" 31 "2719"
5067 "132852607332804000" "MAELBEEK" "6464" 31 "2719"