oncf — Enhanced Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-10-02T20:32:39Z,
for the dataset file:///shared/oncf_f8561b73.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Busmaps.com
Publisher URL:
https://busmaps.com
Feed Language:
French
Feed Start Date:
2026-08-18
Feed End Date:
2027-12-31

Files included


  1. agency.txt
  2. calendar.txt
  3. feed_info.txt
  4. routes.txt
  5. shapes.txt
  6. stop_times.txt
  7. stops.txt
  8. translations.txt
  9. trips.txt

Counts


  • Agencies: 2
  • Blocks: 0
  • Routes: 48
  • Shapes: 114
  • Stops: 217
  • Trips: 352

Specification Compliance report

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

Notice Code Severity Total
fast_travel_between_consecutive_stops WARNING 32

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.
71 "4614-2017_S0058" "4614-10002_200_303" 216.10467012936724 183.68896960996216 782 0 "4614-303_RAIL" "Tanger Ville" "10:00:00" 783 1 "4614-250_RAIL" "Kenitra" "10:50:00"
67 "4614-2001_S0054" "4614-10002_200_303" 216.10467012936724 183.68896960996216 766 0 "4614-303_RAIL" "Tanger Ville" "06:00:00" 767 1 "4614-250_RAIL" "Kenitra" "06:50:00"
29 "4614-1021_S0008" "4614-10002_200_303" 224.9252689101577 183.68896960996216 357 2 "4614-250_RAIL" "Kenitra" "12:29:00" 358 3 "4614-303_RAIL" "Tanger Ville" "13:17:00"
39 "4614-1065_S0021" "4614-10002_200_303" 224.9252689101577 183.68896960996216 417 2 "4614-250_RAIL" "Kenitra" "23:29:00" 418 3 "4614-303_RAIL" "Tanger Ville" "24:17:00"
78 "4614-2041_S0065" "4614-10002_200_303" 216.10467012936724 183.68896960996216 844 0 "4614-303_RAIL" "Tanger Ville" "16:00:00" 845 1 "4614-250_RAIL" "Kenitra" "16:50:00"
10 "4614-2061_S0071" "4614-10002_200_303" 216.10467012936724 183.68896960996216 140 0 "4614-303_RAIL" "Tanger Ville" "21:00:00" 141 1 "4614-250_RAIL" "Kenitra" "21:50:00"
80 "4614-2049_S0067" "4614-10002_200_303" 216.10467012936724 183.68896960996216 852 0 "4614-303_RAIL" "Tanger Ville" "18:00:00" 853 1 "4614-250_RAIL" "Kenitra" "18:50:00"
70 "4614-2013_S0057" "4614-10002_200_303" 216.10467012936724 183.68896960996216 778 0 "4614-303_RAIL" "Tanger Ville" "09:00:00" 779 1 "4614-250_RAIL" "Kenitra" "09:50:00"
32 "4614-1033_S0011" "4614-10002_200_303" 224.9252689101577 183.68896960996216 389 2 "4614-250_RAIL" "Kenitra" "15:29:00" 390 3 "4614-303_RAIL" "Tanger Ville" "16:17:00"
33 "4614-1037_S0012" "4614-10002_200_303" 224.9252689101577 183.68896960996216 393 2 "4614-250_RAIL" "Kenitra" "16:29:00" 394 3 "4614-303_RAIL" "Tanger Ville" "17:17:00"
34 "4614-1041_S0014" "4614-10002_200_303" 224.9252689101577 183.68896960996216 397 2 "4614-250_RAIL" "Kenitra" "17:29:00" 398 3 "4614-303_RAIL" "Tanger Ville" "18:17:00"
76 "4614-2037_S0063" "4614-10002_200_303" 216.10467012936724 183.68896960996216 819 0 "4614-303_RAIL" "Tanger Ville" "15:00:00" 820 1 "4614-250_RAIL" "Kenitra" "15:50:00"
69 "4614-2009_S0056" "4614-10002_200_303" 216.10467012936724 183.68896960996216 774 0 "4614-303_RAIL" "Tanger Ville" "08:00:00" 775 1 "4614-250_RAIL" "Kenitra" "08:50:00"
73 "4614-2021_S0060" "4614-10002_200_303" 216.10467012936724 183.68896960996216 807 0 "4614-303_RAIL" "Tanger Ville" "11:00:00" 808 1 "4614-250_RAIL" "Kenitra" "11:50:00"
82 "4614-2057_S0069" "4614-10002_200_303" 216.10467012936724 183.68896960996216 860 0 "4614-303_RAIL" "Tanger Ville" "20:00:00" 861 1 "4614-250_RAIL" "Kenitra" "20:50:00"
24 "4614-1005_S0003" "4614-10002_200_303" 224.9252689101577 183.68896960996216 312 2 "4614-250_RAIL" "Kenitra" "08:29:00" 313 3 "4614-303_RAIL" "Tanger Ville" "09:17:00"
81 "4614-2053_S0068" "4614-10002_200_303" 216.10467012936724 183.68896960996216 856 0 "4614-303_RAIL" "Tanger Ville" "19:00:00" 857 1 "4614-250_RAIL" "Kenitra" "19:50:00"
28 "4614-1017_S0007" "4614-10002_200_303" 224.9252689101577 183.68896960996216 353 2 "4614-250_RAIL" "Kenitra" "11:29:00" 354 3 "4614-303_RAIL" "Tanger Ville" "12:17:00"
38 "4614-1057_S0018" "4614-10002_200_303" 224.9252689101577 183.68896960996216 413 2 "4614-250_RAIL" "Kenitra" "21:29:00" 414 3 "4614-303_RAIL" "Tanger Ville" "22:17:00"
75 "4614-2033_S0062" "4614-10002_200_303" 216.10467012936724 183.68896960996216 815 0 "4614-303_RAIL" "Tanger Ville" "14:00:00" 816 1 "4614-250_RAIL" "Kenitra" "14:50:00"
36 "4614-1049_S0016" "4614-10002_200_303" 224.9252689101577 183.68896960996216 405 2 "4614-250_RAIL" "Kenitra" "19:29:00" 406 3 "4614-303_RAIL" "Tanger Ville" "20:17:00"
4 "4614-1061_S0020" "4614-10002_200_303" 224.9252689101577 183.68896960996216 41 2 "4614-250_RAIL" "Kenitra" "22:29:00" 42 3 "4614-303_RAIL" "Tanger Ville" "23:17:00"
68 "4614-2005_S0055" "4614-10002_200_303" 216.10467012936724 183.68896960996216 770 0 "4614-303_RAIL" "Tanger Ville" "07:00:00" 771 1 "4614-250_RAIL" "Kenitra" "07:50:00"
35 "4614-1045_S0015" "4614-10002_200_303" 224.9252689101577 183.68896960996216 401 2 "4614-250_RAIL" "Kenitra" "18:29:00" 402 3 "4614-303_RAIL" "Tanger Ville" "19:17:00"
37 "4614-1053_S0017" "4614-10002_200_303" 224.9252689101577 183.68896960996216 409 2 "4614-250_RAIL" "Kenitra" "20:29:00" 410 3 "4614-303_RAIL" "Tanger Ville" "21:17:00"
30 "4614-1025_S0009" "4614-10002_200_303" 224.9252689101577 183.68896960996216 361 2 "4614-250_RAIL" "Kenitra" "13:29:00" 362 3 "4614-303_RAIL" "Tanger Ville" "14:17:00"
74 "4614-2025_S0061" "4614-10002_200_303" 216.10467012936724 183.68896960996216 811 0 "4614-303_RAIL" "Tanger Ville" "12:00:00" 812 1 "4614-250_RAIL" "Kenitra" "12:50:00"
25 "4614-1009_S0004" "4614-10002_200_303" 224.9252689101577 183.68896960996216 316 2 "4614-250_RAIL" "Kenitra" "09:29:00" 317 3 "4614-303_RAIL" "Tanger Ville" "10:17:00"
27 "4614-1013_S0006" "4614-10002_200_303" 224.9252689101577 183.68896960996216 349 2 "4614-250_RAIL" "Kenitra" "10:29:00" 350 3 "4614-303_RAIL" "Tanger Ville" "11:17:00"
79 "4614-2045_S0066" "4614-10002_200_303" 216.10467012936724 183.68896960996216 848 0 "4614-303_RAIL" "Tanger Ville" "17:00:00" 849 1 "4614-250_RAIL" "Kenitra" "17:50:00"
84 "4614-2065_S0072" "4614-10002_200_303" 216.10467012936724 183.68896960996216 888 0 "4614-303_RAIL" "Tanger Ville" "22:00:00" 889 1 "4614-250_RAIL" "Kenitra" "22:50:00"
23 "4614-1001_S0002" "4614-10002_200_303" 224.9252689101577 183.68896960996216 308 2 "4614-250_RAIL" "Kenitra" "07:29:00" 309 3 "4614-303_RAIL" "Tanger Ville" "08:17:00"
fast_travel_between_far_stops WARNING 32

fast_travel_between_far_stops

A transit vehicle moves too fast between two far stops.

Two stops are considered "far" if they are more than 10 km apart. This normally indicates a more serious problem than too fast travel between consecutive stops.

The speed threshold depends on route type and are the same as fast_travel_between_consecutive_stops.

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.
71 "4614-2017_S0058" "4614-10002_200_303" 216.10467012936724 183.68896960996216 782 0 "4614-303_RAIL" "Tanger Ville" "10:00:00" 783 1 "4614-250_RAIL" "Kenitra" "10:50:00"
67 "4614-2001_S0054" "4614-10002_200_303" 216.10467012936724 183.68896960996216 766 0 "4614-303_RAIL" "Tanger Ville" "06:00:00" 767 1 "4614-250_RAIL" "Kenitra" "06:50:00"
29 "4614-1021_S0008" "4614-10002_200_303" 224.9252689101577 183.68896960996216 357 2 "4614-250_RAIL" "Kenitra" "12:29:00" 358 3 "4614-303_RAIL" "Tanger Ville" "13:17:00"
39 "4614-1065_S0021" "4614-10002_200_303" 224.9252689101577 183.68896960996216 417 2 "4614-250_RAIL" "Kenitra" "23:29:00" 418 3 "4614-303_RAIL" "Tanger Ville" "24:17:00"
78 "4614-2041_S0065" "4614-10002_200_303" 216.10467012936724 183.68896960996216 844 0 "4614-303_RAIL" "Tanger Ville" "16:00:00" 845 1 "4614-250_RAIL" "Kenitra" "16:50:00"
10 "4614-2061_S0071" "4614-10002_200_303" 216.10467012936724 183.68896960996216 140 0 "4614-303_RAIL" "Tanger Ville" "21:00:00" 141 1 "4614-250_RAIL" "Kenitra" "21:50:00"
80 "4614-2049_S0067" "4614-10002_200_303" 216.10467012936724 183.68896960996216 852 0 "4614-303_RAIL" "Tanger Ville" "18:00:00" 853 1 "4614-250_RAIL" "Kenitra" "18:50:00"
70 "4614-2013_S0057" "4614-10002_200_303" 216.10467012936724 183.68896960996216 778 0 "4614-303_RAIL" "Tanger Ville" "09:00:00" 779 1 "4614-250_RAIL" "Kenitra" "09:50:00"
32 "4614-1033_S0011" "4614-10002_200_303" 224.9252689101577 183.68896960996216 389 2 "4614-250_RAIL" "Kenitra" "15:29:00" 390 3 "4614-303_RAIL" "Tanger Ville" "16:17:00"
33 "4614-1037_S0012" "4614-10002_200_303" 224.9252689101577 183.68896960996216 393 2 "4614-250_RAIL" "Kenitra" "16:29:00" 394 3 "4614-303_RAIL" "Tanger Ville" "17:17:00"
34 "4614-1041_S0014" "4614-10002_200_303" 224.9252689101577 183.68896960996216 397 2 "4614-250_RAIL" "Kenitra" "17:29:00" 398 3 "4614-303_RAIL" "Tanger Ville" "18:17:00"
76 "4614-2037_S0063" "4614-10002_200_303" 216.10467012936724 183.68896960996216 819 0 "4614-303_RAIL" "Tanger Ville" "15:00:00" 820 1 "4614-250_RAIL" "Kenitra" "15:50:00"
69 "4614-2009_S0056" "4614-10002_200_303" 216.10467012936724 183.68896960996216 774 0 "4614-303_RAIL" "Tanger Ville" "08:00:00" 775 1 "4614-250_RAIL" "Kenitra" "08:50:00"
73 "4614-2021_S0060" "4614-10002_200_303" 216.10467012936724 183.68896960996216 807 0 "4614-303_RAIL" "Tanger Ville" "11:00:00" 808 1 "4614-250_RAIL" "Kenitra" "11:50:00"
82 "4614-2057_S0069" "4614-10002_200_303" 216.10467012936724 183.68896960996216 860 0 "4614-303_RAIL" "Tanger Ville" "20:00:00" 861 1 "4614-250_RAIL" "Kenitra" "20:50:00"
24 "4614-1005_S0003" "4614-10002_200_303" 224.9252689101577 183.68896960996216 312 2 "4614-250_RAIL" "Kenitra" "08:29:00" 313 3 "4614-303_RAIL" "Tanger Ville" "09:17:00"
81 "4614-2053_S0068" "4614-10002_200_303" 216.10467012936724 183.68896960996216 856 0 "4614-303_RAIL" "Tanger Ville" "19:00:00" 857 1 "4614-250_RAIL" "Kenitra" "19:50:00"
28 "4614-1017_S0007" "4614-10002_200_303" 224.9252689101577 183.68896960996216 353 2 "4614-250_RAIL" "Kenitra" "11:29:00" 354 3 "4614-303_RAIL" "Tanger Ville" "12:17:00"
38 "4614-1057_S0018" "4614-10002_200_303" 224.9252689101577 183.68896960996216 413 2 "4614-250_RAIL" "Kenitra" "21:29:00" 414 3 "4614-303_RAIL" "Tanger Ville" "22:17:00"
75 "4614-2033_S0062" "4614-10002_200_303" 216.10467012936724 183.68896960996216 815 0 "4614-303_RAIL" "Tanger Ville" "14:00:00" 816 1 "4614-250_RAIL" "Kenitra" "14:50:00"
36 "4614-1049_S0016" "4614-10002_200_303" 224.9252689101577 183.68896960996216 405 2 "4614-250_RAIL" "Kenitra" "19:29:00" 406 3 "4614-303_RAIL" "Tanger Ville" "20:17:00"
4 "4614-1061_S0020" "4614-10002_200_303" 224.9252689101577 183.68896960996216 41 2 "4614-250_RAIL" "Kenitra" "22:29:00" 42 3 "4614-303_RAIL" "Tanger Ville" "23:17:00"
68 "4614-2005_S0055" "4614-10002_200_303" 216.10467012936724 183.68896960996216 770 0 "4614-303_RAIL" "Tanger Ville" "07:00:00" 771 1 "4614-250_RAIL" "Kenitra" "07:50:00"
35 "4614-1045_S0015" "4614-10002_200_303" 224.9252689101577 183.68896960996216 401 2 "4614-250_RAIL" "Kenitra" "18:29:00" 402 3 "4614-303_RAIL" "Tanger Ville" "19:17:00"
37 "4614-1053_S0017" "4614-10002_200_303" 224.9252689101577 183.68896960996216 409 2 "4614-250_RAIL" "Kenitra" "20:29:00" 410 3 "4614-303_RAIL" "Tanger Ville" "21:17:00"
30 "4614-1025_S0009" "4614-10002_200_303" 224.9252689101577 183.68896960996216 361 2 "4614-250_RAIL" "Kenitra" "13:29:00" 362 3 "4614-303_RAIL" "Tanger Ville" "14:17:00"
74 "4614-2025_S0061" "4614-10002_200_303" 216.10467012936724 183.68896960996216 811 0 "4614-303_RAIL" "Tanger Ville" "12:00:00" 812 1 "4614-250_RAIL" "Kenitra" "12:50:00"
25 "4614-1009_S0004" "4614-10002_200_303" 224.9252689101577 183.68896960996216 316 2 "4614-250_RAIL" "Kenitra" "09:29:00" 317 3 "4614-303_RAIL" "Tanger Ville" "10:17:00"
27 "4614-1013_S0006" "4614-10002_200_303" 224.9252689101577 183.68896960996216 349 2 "4614-250_RAIL" "Kenitra" "10:29:00" 350 3 "4614-303_RAIL" "Tanger Ville" "11:17:00"
79 "4614-2045_S0066" "4614-10002_200_303" 216.10467012936724 183.68896960996216 848 0 "4614-303_RAIL" "Tanger Ville" "17:00:00" 849 1 "4614-250_RAIL" "Kenitra" "17:50:00"
84 "4614-2065_S0072" "4614-10002_200_303" 216.10467012936724 183.68896960996216 888 0 "4614-303_RAIL" "Tanger Ville" "22:00:00" 889 1 "4614-250_RAIL" "Kenitra" "22:50:00"
23 "4614-1001_S0002" "4614-10002_200_303" 224.9252689101577 183.68896960996216 308 2 "4614-250_RAIL" "Kenitra" "07:29:00" 309 3 "4614-303_RAIL" "Tanger Ville" "08:17:00"
unexpected_enum_value WARNING 48

unexpected_enum_value

An enum has an unexpected value.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row number of the faulty record. fieldName (?) The name of the field where the error occurred. fieldValue (?) Faulty value.
"routes.txt" 2 "route_type" 101
"routes.txt" 3 "route_type" 202
"routes.txt" 4 "route_type" 202
"routes.txt" 5 "route_type" 202
"routes.txt" 6 "route_type" 202
"routes.txt" 7 "route_type" 202
"routes.txt" 8 "route_type" 202
"routes.txt" 9 "route_type" 202
"routes.txt" 10 "route_type" 202
"routes.txt" 11 "route_type" 202
"routes.txt" 12 "route_type" 202
"routes.txt" 13 "route_type" 202
"routes.txt" 14 "route_type" 202
"routes.txt" 15 "route_type" 202
"routes.txt" 16 "route_type" 202
"routes.txt" 17 "route_type" 202
"routes.txt" 18 "route_type" 202
"routes.txt" 19 "route_type" 202
"routes.txt" 20 "route_type" 202
"routes.txt" 21 "route_type" 202
"routes.txt" 22 "route_type" 202
"routes.txt" 23 "route_type" 202
"routes.txt" 24 "route_type" 202
"routes.txt" 25 "route_type" 202
"routes.txt" 26 "route_type" 202
"routes.txt" 27 "route_type" 202
"routes.txt" 28 "route_type" 202
"routes.txt" 29 "route_type" 202
"routes.txt" 30 "route_type" 109
"routes.txt" 31 "route_type" 109
"routes.txt" 32 "route_type" 109
"routes.txt" 33 "route_type" 109
"routes.txt" 34 "route_type" 102
"routes.txt" 35 "route_type" 102
"routes.txt" 36 "route_type" 102
"routes.txt" 37 "route_type" 102
"routes.txt" 38 "route_type" 102
"routes.txt" 39 "route_type" 102
"routes.txt" 40 "route_type" 102
"routes.txt" 41 "route_type" 102
"routes.txt" 42 "route_type" 102
"routes.txt" 43 "route_type" 102
"routes.txt" 44 "route_type" 102
"routes.txt" 45 "route_type" 102
"routes.txt" 46 "route_type" 102
"routes.txt" 47 "route_type" 102
"routes.txt" 48 "route_type" 102
"routes.txt" 49 "route_type" 102