GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-12T20:04:48Z,
for the dataset file:///shared/stib-mivb.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:
2025-12-08
Feed End Date:
2026-01-04

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: 5628
  • Routes: 89
  • Shapes: 746
  • Stops: 2801
  • Trips: 96350

Specification Compliance report

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

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 2173

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 2173 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.
"092t0281" 234690 9.41 270002 234689 9.41 270001 0.49211699492423805
"001m0069" 2453 0.709 20002 2452 0.709 20001 0.5617735087291177
"052b0004" 148555 1.448 50002 148554 1.448 50001 0.3683740802103088
"052b0004" 148716 3.68 100013 148715 3.68 100012 0.4921392000682893
"052b0004" 148717 3.68 100014 148716 3.68 100013 0.14043010178926843
"052b0004" 148735 4.004 110009 148734 4.004 110008 0.5666343274630193
"027b0285" 98388 3.203 80002 98387 3.203 80001 0.1791233486444959
"053b0094" 150964 0.529 20010 150963 0.529 20009 0.6708456277630209
"053b0094" 150989 1.157 30008 150988 1.157 30007 0.956178857320858
"053b0094" 151053 2.396 50023 151052 2.396 50022 0.11119510090982554
"053b0094" 151146 4.225 100008 151145 4.225 100007 0.3678841181738663
"053b0094" 151147 4.225 100009 151146 4.225 100008 0.14027080730663422
"053b0094" 151282 6.715 140004 151281 6.715 140003 0.26295423286238534
"053b0094" 151283 6.715 140005 151282 6.715 140004 0.2629542290504308
"053b0094" 151286 6.745 140008 151285 6.745 140007 0.7796843638948393
"053b0094" 151289 6.757 140011 151288 6.757 140010 0.4353743958224778
"053b0094" 151295 6.788 140017 151294 6.788 140016 0.11119510090982554
"053b0094" 151296 6.788 140018 151295 6.788 140017 0.492063725303536
"053b0094" 151306 6.947 150001 151305 6.947 140027 0.5734087168007616
"073b0037" 188979 2.784 30101 188978 2.784 30100 0.8430439370088025
"027b0284" 98232 3.204 80002 98231 3.204 80001 0.1791233486444959
"027b0281" 97941 0.247 20011 97940 0.247 20010 0.5373777974092329
"027b0281" 98017 1.929 60006 98016 1.929 60005 0.6629022866821962
"077b0068" 198025 0.009 10004 198024 0.009 10003 0.46641611783877024
"077b0068" 198026 0.009 10005 198025 0.009 10004 0.5734310289101869
"077b0068" 198090 1.812 40018 198089 1.812 40017 0.5939189506722627
"077b0068" 198101 1.946 50002 198100 1.946 50001 0.503808988848464
"061b0051" 168176 1.114 40003 168175 1.114 40002 0.4664219581600769
"061b0051" 168245 2.592 90005 168244 2.592 90004 0.5724846462868899
"064b0234" 176567 0.746 30011 176566 0.746 30010 0.49153980162883293
"064b0234" 176576 0.801 30020 176575 0.801 30019 0.6228973428160252
"064b0234" 176750 3.986 130012 176749 3.986 130011 0.17908283980770429
"064b0234" 176781 4.363 150009 176780 4.363 150008 0.11119510090982554
"064b0234" 176784 4.369 150012 176783 4.369 150011 0.3944770082945002
"064b0234" 176831 5.14 170007 176830 5.14 170006 0.3508822217570299
"064b0234" 176832 5.14 170008 176831 5.14 170007 0.21052933311001795
"064b0234" 176835 5.148 170011 176834 5.148 170010 0.1790621767079438
"064b0234" 176836 5.148 170012 176835 5.148 170011 0.30623512668364533
"064b0234" 176961 7.075 210013 176960 7.075 210012 0.5259111249114828
"064b0234" 176986 7.676 230007 176985 7.676 230006 0.537092960190211
"064b0234" 176990 7.949 230011 176989 7.949 230010 0.7418266727009203
"064b0235" 177066 0.746 30011 177065 0.746 30010 0.49153980162883293
"064b0235" 177075 0.801 30020 177074 0.801 30019 0.6228973428160252
"064b0235" 177249 3.986 130012 177248 3.986 130011 0.17908283980770429
"064b0235" 177280 4.363 150009 177279 4.363 150008 0.11119510090982554
"064b0235" 177283 4.369 150012 177282 4.369 150011 0.3944770082945002
"064b0235" 177330 5.14 170007 177329 5.14 170006 0.3508822217570299
"064b0235" 177331 5.14 170008 177330 5.14 170007 0.21052933311001795
"064b0235" 177334 5.148 170011 177333 5.148 170010 0.1790621767079438
"064b0235" 177335 5.148 170012 177334 5.148 170011 0.30623512668364533
equal_shape_distance_same_coordinates WARNING 161

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 161 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`.
"092t0281" 234554 5.962 170001 234553 5.962 160013
"092t0289" 235310 5.962 170001 235309 5.962 160013
"064b0234" 176532 0.0 10002 176531 0.0 10001
"064b0234" 176669 2.387 90005 176668 2.387 90004
"064b0235" 177031 0.0 10002 177030 0.0 10001
"064b0235" 177168 2.387 90005 177167 2.387 90004
"010t0083" 77103 3.711 60010 77102 3.711 60009
"010t0083" 77120 4.051 60027 77119 4.051 60026
"010t0083" 77121 4.051 60028 77120 4.051 60027
"010t0083" 77231 7.464 120030 77230 7.464 120029
"056b0162" 157860 0.651 30005 157859 0.651 30004
"092t0053" 233142 3.609 110001 233141 3.609 100013
"008t0133" 64268 0.595 30002 64267 0.595 30001
"056b0164" 159232 0.651 30005 159231 0.651 30004
"051t0051" 147101 0.0 10002 147100 0.0 10001
"073b0054" 189509 1.982 60009 189508 1.982 60008
"062t0106" 174502 10.049 220002 174501 10.049 220001
"062t0100" 173570 8.645 200002 173569 8.645 200001
"008t0226" 68579 6.923 180002 68578 6.923 180001
"055t0055" 156969 2.584 70002 156968 2.584 70001
"055t0057" 157160 0.0 10002 157159 0.0 10001
"051t0022" 146794 0.0 10002 146793 0.0 10001
"074b0088" 192186 4.253 110018 192185 4.253 110017
"074b0083" 190219 4.253 110018 190218 4.253 110017
"051t0136" 147787 1.441 50002 147786 1.441 50001
"051t0139" 147934 1.441 50002 147933 1.441 50001
"045b0088" 129395 1.994 60002 129394 1.994 60001
"010t0075" 73033 2.635 50010 73032 2.635 50009
"010t0075" 73050 2.975 50027 73049 2.975 50026
"010t0075" 73051 2.975 50028 73050 2.975 50027
"010t0075" 73161 6.388 110030 73160 6.388 110029
"010t0074" 72664 2.431 60003 72663 2.431 60002
"010t0074" 72666 2.48 60005 72665 2.48 60004
"010t0074" 72706 3.305 70022 72705 3.305 70021
"010t0074" 72721 3.51 70037 72720 3.51 70036
"010t0079" 75861 8.135 150010 75860 8.135 150009
"010t0079" 75878 8.475 150027 75877 8.475 150026
"010t0079" 75879 8.475 150028 75878 8.475 150027
"010t0079" 75989 11.888 210030 75988 11.888 210029
"010t0077" 74268 2.973 80003 74267 2.973 80002
"010t0077" 74270 3.022 80005 74269 3.022 80004
"010t0077" 74310 3.847 90022 74309 3.847 90021
"010t0077" 74325 4.052 90037 74324 4.052 90036
"010t0076" 73466 2.98 80003 73465 2.98 80002
"010t0076" 73468 3.029 80005 73467 3.029 80004
"010t0076" 73508 3.854 90022 73507 3.854 90021
"010t0076" 73523 4.059 90037 73522 4.059 90036
"010t0082" 76659 2.98 80003 76658 2.98 80002
"010t0082" 76661 3.029 80005 76660 3.029 80004
"010t0082" 76701 3.854 90022 76700 3.854 90021
expired_calendar WARNING 4

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.
4 "313846005"
308 "314581002"
331 "314068004"
363 "312059003"
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 "20251212" "20260104" "20260111"
mixed_case_recommended_field WARNING 46754

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 46754 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" "LUXEMBOURG - PLEIADES" 20
"routes.txt" "route_long_name" "BRABANCONNE - KONKEL" 21
"routes.txt" "route_long_name" "DE BROUCKERE - HOF TEN BERG" 22
"routes.txt" "route_long_name" "DANSAERT - LOUISE" 23
"routes.txt" "route_long_name" "PORTE DE NAMUR - SAINTE-ANNE" 24
"routes.txt" "route_long_name" "SCHAERBEEK GARE - ESPLANADE" 25
"routes.txt" "route_long_name" "MAELBEEK - KONKEL" 26
"routes.txt" "route_long_name" "ALBERT - GARE DE LINKEBEEK" 27
"routes.txt" "route_long_name" "GARE CENTRALE - HEROS" 28
"routes.txt" "route_long_name" "MONTGOMERY - BAN-EIK" 29
"routes.txt" "route_long_name" "HEROS - TRANSVAAL" 30
"routes.txt" "route_long_name" "ROODEBEEK - VIADUC E40" 31
"routes.txt" "route_long_name" "HEROS - VIVIER D'OIE" 32
"routes.txt" "route_long_name" "MONTGOMERY - TERVUREN STATION" 33
"routes.txt" "route_long_name" "ROODEBEEK - SAINT-VINCENT" 34
"routes.txt" "route_long_name" "MOORTEBEEK - PANNENHUIS" 35
"routes.txt" "route_long_name" "HEEMBEEK - VILVOORDE STATION" 36
"routes.txt" "route_long_name" "ANNEESSENS - DECROLY" 37
"routes.txt" "route_long_name" "GARE DU MIDI - SIMONIS" 38
"routes.txt" "route_long_name" "GARE DU MIDI - LOT STATION" 39
"routes.txt" "route_long_name" "STADE - GARE DU MIDI" 40
"routes.txt" "route_long_name" "GARE CENTRALE - FOREST (BERVOETS)" 41
"routes.txt" "route_long_name" "WESTLAND SHOPPING - HOPITAL MILITAIRE" 42
"routes.txt" "route_long_name" "TRONE - FOREST (BERVOETS)" 43
"routes.txt" "route_long_name" "DA VINCI - ROGIER" 44
"routes.txt" "route_long_name" "SCHUMAN - BUDA" 45
"routes.txt" "route_long_name" "VILVOORDE STATION - ALBERT II" 46
"routes.txt" "route_long_name" "HOPITAL ETTERBEEK-IXELLES - BORDET STATION" 47
"routes.txt" "route_long_name" "AMBIORIX - UCCLE CALEVOET" 48
"routes.txt" "route_long_name" "GARE DU NORD - MONTGOMERY" 49
"routes.txt" "route_long_name" "EUROCONTROL - HEYSEL" 50
"routes.txt" "route_long_name" "GARE CENTRALE - CIMETIERE DE BRUXELLES" 51