stib-mivb — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-23T20:44:23Z,
for the dataset file:///shared/stib-mivb_3f97eea2.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-03-16
Feed End Date:
2026-04-12

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: 4298
  • Routes: 86
  • Shapes: 708
  • Stops: 2752
  • Trips: 73322

Specification Compliance report

38736 notices reported (0 errors, 38736 warnings, 0 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 1785

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 1785 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.
"065b0074" 169882 0.049 10008 169881 0.049 10007 0.5373388711704938
"065b0074" 169887 0.057 10013 169886 0.057 10012 0.5734333541843134
"065b0074" 169911 0.358 20005 169910 0.358 20004 0.5394401856249252
"065b0074" 169924 0.578 20018 169923 0.578 20017 0.6975365020068575
"065b0074" 170391 9.81 260001 170390 9.81 250031 0.7898788339877624
"065b0074" 170470 11.582 290002 170469 11.582 290001 0.2379325276897992
"065b0074" 170549 13.62 330040 170548 13.62 330039 0.932717386746405
"001m0069" 1664 0.709 20002 1663 0.709 20001 0.5617735087291177
"073b0037" 180897 2.786 30099 180896 2.786 30098 0.6630783515151172
"048b0072" 129330 0.362 20005 129329 0.362 20004 0.7239582633104198
"048b0072" 129543 4.436 140003 129542 4.436 140002 0.6996484020548401
"053b0090" 140959 0.529 20010 140958 0.529 20009 0.6708456277630209
"053b0090" 141048 2.396 50023 141047 2.396 50022 0.11119510090982554
"053b0090" 141282 6.773 140009 141281 6.773 140008 0.1790300496149427
"053b0090" 141320 7.626 170002 141319 7.626 170001 0.35081381184923155
"048b0071" 129023 0.362 20005 129022 0.362 20004 0.7239582633104198
"048b0071" 129236 4.436 140003 129235 4.436 140002 0.6996484020548401
"056b0159" 146775 2.287 50009 146774 2.287 50008 0.3335853034368008
"056b0159" 146987 5.958 110059 146986 5.958 110058 0.5944789984435529
"056b0159" 147091 7.298 140001 147090 7.298 130021 0.3335853034368008
"065b0070" 168482 2.154 30038 168481 2.154 30037 0.6408539073832046
"065b0070" 168486 2.162 30042 168485 2.162 30041 0.6972404628524795
"065b0070" 168523 2.761 50003 168522 2.761 50002 0.914104488075935
"065b0070" 168656 5.394 100007 168655 5.394 100006 0.537092960190211
"065b0070" 168972 10.992 250016 168971 10.992 250015 0.333585304144125
"065b0070" 168987 11.368 270004 168986 11.368 270003 0.8415898883685526
"065b0070" 169015 11.847 280012 169014 11.847 280011 0.7815253770672074
"065b0073" 169471 0.049 10008 169470 0.049 10007 0.5373388711704938
"065b0073" 169476 0.057 10013 169475 0.057 10012 0.5734333541843134
"065b0073" 169500 0.358 20005 169499 0.358 20004 0.5394401856249252
"065b0073" 169513 0.578 20018 169512 0.578 20017 0.6975365020068575
"005m0092" 25966 2.97 50035 25965 2.97 50034 0.3582050949395051
"065b0072" 169388 5.609 170004 169387 5.609 170003 0.8415898883685526
"065b0072" 169416 6.088 180012 169415 6.088 180011 0.7815253770672074
"046b0508" 123143 2.643 80004 123142 2.643 80003 0.653279483338839
"043b0307" 116159 0.817 30001 116158 0.817 20024 0.3946899064339074
"043b0306" 116031 0.71 30001 116030 0.71 20015 0.11119510161714974
"046b0509" 123661 7.387 220001 123660 7.387 210022 0.0702262795206489
"046b0509" 123695 8.139 240004 123694 8.139 240003 0.79039896866171
"046b0509" 123762 9.651 280001 123761 9.651 270014 0.6708572810426543
"046b0509" 123833 11.265 300034 123832 11.265 300033 0.5945424072836311
"046b0509" 123840 11.279 300041 123839 11.279 300040 0.6699277043592338
"046b0506" 122833 7.387 210001 122832 7.387 200022 0.0702262795206489
"046b0506" 122867 8.139 230004 122866 8.139 230003 0.79039896866171
"046b0506" 122934 9.651 270001 122933 9.651 260014 0.6708572810426543
"046b0506" 123005 11.265 290034 123004 11.265 290033 0.5945424072836311
"046b0506" 123012 11.279 290041 123011 11.279 290040 0.6699277043592338
"052b0111" 138235 0.0 10002 138234 0.0 10001 0.22239020252697528
"052b0111" 138370 2.16 80009 138369 2.16 80008 0.5945571159613812
"052b0111" 138388 2.414 90002 138387 2.414 90001 0.53745006134431
equal_shape_distance_same_coordinates WARNING 61

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 61 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`.
"051t0048" 135966 1.282 40002 135965 1.282 40001
"025t0170" 86542 0.659 20002 86541 0.659 20001
"055t0055" 143409 2.554 70002 143408 2.554 70001
"055t0055" 143488 3.993 100021 143487 3.993 100020
"055t0057" 143602 0.0 10002 143601 0.0 10001
"055t0057" 143681 1.439 40021 143680 1.439 40020
"051t0142" 137277 1.282 40002 137276 1.282 40001
"051t0132" 136485 2.667 60056 136484 2.667 60055
"034b0206" 95897 0.0 10002 95896 0.0 10001
"034b0205" 95676 0.0 10002 95675 0.0 10001
"034b0207" 96138 0.0 10002 96137 0.0 10001
"034b0202" 94979 0.0 10002 94978 0.0 10001
"034b0204" 95409 0.0 10002 95408 0.0 10001
"034b0203" 95110 0.0 10002 95109 0.0 10001
"010t0074" 65329 3.019 70002 65328 3.019 70001
"010t0077" 67139 3.561 90002 67138 3.561 90001
"010t0076" 66077 0.0 10002 66076 0.0 10001
"010t0076" 66274 3.568 90002 66273 3.568 90001
"010t0082" 69485 0.0 10002 69484 0.0 10001
"010t0082" 69682 3.568 90002 69681 3.568 90001
"082t0113" 202589 6.746 180002 202588 6.746 180001
"082t0115" 203469 2.431 70002 203468 2.431 70001
"092t0331" 224296 5.962 170001 224295 5.962 160013
"092t0339" 225832 2.673 80001 225831 2.673 70013
"092t0338" 225618 5.962 170001 225617 5.962 160013
"092t0335" 224723 3.609 110001 224722 3.609 100013
"009t0142" 63692 6.002 150025 63691 6.002 150024
"009t0142" 63720 6.303 160012 63719 6.303 160011
"009t0147" 64560 1.919 50025 64559 1.919 50024
"009t0147" 64588 2.22 60012 64587 2.22 60011
"009t0147" 64678 3.786 90028 64677 3.786 90027
"009t0147" 64713 4.184 100002 64712 4.184 100001
"009t0046" 62437 6.002 150025 62436 6.002 150024
"009t0046" 62465 6.303 160012 62464 6.303 160011
"009t0046" 62555 7.869 190028 62554 7.869 190027
"009t0046" 62590 8.267 200002 62589 8.267 200001
"004t0051" 23188 6.325 150002 23187 6.325 150001
"004t0053" 23351 0.0 10002 23350 0.0 10001
"092t0343" 226845 4.55 150033 226844 4.55 150032
"004t0056" 24652 6.099 140002 24651 6.099 140001
"004t0057" 24815 0.0 10002 24814 0.0 10001
"054b0189" 142325 5.566 150002 142324 5.566 150001
"007t0070" 49136 8.875 160002 49135 8.875 160001
"007t0190" 56419 0.0 10002 56418 0.0 10001
"007t0078" 52403 8.875 160002 52402 8.875 160001
"007t0199" 56769 0.936 30002 56768 0.936 30001
"007t0199" 57019 7.653 190024 57018 7.653 190023
"082t0098" 201901 6.746 170056 201900 6.746 170055
"007t0072" 49972 8.875 160002 49971 8.875 160001
"007t0181" 55127 8.875 160002 55126 8.875 160001
expired_calendar WARNING 339

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 339 affected records are displayed below.

csvRowNumber (?) The row of the faulty record. serviceId (?) The service id of the faulty record.
2 "320614503"
3 "319912002"
4 "323738003"
5 "320772604"
6 "316367001"
7 "321116605"
8 "321118504"
9 "320351502"
10 "319133603"
11 "323758505"
12 "323760607"
13 "321236002"
14 "321234001"
15 "319437000"
16 "318574500"
17 "318344600"
18 "319440000"
19 "318575500"
20 "318343600"
21 "318449000"
22 "317336500"
23 "317335600"
24 "323194001"
25 "318569000"
26 "318627070"
27 "318420500"
28 "318070600"
29 "319438000"
30 "318573500"
31 "318342600"
32 "317919001"
33 "318413501"
34 "318186601"
35 "324086604"
36 "320221000"
37 "321329501"
38 "321327601"
39 "320002500"
40 "319935600"
41 "320345000"
42 "320328500"
43 "320323600"
44 "318760001"
45 "318759501"
46 "318758601"
47 "323785602"
48 "318461000"
49 "317921500"
50 "317668600"
51 "318071600"
fast_travel_between_consecutive_stops WARNING 3

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.
42524 "130890732320351502" "1" 538.0136387493915 0.7472411649297103 976253 8 "8112" "TOMBERG" "05:42:12" 976254 9 "8122" "ROODEBEEK" "05:42:17"
46954 "130526203319133603" "1" 538.0136387493915 0.7472411649297103 1066533 8 "8112" "TOMBERG" "05:42:12" 1066534 9 "8122" "ROODEBEEK" "05:42:17"
49495 "130900441321116605" "1" 698.2937060798602 0.7758818956442891 1115932 2 "8131" "VANDERVELDE" "05:09:24" 1115933 3 "8121" "ROODEBEEK" "05:09:28"
feed_expiration_date7_days WARNING 1

feed_expiration_date7_days

Dataset should be valid for at least the next 7 days.

The dataset expiration date defined in feed_info.txt is in seven days or less. At any time, the published GTFS dataset should be valid for at least the next 7 days.

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 "20260423" "20260412" "20260430"
mixed_case_recommended_field WARNING 36546

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 36546 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" "GARE CENTRALE - FOREST (BERVOETS)" 39
"routes.txt" "route_long_name" "WESTLAND SHOPPING - HOPITAL MILITAIRE" 40
"routes.txt" "route_long_name" "TRONE - FOREST (BERVOETS)" 41
"routes.txt" "route_long_name" "DA VINCI - ROGIER" 42
"routes.txt" "route_long_name" "MAELBEEK - BUDA" 43
"routes.txt" "route_long_name" "VILVOORDE STATION - ALBERT II" 44
"routes.txt" "route_long_name" "HOPITAL ETTERBEEK-IXELLES - BORDET STATION" 45
"routes.txt" "route_long_name" "AMBIORIX - UCCLE CALEVOET" 46
"routes.txt" "route_long_name" "GARE DU NORD - PLEIADES" 47
"routes.txt" "route_long_name" "EUROCONTROL - HEYSEL" 48
"routes.txt" "route_long_name" "GARE CENTRALE - CIMETIERE DE BRUXELLES" 49
"routes.txt" "route_long_name" "PORTE DE NAMUR - BORDET STATION" 50
"routes.txt" "route_long_name" "GARE CENTRALE - MACHELEN" 51
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20260423" "20260316" "20260410"