GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2025-12-12T18:08:40Z,
for the dataset file:///shared/metro-ligero.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


  • Consorcio Regional de Transportes de Madrid

Feed Info


Publisher Name:
Consorcio Regional de Transportes de Madrid
Publisher URL:
https://www.crtm.es
Feed Email:
N/A
Feed Language:
Spanish
Feed Start Date:
N/A
Feed End Date:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. fare_attributes.txt
  5. fare_rules.txt
  6. feed_info.txt
  7. frequencies.txt
  8. routes.txt
  9. shapes.txt
  10. stop_times.txt
  11. stops.txt
  12. trips.txt

Counts


  • Agencies: 1
  • Blocks: 0
  • Routes: 4
  • Shapes: 8
  • Stops: 86
  • Trips: 3001

Specification Compliance report

6175 notices reported (0 errors, 6162 warnings, 13 infos)

Notice Code Severity Total
equal_shape_distance_same_coordinates WARNING 92

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 92 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`.
"10__51____1__IT_1" 3658 5.312010783316 2000001 3657 5.312010783316 1000016
"10__51____1__IT_1" 3703 15.842602521016 3000001 3702 15.842602521016 2000045
"10__51____1__IT_1" 3803 54.242519329153 4000001 3802 54.242519329153 3000100
"10__51____1__IT_1" 3845 64.245634736999 5000001 3844 64.245634736999 4000042
"10__51____1__IT_1" 3892 78.736291200265 6000001 3891 78.736291200265 5000047
"10__51____1__IT_1" 3943 94.963084515472 7000001 3942 94.963084515472 6000051
"10__51____1__IT_1" 4024 128.558424836788 8000001 4023 128.558424836788 7000081
"10__3____1__IT_1" 1378 16.554443106596 2000001 1377 16.554443106596 1000043
"10__3____1__IT_1" 1410 28.605202242477 3000001 1409 28.605202242477 2000032
"10__3____1__IT_1" 1429 33.341844371759 4000001 1428 33.341844371759 3000019
"10__3____1__IT_1" 1481 58.559206251859 5000001 1480 58.559206251859 4000052
"10__3____1__IT_1" 1549 105.585459157375 6000001 1548 105.585459157375 5000068
"10__3____1__IT_1" 1628 194.536967717494 7000001 1627 194.536967717494 6000079
"10__3____1__IT_1" 1657 201.890208995923 8000001 1656 201.890208995923 7000029
"10__3____1__IT_1" 1683 214.150453067206 9000001 1682 214.150453067206 8000026
"10__3____1__IT_1" 1721 254.412206901639 10000001 1720 254.412206901639 9000038
"10__3____1__IT_1" 1793 335.333799059917 11000001 1792 335.333799059917 10000072
"10__3____1__IT_1" 1825 344.541622639191 12000001 1824 344.541622639191 11000032
"10__3____1__IT_1" 1867 356.451390351363 13000001 1866 356.451390351363 12000042
"10__3____1__IT_1" 1886 361.895306593007 14000001 1885 361.895306593007 13000019
"10__3____1__IT_1" 1920 370.037595455738 15000001 1919 370.037595455738 14000034
"10__2____2__IT_1" 691 20.962823332544 2000001 690 20.962823332544 1000057
"10__2____2__IT_1" 743 36.894577043262 3000001 742 36.894577043262 2000052
"10__2____2__IT_1" 793 52.673043124106 4000001 792 52.673043124106 3000050
"10__2____2__IT_1" 870 75.04748996116 5000001 869 75.04748996116 4000077
"10__2____2__IT_1" 897 81.887214518464 6000001 896 81.887214518464 5000027
"10__2____2__IT_1" 1010 150.314865795866 7000001 1009 150.314865795866 6000113
"10__2____2__IT_1" 1053 160.611006601692 8000001 1052 160.611006601692 7000043
"10__2____2__IT_1" 1137 193.548228598309 9000001 1136 193.548228598309 8000084
"10__2____2__IT_1" 1198 208.798778341013 10000001 1197 208.798778341013 9000061
"10__2____2__IT_1" 1233 217.746873012612 11000001 1232 217.746873012612 10000035
"10__2____2__IT_1" 1276 230.010218172207 12000001 1275 230.010218172207 11000043
"10__51____2__IT_1" 4045 2.608117988896 2000001 4044 2.608117988896 1000009
"10__51____2__IT_1" 4120 56.860551743445 3000001 4119 56.860551743445 2000075
"10__51____2__IT_1" 4147 63.359342198962 4000001 4146 63.359342198962 3000027
"10__51____2__IT_1" 4189 78.340769531698 5000001 4188 78.340769531698 4000042
"10__51____2__IT_1" 4228 87.291232489578 6000001 4227 87.291232489578 5000039
"10__51____2__IT_1" 4297 115.06850621632 7000001 4296 115.06850621632 6000069
"10__51____2__IT_1" 4332 123.333483295693 8000001 4331 123.333483295693 7000035
"10__4_1___1__IT_1" 2594 1.361260725035 2000001 2593 1.361260725035 1000006
"10__4_1___1__IT_1" 2658 20.627377315213 3000001 2657 20.627377315213 2000064
"10__4_1___1__IT_1" 2751 78.705064475295 4000001 2750 78.705064475295 3000093
"10__4_1___1__IT_1" 2785 82.465272710107 5000001 2784 82.465272710107 4000034
"10__4_1___1__IT_1" 2829 91.991126014327 6000001 2828 91.991126014327 5000044
"10__4_1___1__IT_1" 2874 106.942776056002 7000001 2873 106.942776056002 6000045
"10__4_1___1__IT_1" 2899 112.169289478959 8000001 2898 112.169289478959 7000025
"10__4_1___1__IT_1" 2934 117.774775968099 9000001 2933 117.774775968099 8000035
"10__4_1___1__IT_1" 2982 129.929303066705 10000001 2981 129.929303066705 9000048
"10__4_1___1__IT_1" 2999 131.712617680238 11000001 2998 131.712617680238 10000017
"10__4_1___1__IT_1" 3048 149.507064079107 12000001 3047 149.507064079107 11000049
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
missing_recommended_field WARNING 2

missing_recommended_field

A recommended field is missing.

The given field has no value in some input row, even though values are recommended.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) The name of the missing field.
"feed_info.txt" 2 "feed_start_date"
"feed_info.txt" 2 "feed_end_date"
mixed_case_recommended_field WARNING 6065

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 6065 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.
"stops.txt" "stop_name" "PINAR DE CHAMARTIN" 2
"stops.txt" "stop_name" "FUENTE DE LA MORA" 3
"stops.txt" "stop_name" "VIRGEN DEL CORTIJO" 8
"stops.txt" "stop_name" "ANTONIO SAURA" 11
"stops.txt" "stop_name" "ALVAREZ DE VILLAAMIL" 13
"stops.txt" "stop_name" "BLASCO IBAÑEZ" 15
"stops.txt" "stop_name" "MARIA TUDOR" 17
"stops.txt" "stop_name" "PALAS DE REY" 19
"stops.txt" "stop_name" "LAS TABLAS" 20
"stops.txt" "stop_name" "PINAR DE CHAMARTIN" 21
"stops.txt" "stop_name" "FUENTE DE LA MORA" 22
"stops.txt" "stop_name" "VIRGEN DEL CORTIJO" 23
"stops.txt" "stop_name" "ANTONIO SAURA" 24
"stops.txt" "stop_name" "ALVAREZ DE VILLAAMIL" 25
"stops.txt" "stop_name" "BLASCO IBAÑEZ" 26
"stops.txt" "stop_name" "MARIA TUDOR" 27
"stops.txt" "stop_name" "PALAS DE REY" 28
"stops.txt" "stop_name" "LAS TABLAS" 29
"stops.txt" "stop_name" "COLONIA JARDIN" 30
"stops.txt" "stop_name" "PRADO DE LA VEGA" 31
"stops.txt" "stop_name" "COLONIA DE LOS ANGELES" 32
"stops.txt" "stop_name" "PRADO DEL REY" 33
"stops.txt" "stop_name" "SOMOSAGUAS SUR" 34
"stops.txt" "stop_name" "SOMOSAGUAS CENTRO" 37
"stops.txt" "stop_name" "POZUELO OESTE" 38
"stops.txt" "stop_name" "DOS CASTILLAS" 40
"stops.txt" "stop_name" "CAMPUS DE SOMOSAGUAS" 41
"stops.txt" "stop_name" "AVENIDA DE EUROPA" 42
"stops.txt" "stop_name" "ESTACION DE ARAVACA" 46
"stops.txt" "stop_name" "COLONIA JARDIN" 47
"stops.txt" "stop_name" "SOMOSAGUAS SUR" 48
"stops.txt" "stop_name" "AVENIDA DE EUROPA" 49
"stops.txt" "stop_name" "COLONIA JARDIN" 51
"stops.txt" "stop_name" "CIUDAD DE LA IMAGEN" 52
"stops.txt" "stop_name" "JOSE ISBERT" 53
"stops.txt" "stop_name" "CIUDAD DEL CINE" 54
"stops.txt" "stop_name" "VENTORRO DEL CANO" 58
"stops.txt" "stop_name" "PRADO DEL ESPINO" 59
"stops.txt" "stop_name" "FERIAL DE BOADILLA" 61
"stops.txt" "stop_name" "BOADILLA CENTRO" 62
"stops.txt" "stop_name" "NUEVO MUNDO" 63
"stops.txt" "stop_name" "SIGLO XXI" 64
"stops.txt" "stop_name" "INFANTE DON LUIS" 65
"stops.txt" "stop_name" "PUERTA DE BOADILLA" 66
"stops.txt" "stop_name" "PLAZA DE TOROS" 69
"stops.txt" "stop_name" "JULIO ROMERO DE TORRES" 70
"stops.txt" "stop_name" "LA BALLENA" 71
"stops.txt" "stop_name" "PARLA CENTRO - BULEVAR NORTE" 72
"stops.txt" "stop_name" "IGLESIA CENTRO" 73
"stops.txt" "stop_name" "BULEVAR SUR" 74
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.
2 "10__51____1__IT_1" "10_I12-510_2023I12_00:03:00_1_115_10__51___" 2 "par_10_1" "PINAR DE CHAMARTIN" [40.48108821895901,-3.66633508184007] 113.75734087227728
3 "10__51____2__IT_1" "10_I12-510_2023I12_00:03:00_2_115_10__51___" 19 "par_10_1" "PINAR DE CHAMARTIN" [40.4811055941118,-3.6663628119313607] 114.70425496493934
unused_station INFO 13

unused_station

Unused station.

A stop has location_type STATION (1) but does not appear in any stop's parent_station.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
26 "est_10_6" "BLASCO IBAÑEZ"
25 "est_10_5" "ALVAREZ DE VILLAAMIL"
24 "est_10_4" "ANTONIO SAURA"
23 "est_10_3" "VIRGEN DEL CORTIJO"
22 "est_10_2" "FUENTE DE LA MORA"
21 "est_10_1" "PINAR DE CHAMARTIN"
68 "est_10_29" "MONTEPRINCIPE"
29 "est_10_9" "LAS TABLAS"
48 "est_10_14" "SOMOSAGUAS SUR"
28 "est_10_8" "PALAS DE REY"
27 "est_10_7" "MARIA TUDOR"
50 "est_10_22" "BERNA"
49 "est_10_21" "AVENIDA DE EUROPA"