GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-04T20:43:56Z,
for the dataset file:///shared/metro-de-madrid-esp_7f2b8581.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: 13
  • Shapes: 30
  • Stops: 1050
  • Trips: 120

Specification Compliance report

1264 notices reported (0 errors, 1066 warnings, 198 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 1

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.

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.
"4__6_2___1__IT_1" 34310 468.810489120607 8000001 34309 468.810489120607 7000197 2.82781360968493E-4
equal_shape_distance_same_coordinates WARNING 493

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 493 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`.
"4__2____1__IT_1" 14942 2.435449903292 2000001 14941 2.435449903292 1000008
"4__2____1__IT_1" 14944 3.523914565851 3000001 14943 3.523914565851 2000002
"4__2____1__IT_1" 14954 7.644011362344 4000001 14953 7.644011362344 3000010
"4__2____1__IT_1" 14962 13.984797962097 5000001 14961 13.984797962097 4000008
"4__2____1__IT_1" 14973 20.936336166815 6000001 14972 20.936336166815 5000011
"4__2____1__IT_1" 14995 28.000754330347 7000001 14994 28.000754330347 6000022
"4__2____1__IT_1" 15011 33.756746387326 8000001 15010 33.756746387326 7000016
"4__2____1__IT_1" 15022 36.171916664455 9000001 15021 36.171916664455 8000011
"4__2____1__IT_1" 15048 44.870578735064 10000001 15047 44.870578735064 9000026
"4__2____1__IT_1" 15100 66.116482249018 11000001 15099 66.116482249018 10000052
"4__2____1__IT_1" 15123 70.583880056479 12000001 15122 70.583880056479 11000023
"4__2____1__IT_1" 15154 76.548236077494 13000001 15153 76.548236077494 12000031
"4__2____1__IT_1" 15216 90.6019720951189 14000001 15215 90.6019720951189 13000062
"4__2____1__IT_1" 15285 104.007592935556 15000001 15284 104.007592935556 14000069
"4__2____1__IT_1" 15307 107.967111777214 16000001 15306 107.967111777214 15000022
"4__2____1__IT_1" 15352 120.659746947376 17000001 15351 120.659746947376 16000045
"4__2____1__IT_1" 15366 122.967548040897 18000001 15365 122.967548040897 17000014
"4__2____1__IT_1" 15393 133.439104837392 19000001 15392 133.439104837392 18000027
"4__12_2___1__IT_1" 12140 278.213660428297 2000001 12139 278.213660428297 1000162
"4__12_2___1__IT_1" 12212 330.320296314778 3000001 12211 330.320296314778 2000072
"4__12_2___1__IT_1" 12320 388.385001649731 4000001 12319 388.385001649731 3000108
"4__12_2___1__IT_1" 12375 406.614900451071 5000001 12374 406.614900451071 4000055
"4__12_2___1__IT_1" 12513 505.502207937012 6000001 12512 505.502207937012 5000138
"4__12_2___1__IT_1" 12551 523.718314367968 7000001 12550 523.718314367968 6000038
"4__12_2___1__IT_1" 12675 610.296131052247 8000001 12674 610.296131052247 7000124
"4__12_2___1__IT_1" 12744 646.622524803807 9000001 12743 646.622524803807 8000069
"4__12_2___1__IT_1" 12788 669.320459130294 10000001 12787 669.320459130294 9000044
"4__12_2___1__IT_1" 12966 803.805601409367 11000001 12965 803.805601409367 10000178
"4__12_2___1__IT_1" 13059 868.989032230823 12000001 13058 868.989032230823 11000093
"4__12_2___1__IT_1" 13188 936.591946044409 13000001 13187 936.591946044409 12000129
"4__12_2___1__IT_1" 13299 990.909363007351 14000001 13298 990.909363007351 13000111
"4__12_2___1__IT_1" 13375 1025.79864261322 15000001 13374 1025.79864261322 14000076
"4__12_2___1__IT_1" 13524 1219.6754810301 16000001 13523 1219.6754810301 15000149
"4__12_2___1__IT_1" 13653 1309.65290652659 17000001 13652 1309.65290652659 16000129
"4__12_2___1__IT_1" 13727 1340.97143902007 18000001 13726 1340.97143902007 17000074
"4__12_2___1__IT_1" 13760 1352.45132413421 19000001 13759 1352.45132413421 18000033
"4__12_2___1__IT_1" 13946 1553.02537285247 20000001 13945 1553.02537285247 19000186
"4__12_2___1__IT_1" 14097 1791.37444984232 21000001 14096 1791.37444984232 20000151
"4__12_2___1__IT_1" 14211 1899.11868713162 22000001 14210 1899.11868713162 21000114
"4__12_2___1__IT_1" 14299 1940.68435210505 23000001 14298 1940.68435210505 22000088
"4__12_2___1__IT_1" 14371 1964.93940933801 24000001 14370 1964.93940933801 23000072
"4__12_2___1__IT_1" 14507 2057.2218409318 25000001 14506 2057.2218409318 24000136
"4__12_2___1__IT_1" 14671 2230.04787189461 26000001 14670 2230.04787189461 25000164
"4__12_2___1__IT_1" 14792 2298.72236363094 27000001 14791 2298.72236363094 26000121
"4__12_2___1__IT_1" 14873 2348.23782143128 28000001 14872 2348.23782143128 27000081
"4__5____1__IT_1" 18972 2.140107001127 2000001 18971 2.140107001127 1000006
"4__5____1__IT_1" 18992 13.576134413721 3000001 18991 13.576134413721 2000020
"4__5____1__IT_1" 19459 253.980177125353 4000001 19458 253.980177125353 3000467
"4__5____1__IT_1" 19792 396.187975594663 5000001 19791 396.187975594663 4000333
"4__5____1__IT_1" 20281 624.487980330457 6000001 20280 624.487980330457 5000489
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 534

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 534 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" "PLAZA DE CASTILLA" 2
"stops.txt" "stop_name" "GRAN VIA" 13
"stops.txt" "stop_name" "TIRSO DE MOLINA" 23
"stops.txt" "stop_name" "ANTON MARTIN" 24
"stops.txt" "stop_name" "ESTACION DEL ARTE" 28
"stops.txt" "stop_name" "MENENDEZ PELAYO" 33
"stops.txt" "stop_name" "PUENTE DE VALLECAS" 42
"stops.txt" "stop_name" "NUEVA NUMANCIA" 48
"stops.txt" "stop_name" "BUENOS AIRES" 58
"stops.txt" "stop_name" "ALTO DEL ARENAL" 60
"stops.txt" "stop_name" "MIGUEL HERNANDEZ" 63
"stops.txt" "stop_name" "SIERRA DE GUADALUPE" 67
"stops.txt" "stop_name" "VILLA DE VALLECAS" 73
"stops.txt" "stop_name" "PINAR DE CHAMARTIN" 82
"stops.txt" "stop_name" "LA GAVIA" 87
"stops.txt" "stop_name" "LAS SUERTES" 90
"stops.txt" "stop_name" "CUATRO CAMINOS" 103
"stops.txt" "stop_name" "RIOS ROSAS" 108
"stops.txt" "stop_name" "GRAN VIA" 126
"stops.txt" "stop_name" "TIRSO DE MOLINA" 127
"stops.txt" "stop_name" "ANTON MARTIN" 128
"stops.txt" "stop_name" "ESTACION DEL ARTE" 129
"stops.txt" "stop_name" "MENENDEZ PELAYO" 130
"stops.txt" "stop_name" "PUENTE DE VALLECAS" 132
"stops.txt" "stop_name" "NUEVA NUMANCIA" 134
"stops.txt" "stop_name" "BUENOS AIRES" 136
"stops.txt" "stop_name" "ALTO DEL ARENAL" 137
"stops.txt" "stop_name" "MIGUEL HERNANDEZ" 138
"stops.txt" "stop_name" "SIERRA DE GUADALUPE" 139
"stops.txt" "stop_name" "VILLA DE VALLECAS" 140
"stops.txt" "stop_name" "PINAR DE CHAMARTIN" 142
"stops.txt" "stop_name" "LA GAVIA" 144
"stops.txt" "stop_name" "LAS SUERTES" 145
"stops.txt" "stop_name" "CUATRO CAMINOS" 150
"stops.txt" "stop_name" "RIOS ROSAS" 151
"stops.txt" "stop_name" "LA ELIPA" 154
"stops.txt" "stop_name" "MANUEL BECERRA" 160
"stops.txt" "stop_name" "PRINCIPE DE VERGARA" 171
"stops.txt" "stop_name" "LA ALMUDENA" 178
"stops.txt" "stop_name" "AVENIDA DE GUADALAJARA" 185
"stops.txt" "stop_name" "LAS ROSAS" 188
"stops.txt" "stop_name" "BANCO DE ESPAÑA" 190
"stops.txt" "stop_name" "SANTO DOMINGO" 199
"stops.txt" "stop_name" "SAN BERNARDO" 203
"stops.txt" "stop_name" "CUATRO CAMINOS" 213
"stops.txt" "stop_name" "LA ELIPA" 214
"stops.txt" "stop_name" "MANUEL BECERRA" 216
"stops.txt" "stop_name" "PRINCIPE DE VERGARA" 218
"stops.txt" "stop_name" "LA ALMUDENA" 220
"stops.txt" "stop_name" "AVENIDA DE GUADALAJARA" 222
stop_too_far_from_shape WARNING 17

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.
10 "4__2____1__IT_1" "4_I12-002_2023I12_1_1_4__2___" 285 "par_4_42" "CUATRO CAMINOS" [40.4458609286654,-3.70408128109006] 124.07617552378359
34 "4__6_1___1__IT_1" "4_I12-061_2023I12_1_1_4__6_1__" 881 "par_4_118" "AVENIDA DE AMERICA" [40.43729534621489,-3.677561060297904] 117.26025060130509
43 "4__7_A___2__IT_1" "4_I12-071_2023I12_2_1_4__7_A__" 1130 "par_4_146" "GUZMAN EL BUENO" [40.44661985854764,-3.713468343672474] 104.79216425542876
43 "4__7_A___2__IT_1" "4_I12-071_2023I12_2_1_4__7_A__" 1139 "par_4_137" "PUEBLO NUEVO" [40.435118425226605,-3.6441808232572015] 129.9666296887717
82 "4__10_A___1__IT_1" "4_I12-101_2023I12_1_1_4__10_A__" 1661 "par_4_189" "CHAMARTIN" [40.472450543562886,-3.684012469125851] 126.48036652184862
82 "4__10_A___1__IT_1" "4_I12-101_2023I12_1_1_4__10_A__" 1665 "par_4_193" "NUEVOS MINISTERIOS" [40.44652258604317,-3.691206874509462] 102.08496295263741
67 "4__9_A___2__IT_1" "4_I12-091_2023I12_2_1_4__9_A__" 1454 "par_4_170" "AVENIDA DE AMERICA" [40.43817203772449,-3.6790929343629384] 222.46755751806845
11 "4__2____2__IT_1" "4_I12-002_2023I12_2_1_4__2___" 286 "par_4_42" "CUATRO CAMINOS" [40.4458588740314,-3.7039800497457502] 123.65621615977535
59 "4__8____2__IT_1" "4_I12-008_2023I12_2_1_4__8___" 1364 "par_4_159" "AEROPUERTO T1-T2-T3" [40.46873137110155,-3.571667645636453] 180.27019629482544
2 "4__1____1__IT_1" "4_I12-001_2023I12_1_1_4__1___" 4 "par_4_261" "CHAMARTIN" [40.47340618067583,-3.68196752889251] 161.82984710271955
58 "4__8____1__IT_1" "4_I12-008_2023I12_1_1_4__8___" 1359 "par_4_159" "AEROPUERTO T1-T2-T3" [40.46873494494029,-3.57172509676343] 185.14486033933116
66 "4__9_A___1__IT_1" "4_I12-091_2023I12_1_1_4__9_A__" 1429 "par_4_170" "AVENIDA DE AMERICA" [40.438168961439246,-3.679035275596351] 217.57588562347365
38 "4__6_2___1__IT_1" "4_I12-062_2023I12_1_1_4__6_2__" 995 "par_4_118" "AVENIDA DE AMERICA" [40.43739875466805,-3.677557491749713] 109.21499311358679
42 "4__7_A___1__IT_1" "4_I12-071_2023I12_1_1_4__7_A__" 1104 "par_4_137" "PUEBLO NUEVO" [40.43491977648001,-3.6441554305620496] 139.81862722241087
42 "4__7_A___1__IT_1" "4_I12-071_2023I12_1_1_4__7_A__" 1113 "par_4_146" "GUZMAN EL BUENO" [40.44663315502553,-3.7135237259750293] 109.70622452444793
3 "4__1____2__IT_1" "4_I12-001_2023I12_2_1_4__1___" 65 "par_4_261" "CHAMARTIN" [40.47345071246294,-3.681968096939688] 166.50473806191025
83 "4__10_A___2__IT_1" "4_I12-101_2023I12_2_1_4__10_A__" 1696 "par_4_189" "CHAMARTIN" [40.47246280875069,-3.6840686697226297] 131.42330089314083
stop_without_stop_time WARNING 18

stop_without_stop_time

A stop in stops.txt is not referenced by any stop_times.stop_id.

Such stops are not used by any trip and normally do not provide user value. This notice may indicate a typo in stop_times.txt.

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.
231 "par_4_267" "ALMENDRALES"
234 "par_4_268" "HOSPITAL 12 DE OCTUBRE"
237 "par_4_269" "SAN FERMIN-ORCASUR"
239 "par_4_270" "CIUDAD DE LOS ANGELES"
243 "par_4_271" "VILLAVERDE BAJO CRUCE"
246 "par_4_272" "SAN CRISTOBAL"
249 "par_4_273" "VILLAVERDE ALTO"
252 "par_4_43" "LEGAZPI"
257 "par_4_44" "DELICIAS"
261 "par_4_45" "PALOS DE LA FRONTERA"
265 "par_4_46" "EMBAJADORES"
268 "par_4_47" "LAVAPIES"
269 "par_4_48" "SOL"
270 "par_4_49" "CALLAO"
278 "par_4_50" "PLAZA DE ESPAÑA"
285 "par_4_51" "VENTURA RODRIGUEZ"
288 "par_4_52" "ARGÜELLES"
294 "par_4_53" "MONCLOA"
unused_station INFO 198

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.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty stop. stopName (?) The name of the faulty stop.
915 "est_4_199" "LAGO"
914 "est_4_192" "SANTIAGO BERNABEU"
913 "est_4_191" "CUZCO"
954 "est_4_305" "LA FORTUNA"
843 "est_4_300" "RIVAS FUTURA"
501 "est_4_84" "RUBEN DARIO"
502 "est_4_86" "CHUECA"
753 "est_4_158" "FERIA DE MADRID"
927 "est_4_279" "LA MORALEJA"
925 "est_4_277" "RONDA DE LA COMUNICACION"
926 "est_4_278" "LA GRANJA"
503 "est_4_90" "LA LATINA"
720 "est_4_154" "PITIS"
923 "est_4_275" "MONTECARMELO"
924 "est_4_276" "LAS TABLAS"
309 "est_4_273" "VILLAVERDE ALTO"
718 "est_4_152" "LACOMA"
504 "est_4_91" "PUERTA DE TOLEDO"
719 "est_4_153" "ARROYOFRESNO"
922 "est_4_274" "TRES OLIVOS"
307 "est_4_271" "VILLAVERDE BAJO CRUCE"
506 "est_4_94" "MARQUES DE VADILLO"
716 "est_4_150" "PEÑAGRANDE"
308 "est_4_272" "SAN CRISTOBAL"
505 "est_4_93" "PIRAMIDES"
717 "est_4_151" "AVENIDA DE LA ILUSTRACION"
306 "est_4_270" "CIUDAD DE LOS ANGELES"
507 "est_4_95" "URGEL"
510 "est_4_98" "CARABANCHEL"
509 "est_4_97" "VISTA ALEGRE"
511 "est_4_99" "EUGENIA DE MONTIJO"
829 "est_4_169" "CRUZ DEL RAYO"
723 "est_4_288" "COSLADA CENTRAL"
724 "est_4_289" "LA RAMBLA"
828 "est_4_168" "CONCHA ESPINA"
721 "est_4_286" "ESTADIO METROPOLITANO"
826 "est_4_165" "DUQUE DE PASTRANA"
722 "est_4_287" "BARRIO DEL PUERTO"
827 "est_4_166" "PIO XII"
825 "est_4_163" "VENTILLA"
932 "est_4_284" "HOSPITAL INFANTA SOFIA"
823 "est_4_161" "HERRERA ORIA"
930 "est_4_282" "BAUNATAL"
824 "est_4_162" "BARRIO DEL PILAR"
931 "est_4_283" "REYES CATOLICOS"
928 "est_4_280" "MARQUES DE LA VALDAVIA"
754 "est_4_160" "BARAJAS"
929 "est_4_281" "MANUEL DE FALLA"
834 "est_4_178" "PAVONES"
835 "est_4_179" "VALDEBERNARDO"