puget-sound — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-22T15:58:44Z,
for the dataset file:///shared/puget-sound_821343cb.zip. No country code was provided.

Use this report alongside our documentation.

A new version of the Canonical GTFS Schedule validator is available! Please update to get the latest/best validation results.

Summary

Agencies included


Feed Info


Publisher Name:
Metro Transit
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2026-05-19
Feed End Date:
2026-08-28

Files included


  1. agency.txt
  2. areas.txt
  3. calendar.txt
  4. calendar_dates.txt
  5. fare_attributes.txt
  6. fare_rules.txt
  7. feed_info.txt
  8. modifications.txt
  9. routes.txt
  10. shapes.txt
  11. stop_times.txt
  12. stops.txt
  13. transfers.txt
  14. translations.txt
  15. trips.txt

Counts


  • Agencies: 11
  • Blocks: 5065
  • Routes: 400
  • Shapes: 1161
  • Stops: 13446
  • Trips: 113712

Specification Compliance report

70075 notices reported (11715 errors, 58320 warnings, 40 infos)

Notice Code Severity Total
block_trips_with_overlapping_stop_times ERROR 11712

block_trips_with_overlapping_stop_times

Trips with the same block id have overlapping stop times.

You can see more about this notice here.

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

csvRowNumberA (?) The row number from `trips.txt` of the first faulty trip. tripIdA (?) The id of first faulty trip. serviceIdA (?) The service id of the first faulty trip. csvRowNumberB (?) The row number from `trips.txt` of the second faulty trip. tripIdB (?) The id of the other faulty trip. serviceIdB (?) The service id of the other faulty trip. blockId (?) The `trips.block_id` of the overlapping trip. intersection (?) The overlapping period.
104056 "2220150521260" "20260521" 104681 "229140521260" "20260521" "1" "20260521"
104079 "2220150522260" "20260522" 104710 "229140522260" "20260522" "1" "20260522"
104164 "2220150526260" "20260526" 104839 "229140526260" "20260526" "1" "20260526"
104187 "2220150527260" "20260527" 104868 "229140527260" "20260527" "1" "20260527"
104210 "2220150528260" "20260528" 104897 "229140528260" "20260528" "1" "20260528"
104233 "2220150529260" "20260529" 104926 "229140529260" "20260529" "1" "20260529"
104299 "2220150601260" "20260601" 105020 "229140601260" "20260601" "1" "20260601"
104322 "2220150602260" "20260602" 105049 "229140602260" "20260602" "1" "20260602"
104345 "2220150603260" "20260603" 105078 "229140603260" "20260603" "1" "20260603"
104368 "2220150604260" "20260604" 105107 "229140604260" "20260604" "1" "20260604"
104391 "2220150605260" "20260605" 105136 "229140605260" "20260605" "1" "20260605"
104457 "2220150608260" "20260608" 105230 "229140608260" "20260608" "1" "20260608"
104480 "2220150609260" "20260609" 105259 "229140609260" "20260609" "1" "20260609"
104503 "2220150610260" "20260610" 105288 "229140610260" "20260610" "1" "20260610"
104526 "2220150611260" "20260611" 105317 "229140611260" "20260611" "1" "20260611"
104549 "2220150612260" "20260612" 105346 "229140612260" "20260612" "1" "20260612"
109129 "920130521260" "20260521" 102298 "2022150521261" "20260521" "1" "20260521"
109129 "920130521260" "20260521" 102878 "209130521261" "20260521" "1" "20260521"
109155 "920130522260" "20260522" 102318 "2022150522261" "20260522" "1" "20260522"
109155 "920130522260" "20260522" 102904 "209130522261" "20260522" "1" "20260522"
109247 "920130526260" "20260526" 102404 "2022150526261" "20260526" "1" "20260526"
109247 "920130526260" "20260526" 102995 "209130526261" "20260526" "1" "20260526"
109273 "920130527260" "20260527" 102424 "2022150527261" "20260527" "1" "20260527"
109273 "920130527260" "20260527" 103021 "209130527261" "20260527" "1" "20260527"
109299 "920130528260" "20260528" 102444 "2022150528261" "20260528" "1" "20260528"
109299 "920130528260" "20260528" 103047 "209130528261" "20260528" "1" "20260528"
109325 "920130529260" "20260529" 102464 "2022150529261" "20260529" "1" "20260529"
109325 "920130529260" "20260529" 103073 "209130529261" "20260529" "1" "20260529"
109396 "920130601260" "20260601" 102530 "2022150601261" "20260601" "1" "20260601"
109396 "920130601260" "20260601" 103143 "209130601261" "20260601" "1" "20260601"
109422 "920130602260" "20260602" 102550 "2022150602261" "20260602" "1" "20260602"
109422 "920130602260" "20260602" 103169 "209130602261" "20260602" "1" "20260602"
109448 "920130603260" "20260603" 102570 "2022150603261" "20260603" "1" "20260603"
109448 "920130603260" "20260603" 103195 "209130603261" "20260603" "1" "20260603"
109474 "920130604260" "20260604" 102590 "2022150604261" "20260604" "1" "20260604"
109474 "920130604260" "20260604" 103221 "209130604261" "20260604" "1" "20260604"
109500 "920130605260" "20260605" 102610 "2022150605261" "20260605" "1" "20260605"
109500 "920130605260" "20260605" 103247 "209130605261" "20260605" "1" "20260605"
109571 "920130608260" "20260608" 102676 "2022150608261" "20260608" "1" "20260608"
109571 "920130608260" "20260608" 103317 "209130608261" "20260608" "1" "20260608"
109597 "920130609260" "20260609" 102696 "2022150609261" "20260609" "1" "20260609"
109597 "920130609260" "20260609" 103343 "209130609261" "20260609" "1" "20260609"
109623 "920130610260" "20260610" 102716 "2022150610261" "20260610" "1" "20260610"
109623 "920130610260" "20260610" 103369 "209130610261" "20260610" "1" "20260610"
109649 "920130611260" "20260611" 102736 "2022150611261" "20260611" "1" "20260611"
109649 "920130611260" "20260611" 103395 "209130611261" "20260611" "1" "20260611"
109675 "920130612260" "20260612" 102756 "2022150612261" "20260612" "1" "20260612"
109675 "920130612260" "20260612" 103421 "209130612261" "20260612" "1" "20260612"
102298 "2022150521261" "20260521" 102878 "209130521261" "20260521" "1" "20260521"
102318 "2022150522261" "20260522" 102904 "209130522261" "20260522" "1" "20260522"
missing_required_field ERROR 3

missing_required_field

A required field is missing.

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

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.
"fare_attributes.txt" 2 "agency_id"
"fare_attributes.txt" 3 "agency_id"
"fare_attributes.txt" 6 "agency_id"
duplicate_route_name WARNING 2

duplicate_route_name

Two distinct routes have either the same route_short_name, the same route_long_name, or the same combination of route_short_name and route_long_name.

All routes of the same route_type with the same agency_id should have unique combinations of route_short_name and route_long_name.

Note that there may be valid cases where routes have the same short and long name, e.g., if they serve different areas. However, different directions must be modeled as the same route.

Example of bad data:

route_id route_short_name route_long_name
route1 U1 Southern
route2 U1 Southern

You can see more about this notice here.

csvRowNumber1 (?) The row number of the first occurrence. routeId1 (?) The id of the the first occurrence. csvRowNumber2 (?) The row number of the other occurrence. routeId2 (?) The id of the the other occurrence. routeShortName (?) Common `routes.route_short_name`. routeLongName (?) Common `routes.route_long_name`. routeTypeValue (?) Common `routes.route_type`. agencyId (?) Common `routes.agency_id`.
206 "377" 251 "TA033" "377" "BI Ferry Take Home" 3 "20"
206 "377" 252 "TA034" "377" "BI Ferry Take Home" 3 "20"
equal_shape_distance_same_coordinates WARNING 2

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.

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`.
"E31:E09" 1019230 16718.5 8315 1019229 16718.5 8314
"E09:E31" 1018660 32376.3 4208 1018659 32376.3 4207
expired_calendar WARNING 17

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 "111"
24 "2617"
25 "2728"
48 "750"
56 "4"
83 "LLR_2026-04-13_Jan29_Spring26_CLCrev_Weekday"
84 "LLR_2026-05-04_20260409_Link_PinehurstMar26NB_Weekday"
85 "LLR_2026-05-18_20260331_Link_Spring26PinehurstSB_Weekday"
94 "SNDR_2026-05-03_20260427_Sounder_EventStart1310_Weekend"
95 "SNDR_2026-05-17_20260427_Sounder_EventStart1620_Weekend"
110 "20260518"
111 "20260519"
112 "20260520"
113 "20260521"
169 "winter2025_MonThu"
170 "winter2025_Sat"
171 "winter2025_Sun"
fast_travel_between_consecutive_stops WARNING 14

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.
50776 "20-827020" "608" 152.6368641837121 0.16959651575968013 1593994 6 "20-28" "California at Van Buren" "16:50:56" 1593995 7 "20-29" "California at Polk" "16:51:00"
56990 "a-827090" "608" 152.6368641837121 0.16959651575968013 1731685 6 "20-28" "California at Van Buren" "16:50:56" 1731686 7 "20-29" "California at Polk" "16:51:00"
55381 "827080" "608" 152.6368641837121 0.16959651575968013 1696887 6 "20-28" "California at Van Buren" "16:50:56" 1696888 7 "20-29" "California at Polk" "16:51:00"
54892 "666020" "608" 152.6368641837121 0.16959651575968013 1686181 6 "20-28" "California at Van Buren" "16:50:56" 1686182 7 "20-29" "California at Polk" "16:51:00"
48771 "1742020" "623" 349.556678315732 0.5825944638595533 1549546 3 "20-390" "McWilliams Park & Ride (driveway)" "17:05:00" 1549547 4 "20-427" "McWilliams at Clover Blossom" "17:05:06"
53527 "291020" "623" 349.556678315732 0.5825944638595533 1656410 3 "20-390" "McWilliams Park & Ride (driveway)" "17:05:00" 1656411 4 "20-427" "McWilliams at Clover Blossom" "17:05:06"
53530 "291090" "623" 349.556678315732 0.5825944638595533 1656419 3 "20-390" "McWilliams Park & Ride (driveway)" "17:05:00" 1656420 4 "20-427" "McWilliams at Clover Blossom" "17:05:06"
56730 "a-291080" "623" 349.556678315732 0.5825944638595533 1726162 3 "20-390" "McWilliams Park & Ride (driveway)" "17:05:00" 1726163 4 "20-427" "McWilliams at Clover Blossom" "17:05:06"
50523 "20-342020" "225" 150.09124633191993 0.16676805147991103 1588359 23 "20-423" "Sheridan Rd at Lebo Blvd (The Heights)" "19:45:29" 1588360 24 "20-167" "Sheridan at Rickey" "19:45:33"
50523 "20-342020" "225" 163.56263872373583 0.18173626524859537 1588361 25 "20-623" "Pine Rd at Sheridan Rd" "19:45:41" 1588362 26 "20-634" "Pine Rd at Magnolia Dr." "19:45:45"
50523 "20-342020" "225" 175.22076850145194 0.09734487138969553 1588363 27 "20-645" "Pine Rd at the Willows Retirement Apts." "19:45:52" 1588364 28 "20-657" "Sheridan Rd at Pine Ridge Apts" "19:45:54"
54873 "657020" "225" 150.09124633191993 0.16676805147991103 1685782 23 "20-423" "Sheridan Rd at Lebo Blvd (The Heights)" "20:10:29" 1685783 24 "20-167" "Sheridan at Rickey" "20:10:33"
54873 "657020" "225" 163.56263872373583 0.18173626524859537 1685784 25 "20-623" "Pine Rd at Sheridan Rd" "20:10:41" 1685785 26 "20-634" "Pine Rd at Magnolia Dr." "20:10:45"
54873 "657020" "225" 175.22076850145194 0.09734487138969553 1685786 27 "20-645" "Pine Rd at the Willows Retirement Apts." "20:10:52" 1685787 28 "20-657" "Sheridan Rd at Pine Ridge Apts" "20:10:54"
feed_expiration_date30_days WARNING 2

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).
3 "20260522" "20260606" "20260621"
11 "20260522" "20260618" "20260621"
missing_bike_allowance WARNING 19043

missing_bike_allowance

Ferry trips should include bike allowance information.

All ferry trips should have a valid value in the bikes_allowed field in trips.txt.

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. routeId (?) The faulty record's route id. tripId (?) The faulty record's trip id.
91563 "1013" "101390518260"
91564 "1013" "101390518261"
91565 "1013" "101390518262"
91566 "1013" "101390518263"
91567 "1013" "101390518264"
91568 "1013" "101390518265"
91569 "1013" "101390518266"
91570 "1013" "101390518267"
91571 "1013" "101390518268"
91572 "1013" "101390518269"
91573 "1013" "101390519260"
91574 "1013" "101390519261"
91575 "1013" "101390519262"
91576 "1013" "101390519263"
91577 "1013" "101390519264"
91578 "1013" "101390519265"
91579 "1013" "101390519266"
91580 "1013" "101390519267"
91581 "1013" "101390519268"
91582 "1013" "101390519269"
91583 "1013" "101390520260"
91584 "1013" "101390520261"
91585 "1013" "101390520262"
91586 "1013" "101390520263"
91587 "1013" "101390520264"
91588 "1013" "101390520265"
91589 "1013" "101390520266"
91590 "1013" "101390520267"
91591 "1013" "101390520268"
91592 "1013" "101390520269"
91593 "1013" "101390521260"
91594 "1013" "101390521261"
91595 "1013" "101390521262"
91596 "1013" "101390521263"
91597 "1013" "101390521264"
91598 "1013" "101390521265"
91599 "1013" "101390521266"
91600 "1013" "101390521267"
91601 "1013" "101390521268"
91602 "1013" "101390521269"
91603 "1013" "101390522260"
91604 "1013" "101390522261"
91605 "1013" "101390522262"
91606 "1013" "101390522263"
91607 "1013" "101390522264"
91608 "1013" "101390522265"
91609 "1013" "101390522266"
91610 "1013" "101390522267"
91611 "1013" "101390522268"
91612 "1013" "101390522269"
missing_feed_contact_email_and_url WARNING 4

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
5
8
11
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" 8 "feed_start_date"
"feed_info.txt" 8 "feed_end_date"
missing_timepoint_value WARNING 38086

missing_timepoint_value

stop_times.timepoint value is missing for a record.

When at least one of stop_times.arrival_time or stop_times.departure_time are provided, stop_times.timepoint should be defined

You can see more about this notice here.

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

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's `stop_times.trip_id`. stopSequence (?) The faulty record's `stop_times.stop_sequence`.
2563278 "101390518260" 1
2563279 "101390518260" 2
2563280 "101390518261" 1
2563281 "101390518261" 2
2563282 "101390518262" 1
2563283 "101390518262" 2
2563284 "101390518263" 1
2563285 "101390518263" 2
2563286 "101390518264" 1
2563287 "101390518264" 2
2563288 "101390518265" 1
2563289 "101390518265" 2
2563290 "101390518266" 1
2563291 "101390518266" 2
2563292 "101390518267" 1
2563293 "101390518267" 2
2563294 "101390518268" 1
2563295 "101390518268" 2
2563296 "101390518269" 1
2563297 "101390518269" 2
2563298 "101390519260" 1
2563299 "101390519260" 2
2563300 "101390519261" 1
2563301 "101390519261" 2
2563302 "101390519262" 1
2563303 "101390519262" 2
2563304 "101390519263" 1
2563305 "101390519263" 2
2563306 "101390519264" 1
2563307 "101390519264" 2
2563308 "101390519265" 1
2563309 "101390519265" 2
2563310 "101390519266" 1
2563311 "101390519266" 2
2563312 "101390519267" 1
2563313 "101390519267" 2
2563314 "101390519268" 1
2563315 "101390519268" 2
2563316 "101390519269" 1
2563317 "101390519269" 2
2563318 "101390520260" 1
2563319 "101390520260" 2
2563320 "101390520261" 1
2563321 "101390520261" 2
2563322 "101390520262" 1
2563323 "101390520262" 2
2563324 "101390520263" 1
2563325 "101390520263" 2
2563326 "101390520264" 1
2563327 "101390520264" 2
mixed_case_recommended_field WARNING 498

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 498 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" "SOUNDER STATION EB" 12947
"stops.txt" "stop_name" "8TH & RIVERSIDE RD - NB" 12948
"stops.txt" "stop_name" "COLLEGE STATION - BAY A - SB" 12949
"stops.txt" "stop_name" "COLLEGE STATION - BAY E - NB" 12950
"stops.txt" "stop_name" "COLBY AVE & 13TH ST - NB" 12951
"stops.txt" "stop_name" "SEAWAY TRANSIT CENTER - BAY 8 - SB" 12952
"stops.txt" "stop_name" "SEAWAY TRANSIT CENTER - BAY 9 - SB" 12953
"stops.txt" "stop_name" "6TH & RIVERSIDE RD - NB" 12954
"stops.txt" "stop_name" "COLBY AVE & 13TH ST - SB" 12955
"stops.txt" "stop_name" "HARDESON RD & MERRILL CREEK PKWY - SB" 12956
"stops.txt" "stop_name" "HARDESON RD & 67TH ST SW - SB" 12957
"stops.txt" "stop_name" "HARDESON RD & SHUKSAN WAY - SB" 12958
"stops.txt" "stop_name" "HARDESON RD & 72ND ST SW - SB" 12959
"stops.txt" "stop_name" "HARDESON RD & 75TH ST SW - SB" 12960
"stops.txt" "stop_name" "HARDESON RD & 75TH ST SW - NB" 12961
"stops.txt" "stop_name" "112TH ST SW & EVERGREEN WAY - EB" 12962
"stops.txt" "stop_name" "112TH ST SW & 8TH PL W - EB" 12963
"stops.txt" "stop_name" "112TH ST SW & 4TH AVE W - WB" 12964
"stops.txt" "stop_name" "112TH ST SW & 8TH PL W - WB" 12965
"stops.txt" "stop_name" "COLBY AVE & FAIRFAX AVE - NB" 12966
"stops.txt" "stop_name" "COLBY AVE & 17TH ST - NB" 12967
"stops.txt" "stop_name" "COLBY AVE & 17TH ST - SB" 12968
"stops.txt" "stop_name" "HWY 525 & 5TH ST - NB" 12969
"stops.txt" "stop_name" "HWY 525 & 5TH ST - SB" 12970
"stops.txt" "stop_name" "MERRILL CREEK PKWY & 13TH AVE W - EB" 12971
"stops.txt" "stop_name" "WALNUT ST & 19TH ST - SB" 12972
"stops.txt" "stop_name" "WALNUT ST & LEONARD DR - SB" 12973
"stops.txt" "stop_name" "WALNUT ST & 23RD ST - SB" 12974
"stops.txt" "stop_name" "TROJAN WAY & TOWER ST - NB" 12975
"stops.txt" "stop_name" "MAPLE ST & EVERETT AVE - SB" 12976
"stops.txt" "stop_name" "COLBY AVE & 26TH ST - NB" 12977
"stops.txt" "stop_name" "MAPLE ST & PACIFIC AVE - SB" 12978
"stops.txt" "stop_name" "MERRILL CREEK PKWY & GLENWOOD AVE - EB" 12979
"stops.txt" "stop_name" "PACIFIC AVE & CEDAR ST - WB" 12980
"stops.txt" "stop_name" "COLLEGE STATION - BAY B - SB" 12981
"stops.txt" "stop_name" "13TH ST & W MARINE VIEW DR - WB" 12982
"stops.txt" "stop_name" "W MARINE VIEW DR & 14TH ST - SB" 12983
"stops.txt" "stop_name" "W MARINE VIEW DR & 16TH ST - SB" 12984
"stops.txt" "stop_name" "W MARINE VIEW DR & 19TH ST - SB" 12985
"stops.txt" "stop_name" "GLENNWOOD AVE & KENWOOD DR - SB" 12986
"stops.txt" "stop_name" "W MARINE VIEW DR & 26TH ST - SB" 12987
"stops.txt" "stop_name" "W MARINE VIEW DR & CALIFORNIA ST - SB" 12988
"stops.txt" "stop_name" "PACIFIC AVE & NASSAU ST - EB" 12989
"stops.txt" "stop_name" "WALL ST & GRAND AVE - EB" 12990
"stops.txt" "stop_name" "WALL ST & COLBY AVE - EB" 12991
"stops.txt" "stop_name" "N BROADWAY & TOWER ST - NB" 12992
"stops.txt" "stop_name" "PACIFIC AVE & ROCKEFELLER AVE - EB" 12993
"stops.txt" "stop_name" "PACIFIC AVE & LOMBARD AVE - WB" 12994
"stops.txt" "stop_name" "PACIFIC AVE & ROCKEFELLER AVE - WB" 12995
"stops.txt" "stop_name" "WALL ST & HOYT AVE - WB" 12996
more_than_one_entity WARNING 1

more_than_one_entity

More than one row in CSV.

The file is expected to have a single entity but has more (e.g., "feed_info.txt").

You can see more about this notice here.

filename (?) Name of the faulty file. entityCount (?) Number of occurrences.
"feed_info.txt" 10
route_short_name_too_long WARNING 8

route_short_name_too_long

Short name of a route is too long (more than 12 characters).

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeShortName (?) The faulty record's `route_short_name`.
"102646" 108 "Trailhead Direct Issaquah Alps"
"102650" 110 "Trailhead Direct Mt. Si"
"102698" 113 "Duvall-Monroe Shuttle"
"102699" 114 "Valley Shuttle"
"102759" 138 "Metro Match Day Shuttle"
"102763" 139 "Waterfront Shuttle"
"100340" 253 "South Lake Union Streetcar"
"102638" 254 "First Hill Streetcar"
same_name_and_description_for_route WARNING 4

same_name_and_description_for_route

Same name and description for route.

The GTFS spec defines routes.txt route_desc as:

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

See the GTFS and GTFS Best Practices links below for more examples of how to populate the route_short_name, route_long_name, and route_desc fields.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. routeId (?) The id of the faulty record. routeDesc (?) The `routes.routes_desc` of the faulty record. specifiedField (?) Either `route_short_name` or `route_long_name`.
321 "100236" "Redmond - Seattle" "route_long_name"
322 "100239" "Bellevue - Seattle" "route_long_name"
323 "100240" "Issaquah - Seattle" "route_long_name"
326 "100511" "Redmond - University District" "route_long_name"
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.
102799 "209" "209130518260" 2585750 "95-20" "Southworth" [47.51195,-122.49736300000002] 163.7530185776068
102799 "209" "209130518260" 2585751 "95-9" "Fauntleroy" [47.523213999999996,-122.39552600000002] 181.23427338471632
104594 "229" "229140518260" 2589340 "95-22" "Vashon Island" [47.510174,-122.463921] 194.08602602977447
104594 "229" "229140518260" 2589341 "95-9" "Fauntleroy" [47.523213999999996,-122.39552600000002] 181.23427338471632
109051 "920" "920130518260" 2598254 "95-9" "Fauntleroy" [47.523213999999996,-122.39552600000002] 181.23427338471632
109051 "920" "920130518260" 2598255 "95-20" "Southworth" [47.51195,-122.49736300000002] 163.7530185776068
109724 "922" "922140518260" 2599600 "95-9" "Fauntleroy" [47.523213999999996,-122.39552600000002] 181.23427338471632
109724 "922" "922140518260" 2599601 "95-22" "Vashon Island" [47.510174,-122.463921] 194.08602602977447
103987 "2220" "2220150518260" 2588126 "95-22" "Vashon Island" [47.510174,-122.463921] 194.08602602977447
103987 "2220" "2220150518260" 2588127 "95-20" "Southworth" [47.51195,-122.49736300000002] 163.7530185776068
102237 "2022" "2022150518260" 2584626 "95-20" "Southworth" [47.51195,-122.49736400000002] 163.6779241678246
102237 "2022" "2022150518260" 2584627 "95-22" "Vashon Island" [47.510174,-122.463921] 194.08602602977447
106422 "514" "51470518260" 2592996 "95-5" "Clinton" [47.975108,-122.349821] 175.7008341288627
106422 "514" "51470518260" 2592997 "95-14" "Mukilteo" [47.948785,-122.30402699999999] 560.9125608169305
97275 "145" "14570518260" 2574702 "95-14" "Mukilteo" [47.948785,-122.30402699999999] 560.9125608169305
97275 "145" "14570518260" 2574703 "95-5" "Clinton" [47.975108,-122.349821] 175.7008341288627
83032 "S01:N23" "LLR_2026-05-26_20260512_Link_JuneEMW_Weekday_100479_1123" 2400598 "99914" "Angle Lake" [47.42311600000001,-122.29771300000002] 108.35351698182029
stop_too_far_from_shape_using_user_distance WARNING 9

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.
30933 "15318_shp-v3C" "t21E-b1F5-sl2-v3C" 1056396 "19-977" "Martin Way at Gerald St" [47.05757707586209,-122.76044361448729] 104.45852362692793
46465 "a-shp-221-01" "1001080" 1497936 "374" "Perry at 24th St." [47.580859,-122.61380400000003] 100.12055405001153
71738 "30550001" "561776630" 2165098 "1-620" "4th Ave S & S Jackson St" [47.5947740857415,-122.329048] 449.12790805436873
71738 "30550001" "561776630" 2165099 "1-628" "4th Ave S & S Washington St" [47.59727130464483,-122.3290333483659] 449.3006471418931
71738 "30550001" "561776630" 2165100 "1-648" "4th Ave & Cherry St" [47.600661955665245,-122.32899103279335] 438.4135452740185
71738 "30550001" "561776630" 2165101 "1-670" "4th Ave & Seneca St" [47.60402663061294,-122.33101430016896] 449.09159286352076
71738 "30550001" "561776630" 2165102 "1-691" "4th Ave & Union St" [47.60569106122573,-122.33255017225635] 448.8410945240601
71738 "30550001" "561776630" 2165103 "1-1190" "Pike St & 6th Ave" [47.60820109159857,-122.33484519582937] 315.91306861541034
71738 "30550001" "561776630" 2165104 "11130" "Pike St & Convention Pl" [47.610297225770886,-122.33649229930963] 448.430065203757
stop_without_stop_time WARNING 63

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.

Only the first 50 of 63 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.
6 "1-1020" "Howell St & Yale Ave"
12710 "LS16440" "Roosevelt Station - Bay 5"
12711 "LS21833" "6th Ave S & S Royal Brougham Way"
12712 "LS23561" "Roosevelt Station - Bay 3"
12713 "LS25240" "Montlake Blvd NE & NE Pacific Pl"
12714 "LS25755" "Mountlake Blvd NE & NE Pacific Pl"
12715 "LS29262" "E John St & Broadway"
12716 "LS29270" "E John St & Broadway Ave E"
12717 "LS3470" "Beacon Ave S & S Lander St"
12718 "LS35318" "Northgate Station - Bay 4"
12719 "LS3810" "Beacon Ave S & S Lander St"
12726 "LS666" "SODO Busway & S Lander St"
12728 "LS8681" "Rainier Ave S & S Forest St - Bay 4"
12729 "LS9134" "University Way NE & NE 43rd St"
12730 "LS9587" "U District Station - Bay 1"
12731 "LS99254" "SODO Busway & S Lander St"
12732 "LS99261" "S Lander St & SODO Busway"
12734 "LS_C27_T2" "MLK Way & S Henderson St"
12735 "LS_C29_T1" "MLK Way & S Henderson St"
12736 "LS_C35_T1" "Tukwila Intl Blvd Station Bay 2"
12737 "LS_C35_T2" "Tukwila Intl Blvd Station Bay 3"
12738 "LS_C37_T1" "Tukwila Intl Blvd & S 176 St"
12739 "LS_C37_T2" "Tukwila Intl Blvd & S 176 St"
12746 "LS_E11_T1" "112 Av SE/ SE 300 Block"
12747 "LS_E11_T2" "112th Ave/ SE 300 Block"
12748 "LS_E15_T1" "110 Av NE/NE 6 St"
12749 "LS_E15_T2" "110 Av NE/NE 6 St"
12750 "LS_E19_T1" "NE 8 St/118 Av NE"
12751 "LS_E19_T2" "NE 8 St/116 Av SE"
12752 "LS_E21_T1" "120 Av NE / NE Spring Blvd"
12753 "LS_E21_T2" "120 Av NE / NE Spring Blvd"
12754 "LS_E23_T1" "132 Av NE/NE Spring Blvd"
12755 "LS_E23_T2" "132 Av NE/NE Spring Blvd"
12756 "LS_E25_T1" "152 Av NE/Da Vinci Av NE"
12757 "LS_E25_T2" "152 Av NE/NE Shen St"
12758 "LS_E27_T1" "Redmond Technology Station Acs & 156th Ave NE - Bay 4"
12759 "LS_E27_T2" "Redmond Technology Station Bay 5"
12760 "LS_E29_T1" "Marymoor Village Station Bay 4"
12761 "LS_E29_T2" "Marymoor Village Station Bay 2"
12762 "LS_E31_T1" "Downtown Redmond Station Bay 3"
12763 "LS_E31_T2" "Downtown Redmond Station Bay 2"
12764 "LS_N11_T1" "Northgate Station Bay 2"
12765 "LS_N11_T2" "Northgate Station Bay 4"
12766 "LS_N15_T1" "Shoreline South/148th Station Bay 3"
12767 "LS_N15_T2" "Shoreline South/148th Station Bay 2"
12768 "LS_N17_T1" "Shoreline North/185th Station Bay 1"
12769 "LS_N17_T2" "Shoreline North/185th Station Bay 3"
12770 "LS_N19_T1" "Mountlake Terrace Fwy Station Bay 7"
12771 "LS_N19_T2" "Mountlake Terrace Fwy Station Bay 6"
12772 "LS_N23_T1" "Lynnwood City Center Station Bay A5"
trip_distance_exceeds_shape_distance_below_threshold WARNING 536

trip_distance_exceeds_shape_distance_below_threshold

The distance between the last shape point and last stop point is greater than 0 but less than the 11.1m threshold.

You can see more about this notice here.

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

tripId (?) The faulty record's trip id. shapeId (?) The faulty record's shape id. maxTripDistanceTraveled (?) The faulty record's trip max distance traveled. maxShapeDistanceTraveled (?) The faulty record's shape max distance traveled. geoDistanceToShape (?) The distance in meters between the shape and the stop.
"80905959" "41930003" 37815.0 37813.0 7.568739082937226
"80905960" "30930002" 37662.0 37660.0 7.701831012157087
"80905961" "30930002" 37662.0 37660.0 7.701831012157087
"80905962" "41930003" 37815.0 37813.0 7.568739082937226
"80905963" "41930003" 37815.0 37813.0 7.568739082937226
"80905964" "30930002" 37662.0 37660.0 7.701831012157087
"80905965" "41930003" 37815.0 37813.0 7.568739082937226
"80905966" "30930002" 37662.0 37660.0 7.701831012157087
"80905967" "41930003" 37815.0 37813.0 7.568739082937226
"80905968" "30930002" 37662.0 37660.0 7.701831012157087
"80905969" "41930003" 37815.0 37813.0 7.568739082937226
"80905970" "30930002" 37662.0 37660.0 7.701831012157087
"80905971" "41930003" 37815.0 37813.0 7.568739082937226
"80905972" "30930002" 37662.0 37660.0 7.701831012157087
"80905973" "41930003" 37815.0 37813.0 7.568739082937226
"80905974" "30930002" 37662.0 37660.0 7.701831012157087
"80905975" "41930003" 37815.0 37813.0 7.568739082937226
"80905976" "30930002" 37662.0 37660.0 7.701831012157087
"80905977" "41930003" 37815.0 37813.0 7.568739082937226
"80905978" "41930003" 37815.0 37813.0 7.568739082937226
"80905979" "30930002" 37662.0 37660.0 7.701831012157087
"80905980" "30930002" 37662.0 37660.0 7.701831012157087
"80905981" "30930002" 37662.0 37660.0 7.701831012157087
"80905982" "41930003" 37815.0 37813.0 7.568739082937226
"80906027" "21204006" 24169.0 24139.0 6.8306756974161535
"80906028" "10204005" 24107.0 24005.0 8.024466067272108
"80906029" "10204005" 24107.0 24005.0 8.024466067272108
"80906030" "10204005" 24107.0 24005.0 8.024466067272108
"80906031" "21204006" 24169.0 24139.0 6.8306756974161535
"80906032" "10204005" 24107.0 24005.0 8.024466067272108
"80906033" "21204006" 24169.0 24139.0 6.8306756974161535
"80906034" "21204006" 24169.0 24139.0 6.8306756974161535
"80906035" "10204005" 24107.0 24005.0 8.024466067272108
"80906036" "10204005" 24107.0 24005.0 8.024466067272108
"80906037" "21204006" 24169.0 24139.0 6.8306756974161535
"80906038" "21204006" 24169.0 24139.0 6.8306756974161535
"80906039" "21204006" 24169.0 24139.0 6.8306756974161535
"80906040" "21204006" 24169.0 24139.0 6.8306756974161535
"80906041" "10204005" 24107.0 24005.0 8.024466067272108
"80906042" "10204005" 24107.0 24005.0 8.024466067272108
"80906043" "21204006" 24169.0 24139.0 6.8306756974161535
"80906044" "10204005" 24107.0 24005.0 8.024466067272108
"80906045" "21204006" 24169.0 24139.0 6.8306756974161535
"80906046" "10204005" 24107.0 24005.0 8.024466067272108
"80906051" "30930002" 37662.0 37660.0 7.701831012157087
"80906052" "41930003" 37815.0 37813.0 7.568739082937226
"80906053" "30930002" 37662.0 37660.0 7.701831012157087
"80906054" "41930003" 37815.0 37813.0 7.568739082937226
"774846230" "30554006" 105529.0 105510.0 7.839294926612305
"774846240" "30554006" 105529.0 105510.0 7.839294926612305
unusable_trip WARNING 6

unusable_trip

Trips must have more than one stop to be usable.

A trip must visit more than one stop in stop_times.txt to be usable by passengers for boarding and alighting.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. tripId (?) The faulty record's id.
52832 "2640028"
53731 "2988108"
53732 "2989028"
53733 "2989098"
53734 "2989118"
53739 "2991088"
unused_shape WARNING 6

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.
"E09:E27" 1018304
"E27:E09" 1018876
"1019" 1033460
"119" 1033582
"191" 1033839
"1910" 1033872
platform_without_parent_station INFO 30

platform_without_parent_station

A platform has no parent_station field set.

This is different from location_without_parent_station since it is less severe.

You can see more about this notice here.

csvRowNumber (?) Row number of the faulty record. stopId (?) The id of the faulty record. stopName (?) The stop name of the faulty record.
12710 "LS16440" "Roosevelt Station - Bay 5"
12712 "LS23561" "Roosevelt Station - Bay 3"
12718 "LS35318" "Northgate Station - Bay 4"
12728 "LS8681" "Rainier Ave S & S Forest St - Bay 4"
12742 "LS_E07_T1" "Mercer Island Station – Bay 1"
12743 "LS_E07_T2" "N Mercer Way & 80th Ave SE - Bay 2"
12744 "LS_E09_T1" "South Bellevue Station Bus Plaza - Bay 1"
12745 "LS_E09_T2" "South Bellevue Station Bus Plaza - Bay 3"
12758 "LS_E27_T1" "Redmond Technology Station Acs & 156th Ave NE - Bay 4"
12759 "LS_E27_T2" "Redmond Technology Station Bay 5"
12760 "LS_E29_T1" "Marymoor Village Station Bay 4"
12761 "LS_E29_T2" "Marymoor Village Station Bay 2"
12762 "LS_E31_T1" "Downtown Redmond Station Bay 3"
12763 "LS_E31_T2" "Downtown Redmond Station Bay 2"
12764 "LS_N11_T1" "Northgate Station Bay 2"
12765 "LS_N11_T2" "Northgate Station Bay 4"
12766 "LS_N15_T1" "Shoreline South/148th Station Bay 3"
12767 "LS_N15_T2" "Shoreline South/148th Station Bay 2"
12768 "LS_N17_T1" "Shoreline North/185th Station Bay 1"
12769 "LS_N17_T2" "Shoreline North/185th Station Bay 3"
12770 "LS_N19_T1" "Mountlake Terrace Fwy Station Bay 7"
12771 "LS_N19_T2" "Mountlake Terrace Fwy Station Bay 6"
12772 "LS_N23_T1" "Lynnwood City Center Station Bay A5"
12773 "LS_N23_T2" "Lynnwood City Center Station Bay D3"
12777 "LS_S03_T1" "Kent Des Moines Station - Bay 2"
12778 "LS_S03_T2" "Kent Des Moines Station - Bay 3"
12779 "LS_S05_T1" "Star Lake Station - Bay 1"
12780 "LS_S05_T2" "Star Lake Station - Bay 4"
12781 "LS_S07_T1" "Federal Way Downtown Stn - Bay 8"
12782 "LS_S07_T2" "Federal Way Downtown Stn - Bay 11"
unknown_column INFO 9

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.
"feed_info.txt" "feed_id" 1
"areas.txt" "wkt" 3
"trips.txt" "drt_advance_book_min" 10
"trips.txt" "fare_id" 12
"trips.txt" "peak_offpeak" 13
"trips.txt" "boarding_type" 14
"stop_times.txt" "departure_buffer" 11
"fare_attributes.txt" "youth_price" 8
"fare_attributes.txt" "senior_price" 9
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.
"modifications.txt"