foothilltransit — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 8.0.1 at 2026-06-19T20:26:41Z,
for the dataset file:///shared/foothilltransit_27932a89.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Westcovina-ca-foothill
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2026-06-15
Feed End Date:
2026-10-31

Files included


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

Counts


  • Agencies: 2
  • Blocks: 733
  • Routes: 36
  • Shapes: 114
  • Stops: 1995
  • Trips: 13302

Specification Compliance report

604 notices reported (0 errors, 574 warnings, 30 infos)

Notice Code Severity Total
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
route_color_contrast WARNING 4

route_color_contrast

Insufficient route color contrast.

A route's color and route_text_color should be contrasting.

You can see more about this notice here.

routeId (?) The id of the faulty record. csvRowNumber (?) The row number of the faulty record. routeColor (?) The faulty record's HTML route color. routeTextColor (?) The faulty record's HTML route text color.
"10853" 18 "#B0E345" "#FFFFFF"
"20178" 19 "#E0CB00" "#FFFFFF"
"20270" 26 "#4DF5E8" "#FFFFFF"
"20281" 30 "#FFA0FE" "#FFFFFF"
same_name_and_description_for_route WARNING 34

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`.
2 "10195" "Pomona Transit Center via Reservoir St" "route_long_name"
3 "10197" "Pomona - Claremont - Montclair" "route_long_name"
4 "10282" "Puente Hills-Hacienda Hts-El Monte Sta" "route_long_name"
5 "10285" "Puente Hills-Whittier Hospital-La Habra" "route_long_name"
6 "10286" "Pomona - Diamond Bar - Brea Mall" "route_long_name"
7 "10289" "Pomona - Walnut - Puente Hills Mall" "route_long_name"
8 "10291" "La Verne - Pomona via Garey Ave" "route_long_name"
9 "10292" "Claremont Transit Ctr-Pomona Transit Ctr" "route_long_name"
10 "10482" "Pomona-Rowland Heights-Puente Hills Mall" "route_long_name"
13 "10490" "Express-Grand Av Park N Ride-Covina-DTLA" "route_long_name"
14 "10492" "El Monte-Arcadia-Montclair Transit Ctr" "route_long_name"
15 "10495" "Express - Industry Park N Ride - DTLA" "route_long_name"
16 "10499" "Express - Via Verde Park N Ride - DTLA" "route_long_name"
17 "10699" "Express - Montclair - Fairplex - DTLA" "route_long_name"
18 "10853" "Diamond Bar" "route_long_name"
19 "20178" "Puente Hills Mall - El Monte Station" "route_long_name"
20 "20185" "Azusa - West Covina - Puente Hills Mall" "route_long_name"
21 "20187" "Azusa - Arcadia - Pasadena" "route_long_name"
22 "20188" "Azusa-Claremont-Montclair Transit Ctr" "route_long_name"
23 "20190" "Pomona - West Covina - El Monte Station" "route_long_name"
24 "20194" "Pomona - Industry - La Puente - El Monte" "route_long_name"
25 "20269" "El Monte Station - Shops at Montebello" "route_long_name"
26 "20270" "Arcadia Sta. - Monrovia - El Monte Sta." "route_long_name"
27 "20272" "Duarte - Baldwin Park - West Covina" "route_long_name"
28 "20274" "West Covina - Industry - Whittier" "route_long_name"
29 "20280" "Azusa - Puente Hills Mall via Azusa Ave" "route_long_name"
30 "20281" "Glendora-Azusa-West Covina-Puente Hills" "route_long_name"
31 "20284" "Glendora-San Dimas-Covina-West Covina" "route_long_name"
32 "20295" "San Dimas Station-Cal Poly Pomona-Mt SAC" "route_long_name"
33 "20480" "West Covina-Pomona-Montclair Transit Ctr" "route_long_name"
34 "20493" "Express-Rowland Hts-Puente Hills-DTLA" "route_long_name"
35 "20498" "Express Service - West Covina - DTLA" "route_long_name"
36 "20707" "Montclair - Pomona - El Monte - L.A." "route_long_name"
37 "20861" "Duarte Mtn Vista-Huntington-Royal Oaks" "route_long_name"
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.
4900 "15784_shp-v49-a1" "t599-b16028-sl3-v49-a1" 126191 "3142-a1" "Industry Park and Ride" [34.010461949412864,-117.84564419794198] 131.14004690312385
stop_too_far_from_shape_using_user_distance WARNING 534

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.

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

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.
8191 "22911_shp-v4F-a2" "t21C-b3E-sl2-v4F-a2" 232560 "2564-a2" "Temple Ave and University Dr" [34.05042839848307,-117.82170667887029] 112.62623288345587
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19897 "2255-a1" "Rio Rancho Rd and Park Ave W" [34.033302266626485,-117.75225974551749] 112.56562668951331
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19899 "2852-a1" "Pomona Ranch Plaza W" [34.03015352566913,-117.75992361451881] 105.8962440967912
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19900 "2853-a1" "Rio Rancho Rd and Meadow View Dr W" [34.02709752652669,-117.76295403661611] 114.41869848250566
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19901 "2854-a1" "Rio Rancho Rd and Phillips Ranch Rd W" [34.026774557236486,-117.77066398309533] 119.9152510219211
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19903 "2638-a1" "Village Loop Rd and Old Wood Rd" [34.032847467043425,-117.77688642864496] 104.77306339618909
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19904 "2445-a1" "Santa Clara Dr and Village Loop Rd S" [34.0362467965325,-117.77987713525907] 103.72375814446883
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19906 "2555-a1" "Temple Ave and Rancho Navato Dr E" [34.03756482176428,-117.79399523672761] 101.13787680957944
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19907 "2548-a1" "Temple Ave and Mission Blvd W" [34.04019659709141,-117.79775677806614] 109.77286434231368
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19908 "2554-a1" "Temple Ave and Foley Way W" [34.044786454167095,-117.8020074937793] 110.94929471510713
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19909 "2559-a1" "Temple Ave and Pomona Blvd" [34.0474398193573,-117.80935192598048] 102.29702257949974
3 "15802_shp-v49-a1" "t26C-b162B4-sl2-v49-a1" 19910 "2567-a1" "Temple Ave and Valley Blvd" [34.04834679230183,-117.8116599418847] 106.43395319435992
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219881 "2818-a2" "Union Station Patsaouras Bus Plaza W" [34.0540905629091,-118.23597038723932] 273.12917334623654
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219882 "618-a2" "Arcadia St and Los Angeles St W" [34.053986864629046,-118.23319831749421] 551.1594719034027
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219883 "3015-a2" "Spring St and Temple St W" [34.054559583809336,-118.23792625072808] 428.14441437877804
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219884 "2475-a2" "Spring St and 1st St W" [34.055304119548516,-118.23922363125018] 417.7739660351504
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219885 "501-a2" "1st St and Broadway W" [34.05618299784484,-118.24145232124779] 461.72109789758963
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219886 "3169-a2" "1st St and Hill St W" [34.05494378084228,-118.24260057901337] 398.7354105383522
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219887 "3153-a2" "Hope St and 1st St W" [34.053514151268814,-118.24534649820279] 544.0097522416022
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219888 "3589-a2" "Flower St. and 3rd St." [34.05588360094754,-118.24896952819394] 493.7728564096779
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219889 "3162-a2" "Flower St and 4th St S" [34.05636429107041,-118.24993311200612] 551.9523687849932
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219890 "1193-a2" "6th St and Hope St W" [34.0538545607005,-118.25401853821693] 528.6888426169107
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219891 "1750-a2" "Hope St and 8th St W" [34.0501705942695,-118.25744061412148] 465.91280143332364
12240 "22901_shp-v4F-a2" "t1BD-b272D-sl3-v4F-a2" 219892 "1751-a2" "Hope St and 9th St W" [34.04876496762604,-118.25693034294237] 576.2156580247649
12447 "22878_shp-v4F-a2" "tC8-b90-sl2-v4F-a2" 546815 "2095-a2" "Olive St and 7th St E" [34.045321,-118.25672000000003] 158.6304784660184
12447 "22878_shp-v4F-a2" "tC8-b90-sl2-v4F-a2" 546821 "2593-a2" "Los Angeles General Medical Center E" [34.056791322178924,-118.21403881280048] 356.82600068056826
12447 "22878_shp-v4F-a2" "tC8-b90-sl2-v4F-a2" 546822 "896-a2" "Cal State LA E" [34.06184399881123,-118.17195926198559] 328.9840689565995
12447 "22878_shp-v4F-a2" "tC8-b90-sl2-v4F-a2" 546823 "1171-a2" "El Monte Station Upper Level" [34.07250867356623,-118.04781307411972] 318.49385811917523
5312 "22868_shp-v4F-a2" "t271-b3F-sl2-v4F-a2" 245743 "2926-a2" "Pacific Ave and Pacific Ln W" [34.07322971686053,-117.9441696086431] 177.88108582526797
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22073 "2818-a1" "Union Station Patsaouras Bus Plaza W" [34.054380068343235,-118.23743001172426] 409.785692096248
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22074 "618-a1" "Arcadia St and Los Angeles St W" [34.05408000003949,-118.23470156015085] 415.1015984333064
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22075 "3015-a1" "Spring St and Temple St W" [34.055231197699364,-118.23910689092604] 315.5175155657308
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22076 "2475-a1" "Spring St and 1st St W" [34.055991187163585,-118.24035728840595] 360.3820339421153
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22077 "501-a1" "1st St and Broadway W" [34.05527514884968,-118.2422983843827] 339.0996767036768
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22078 "3169-a1" "1st St and Hill St W" [34.05403288909836,-118.24344677872804] 324.89375172914805
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22079 "3153-a1" "Hope St and 1st St W" [34.05427386941354,-118.24644589503652] 413.23010996351167
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22080 "3589-a1" "Flower St. and 3rd St." [34.056190595320274,-118.25011676902751] 417.5790221958457
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22081 "3162-a1" "Flower St and 4th St S" [34.055398276755206,-118.25096793100582] 411.1594250610534
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22082 "1193-a1" "6th St and Hope St W" [34.05277900847745,-118.25493487299885] 382.79434887962054
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22083 "1750-a1" "Hope St and 8th St W" [34.049405972123964,-118.25641485595952] 439.24242067412797
4199 "15786_shp-v49-a1" "t276-b15FDE-sl3-v49-a1" 22084 "1751-a1" "Hope St and 9th St W" [34.04781201817616,-118.25785184049215] 440.4357833332718
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255817 "2408-a2" "Santa Anita Ave and Garvey Ave S" [34.06356756414929,-118.04258363621734] 117.07339349289641
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255818 "2403-a2" "Santa Anita Ave and Fern St S" [34.05949819687767,-118.04239701805871] 114.17367834968842
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255819 "2413-a2" "Santa Anita Ave and Klingerman St S" [34.05741334872897,-118.042412399398] 129.29784635611475
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255820 "2427-a2" "Santa Anita Ave and Rush St S" [34.05328209445223,-118.04244367087499] 140.97307181084577
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255821 "2432-a2" "Santa Anita Ave and Tyler Ave S" [34.04865045400088,-118.04247797069412] 127.98345361246308
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255822 "2395-a2" "Santa Anita Ave and Central Ave S" [34.04494904141856,-118.04509768602584] 136.6698943415349
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255823 "2419-a2" "Santa Anita Ave and Merced Ave" [34.04191247548496,-118.04887857256526] 140.93685160255487
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255824 "2415-a2" "Santa Anita Ave and Lexington Gallatin D" [34.03588846359083,-118.05476398955864] 125.11447697156925
8834 "21655_shp-v4F-a2" "t28F-b42-sl2-v4F-a2" 255825 "2401-a2" "Santa Anita Ave and Durfee Ave S" [34.03353686060941,-118.05343299669227] 117.52611597092444
big_gap_in_service INFO 14

big_gap_in_service

A service has a gap of more than 13 days between active service dates.

You can see more about this notice here.

serviceId (?) The service_id that has the gap. gapStartDate (?) The first day of the gap. gapEndDate (?) The last day of the gap. gapDurationDays (?) The number of days in the gap.
"2-v49-a1" "2026-10-25" "2027-01-03" 69
"3-v49-a1" "2026-10-26" "2027-01-04" 69
"4-v49-a1" "2026-10-27" "2027-01-05" 69
"5-v49-a1" "2026-10-28" "2027-01-06" 69
"6-v49-a1" "2026-10-29" "2027-01-07" 69
"7-v49-a1" "2026-10-30" "2027-01-01" 62
"8-v49-a1" "2026-10-31" "2027-01-02" 62
"2-v4F-a2" "2026-10-25" "2027-01-03" 69
"3-v4F-a2" "2026-10-26" "2027-01-04" 69
"4-v4F-a2" "2026-10-27" "2027-01-05" 69
"5-v4F-a2" "2026-10-28" "2027-01-06" 69
"6-v4F-a2" "2026-10-29" "2027-01-07" 69
"7-v4F-a2" "2026-10-30" "2027-01-01" 62
"8-v4F-a2" "2026-10-31" "2027-01-02" 62
service_window_outside_feed_period INFO 14

service_window_outside_feed_period

A service window is not covered by the feed's validity period.

You can see more about this notice here.

serviceId (?) The service_id whose active window extends outside the feed validity period. serviceWindowStartDate (?) The first active date of the service window. serviceWindowEndDate (?) The last active date of the service window. daysBeforeFeedStart (?) Number of days the service window extends before feed_start_date (0 if none). daysAfterFeedEnd (?) Number of days the service window extends after feed_end_date (0 if none).
"4-v4F-a2" "2026-06-16" "2027-06-15" 0 227
"5-v4F-a2" "2026-06-17" "2027-06-09" 0 221
"6-v49-a1" "2026-06-18" "2027-06-10" 0 222
"4-v49-a1" "2026-06-16" "2027-06-15" 0 227
"5-v49-a1" "2026-06-17" "2027-06-09" 0 221
"7-v49-a1" "2026-06-19" "2027-06-11" 0 223
"8-v4F-a2" "2026-06-20" "2027-06-12" 0 224
"8-v49-a1" "2026-06-20" "2027-06-12" 0 224
"2-v49-a1" "2026-06-21" "2027-06-13" 0 225
"3-v49-a1" "2026-06-15" "2027-06-14" 0 226
"6-v4F-a2" "2026-06-18" "2027-06-10" 0 222
"2-v4F-a2" "2026-06-21" "2027-06-13" 0 225
"3-v4F-a2" "2026-06-15" "2027-06-14" 0 226
"7-v4F-a2" "2026-06-19" "2027-06-11" 0 223
unused_station INFO 2

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.
838 "ps1-a1" "Azusa Intermodal Transit Center"
841 "ps4-a1" "San Gabriel Blvd and Sierra Madre Ave"