GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-23T20:18:10Z,
for the dataset file:///shared/metro_3dd81e3f.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


  • Metropolitan Transit Authority of Harris County

Feed Info


Publisher Name:
Metropolitan Transit Authority of Harris County
Publisher URL:
http://www.ridemetro.org
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2026-02-22
Feed End Date:
2026-06-06

Files included


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

Counts


  • Agencies: 1
  • Blocks: 2127
  • Routes: 115
  • Shapes: 347
  • Stops: 8806
  • Trips: 22142

Specification Compliance report

18736 notices reported (0 errors, 18734 warnings, 2 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 211

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 211 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.
"282391" 64931 10.9931 319 64930 10.9931 318 0.8765795519686573
"282391" 64933 11.1301 321 64932 11.1301 320 0.2898363522485931
"282388" 62741 7.8402 210 62740 7.8402 209 0.730082908055616
"282388" 62743 7.9342 212 62742 7.9342 211 0.8964515412160818
"282388" 62753 8.5974 222 62752 8.5974 221 0.4848381379273324
"282388" 62755 8.6924 224 62754 8.6924 223 0.24241874129528518
"282385" 61321 1.9855 79 61320 1.9855 78 0.34727757049293073
"282385" 61323 2.0066 81 61322 2.0066 80 0.8913326695258973
"282386" 62005 7.8372 209 62004 7.8372 208 0.730082908055616
"282386" 62007 7.9312 211 62006 7.9312 210 0.8964515412160818
"282386" 62017 8.5944 221 62016 8.5944 220 0.4848381379273324
"282386" 62019 8.6895 223 62018 8.6895 222 0.24241874129528518
"282383" 61154 13.4028 432 61153 13.4028 431 0.8913326695258973
"282383" 61156 13.424 434 61155 13.424 433 0.34727757049293073
"282381" 60235 13.6642 447 60234 13.6642 446 0.5794930981245809
"282381" 60721 28.7057 933 60720 28.7057 932 0.3473163511290764
"282490" 125580 23.9188 597 125579 23.9188 596 0.8019709323313938
"282490" 125582 23.957 599 125581 23.957 598 0.910287130758971
"282489" 124751 23.7292 636 124750 23.7292 635 0.8019709323313938
"282489" 124753 23.7674 638 124752 23.7674 637 0.910287130758971
"282486" 122704 7.666 193 122703 7.666 192 0.910287130758971
"282486" 122706 7.7042 195 122705 7.7042 194 0.8019709323313938
"282487" 123530 7.666 193 123529 7.666 192 0.910287130758971
"282487" 123532 7.7042 195 123531 7.7042 194 0.8019709323313938
"282482" 120445 0.563 16 120444 0.563 15 0.8688910665071186
"282483" 121272 0.563 16 121271 0.563 15 0.8688910665071186
"282505" 138229 8.2787 330 138228 8.2787 329 0.6741158313982515
"282505" 138231 8.3318 332 138230 8.3318 331 0.11119510090982554
"282506" 139725 28.4608 754 139724 28.4608 753 0.11119510090982554
"282506" 139727 28.514 756 139726 28.514 755 0.6741158313982515
"282614" 210361 18.6654 500 210360 18.6654 499 0.31037172525509554
"282614" 210363 18.6838 502 210362 18.6838 501 0.6671706068736016
"282612" 208680 13.6879 207 208679 13.6879 206 0.6671706068736016
"282612" 208682 13.7063 209 208681 13.7063 208 0.31037172525509554
"282297" 2014 18.5078 462 2013 18.5078 461 0.9509043783899461
"282297" 2016 18.5908 464 2015 18.5908 463 0.8831004446865949
"282439" 92124 4.2907 157 92123 4.2907 156 0.6741139532422422
"282439" 92126 4.3057 159 92125 4.3057 158 0.6741139718746043
"282439" 92695 21.4497 728 92694 21.4497 727 0.11119510161714974
"282439" 92697 21.5017 730 92696 21.5017 729 0.8305998312103255
"282437" 90731 22.2174 668 90730 22.2174 667 0.6741139718746043
"282437" 90733 22.2324 670 90732 22.2324 669 0.6741139532422422
"282438" 91544 22.2174 668 91543 22.2174 667 0.6741139718746043
"282438" 91546 22.2324 670 91545 22.2324 669 0.6741139532422422
"282556" 173098 16.1526 486 173097 16.1526 485 0.772182476847723
"282556" 173100 16.1701 488 173099 16.1701 487 0.4848672432962581
"282436" 89640 22.2174 668 89639 22.2174 667 0.6741139718746043
"282436" 89642 22.2324 670 89641 22.2324 669 0.6741139532422422
"282433" 87910 14.4943 304 87909 14.4943 303 0.6268377435519649
"282433" 87913 14.6473 307 87912 14.6473 306 0.6846260228030563
expired_calendar WARNING 3

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.
8 "824"
9 "825"
10 "826"
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
mixed_case_recommended_field WARNING 18435

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 18435 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.
"trips.txt" "trip_headsign" "TMC TC" 2
"trips.txt" "trip_headsign" "TMC TC" 3
"trips.txt" "trip_headsign" "TMC TC" 4
"trips.txt" "trip_headsign" "TMC TC" 5
"trips.txt" "trip_headsign" "TMC TC" 6
"trips.txt" "trip_headsign" "TMC TC" 7
"trips.txt" "trip_headsign" "TMC TC" 8
"trips.txt" "trip_headsign" "TMC TC" 9
"trips.txt" "trip_headsign" "TMC TC" 10
"trips.txt" "trip_headsign" "TMC TC" 11
"trips.txt" "trip_headsign" "TMC TC" 12
"trips.txt" "trip_headsign" "TMC TC" 13
"trips.txt" "trip_headsign" "TMC TC" 14
"trips.txt" "trip_headsign" "TMC TC" 15
"trips.txt" "trip_headsign" "TMC TC" 16
"trips.txt" "trip_headsign" "TMC TC" 17
"trips.txt" "trip_headsign" "TMC TC" 18
"trips.txt" "trip_headsign" "TMC TC" 19
"trips.txt" "trip_headsign" "TMC TC" 20
"trips.txt" "trip_headsign" "TMC TC" 21
"trips.txt" "trip_headsign" "TMC TC" 22
"trips.txt" "trip_headsign" "TMC TC" 23
"trips.txt" "trip_headsign" "TMC TC" 24
"trips.txt" "trip_headsign" "TMC TC" 25
"trips.txt" "trip_headsign" "TMC TC" 26
"trips.txt" "trip_headsign" "TMC TC" 27
"trips.txt" "trip_headsign" "TMC TC" 28
"trips.txt" "trip_headsign" "TMC TC" 29
"trips.txt" "trip_headsign" "TMC TC" 30
"trips.txt" "trip_headsign" "TMC TC" 31
"trips.txt" "trip_headsign" "TMC TC" 32
"trips.txt" "trip_headsign" "TMC TC" 33
"trips.txt" "trip_headsign" "TMC TC" 34
"trips.txt" "trip_headsign" "TMC TC" 35
"trips.txt" "trip_headsign" "TMC TC" 36
"trips.txt" "trip_headsign" "TMC TC" 37
"trips.txt" "trip_headsign" "TMC TC" 38
"trips.txt" "trip_headsign" "TMC TC" 39
"trips.txt" "trip_headsign" "TMC TC" 40
"trips.txt" "trip_headsign" "TMC TC" 41
"trips.txt" "trip_headsign" "TMC TC" 42
"trips.txt" "trip_headsign" "TMC TC" 43
"trips.txt" "trip_headsign" "TMC TC" 44
"trips.txt" "trip_headsign" "TMC TC" 45
"trips.txt" "trip_headsign" "TMC TC" 46
"trips.txt" "trip_headsign" "TMC TC" 47
"trips.txt" "trip_headsign" "TMC TC" 48
"trips.txt" "trip_headsign" "TMC TC" 49
"trips.txt" "trip_headsign" "TMC TC" 50
"trips.txt" "trip_headsign" "TMC TC" 51
same_name_and_description_for_stop WARNING 59

same_name_and_description_for_stop

Same name and description for stop.

The GTFS spec defines stops.txt stop_description as:

Description of the location that provides useful, quality information. Do not simply duplicate the name of the location.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. stopId (?) The id of the faulty record. stopDesc (?) The faulty record's `stop_desc`.
562 "929" "ALMEDA MALL"
1443 "2360" "HOUSTON NORTHWEST HOSPITAL"
1444 "2361" "HOUSTON NORTHWEST HOSPITAL"
4568 "6809" "LSC UNIVERSITY PARK 2"
7116 "10567" "HOBBY AIRPORT"
7187 "10694" "LSC NORTH HARRIS 1"
7347 "11030" "WHEELER STATION (BUS)"
7432 "25001" "FANNIN SOUTH STN NB"
7433 "25003" "STADIUM PARK / ASTRODOME NB"
7434 "25004" "STADIUM PARK / ASTRODOME SB"
7435 "25005" "SMITH LANDS STN NB"
7436 "25006" "SMITH LANDS STN SB"
7439 "25009" "DRYDEN/TMC STN NB"
7440 "25010" "DRYDEN/TMC STN SB"
7443 "25013" "HERMANN PARK/RICE U STN NB"
7444 "25014" "HERMANN PARK/RICE U STN SB"
7445 "25015" "MUSEUM DISTRICT STN NB"
7446 "25016" "MUSEUM DISTRICT STN SB"
7447 "25017" "WHEELER STN NB"
7448 "25018" "WHEELER STN SB"
7449 "25019" "ENSEMBLE/HCC STN NB"
7450 "25020" "ENSEMBLE/HCC STN SB"
7451 "25021" "MCGOWEN STN NB"
7452 "25022" "MCGOWEN STN SB"
7455 "25025" "BELL STN NB"
7456 "25026" "BELL STN SB"
7457 "25027" "MAIN STREET SQUARE STN NB"
7458 "25028" "MAIN STREET SQUARE STN SB"
7459 "25029" "PRESTON STN NB"
7460 "25030" "PRESTON STN SB"
7461 "25031" "UH-DOWNTOWN STN NB"
7462 "25032" "UH-DOWNTOWN STN SB"
7463 "11303" "MEMORIAL HERMANN SOUTHEAST"
7499 "11380" "ALMEDA MALL"
7644 "11608" "HCC SOUTH CAMPUS"
7969 "25002" "FANNIN SOUTH STN SB"
8030 "25039" "MOODY PARK NB"
8031 "25041" "CAVALCADE NB"
8032 "25043" "LINDALE PARK NB"
8038 "25044" "LINDALE PARK SB"
8039 "25040" "MOODY PARK SB"
8040 "25042" "CAVALCADE SB"
8045 "25049" "CENTRAL STN MAIN SB"
8046 "25050" "CENTRAL STN MAIN NB"
8048 "12194" "NRG PARK"
8050 "25058" "EADO STADIUM STN WB"
8062 "25072" "LEELAND THIRD WARD NB"
8063 "25071" "LEELAND THIRD WARD SB"
8064 "25075" "ELGIN THIRD WARD SB"
8065 "25076" "ELGIN THIRD WARD NB"
stop_too_far_from_shape WARNING 1

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.
4994 "282469" "11613973" 392631 "83" "North Shepherd Park & Ride" [29.876984,-95.41425500000001] 108.70955057508498
stop_too_far_from_shape_using_user_distance WARNING 1

stop_too_far_from_shape_using_user_distance

Stop time too far from shape.

A stop time entry that is a large distance away from the location of the shape in shapes.txt as defined by shape_dist_traveled values.

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.
5029 "282471" "11614008" 395193 "83" "North Shepherd Park & Ride" [29.876984,-95.41425500000001] 108.70955057508498
stop_without_stop_time WARNING 6

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.
4807 "7076" "Knox St @ Rachel St"
4808 "7080" "De Priest St @ Dillard St"
8703 "13108" "North Freeway @ West Rd"
8706 "13111" "SH 6 @ Wal Mart"
8743 "13164" "Shepherd Dr @ Mayfair Park Apt"
8744 "13165" "Ringold St @ Lawn St"
unused_shape WARNING 17

unused_shape

Shape is not used in GTFS file trips.txt.

All records defined by GTFS shapes.txt should be used in trips.txt.

You can see more about this notice here.

shapeId (?) The faulty record's id. csvRowNumber (?) The row number of the faulty record.
"282637" 215475
"282638" 215720
"282639" 215960
"282640" 216092
"282641" 216212
"282642" 216519
"282643" 216600
"282644" 216700
"282645" 216891
"282646" 217182
"282648" 217272
"282653" 218315
"282654" 218580
"282656" 218891
"282657" 219271
"282658" 219431
"282659" 219781
unknown_column INFO 1

unknown_column

A column name is unknown.

You can see more about this notice here.

filename (?) The name of the faulty file. fieldName (?) The name of the unknown column. index (?) The index of the faulty column.
"trips.txt" "ots_trip_short_name" 11
unknown_file INFO 1

unknown_file

A file is unknown.

You can see more about this notice here.

filename (?) The name of the unknown file.
"direction_names_exceptions.txt"