GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-05-05T02:23:54Z,
for the dataset file:///shared/palmettobreeze_267e157b.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
GMV Syncromatics
Feed Email:
support@gmvsync.com
Feed Language:
English
Feed Start Date:
2026-04-27
Feed End Date:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_attributes.txt
  4. directions.txt
  5. feed_info.txt
  6. realtime_routes.txt
  7. routes.txt
  8. shapes.txt
  9. stop_times.txt
  10. stops.txt
  11. trips.txt

Counts


  • Agencies: 1
  • Blocks: 27
  • Routes: 23
  • Shapes: 60
  • Stops: 389
  • Trips: 254

Specification Compliance report

1048 notices reported (0 errors, 1045 warnings, 3 infos)

Notice Code Severity Total
equal_shape_distance_same_coordinates WARNING 936

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 936 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`.
"29348" 31528 5543.209254489234 174 31527 5543.209254489234 173
"29348" 31603 9594.423589429112 249 31602 9594.423589429112 248
"29348" 31605 9645.269662814617 251 31604 9645.269662814617 250
"29348" 31607 9700.225336952295 253 31606 9700.225336952295 252
"29348" 31609 9761.547317321221 255 31608 9761.547317321221 254
"29348" 31611 9816.530348100121 257 31610 9816.530348100121 256
"29348" 31613 9883.042807538628 259 31612 9883.042807538628 258
"29348" 31615 9977.919299300262 261 31614 9977.919299300262 260
"29348" 31617 10048.605659173047 263 31616 10048.605659173047 262
"29348" 31619 10124.15866135367 265 31618 10124.15866135367 264
"29348" 31621 10189.453720544394 267 31620 10189.453720544394 266
"29348" 31623 10246.126635357705 269 31622 10246.126635357705 268
"29348" 31625 10310.999121752624 271 31624 10310.999121752624 270
"29348" 31627 10393.168968427828 273 31626 10393.168968427828 272
"29348" 31629 10471.636792315725 275 31628 10471.636792315725 274
"29348" 31631 10600.71632214939 277 31630 10600.71632214939 276
"29348" 31633 10680.968718969421 279 31632 10680.968718969421 278
"29348" 31635 10751.12383101788 281 31634 10751.12383101788 280
"29348" 31637 10836.686826349684 283 31636 10836.686826349684 282
"29348" 31639 10937.410916833891 285 31638 10937.410916833891 284
"29348" 31641 11017.700836976192 287 31640 11017.700836976192 286
"29348" 31643 11099.558262061775 289 31642 11099.558262061775 288
"29348" 31645 11170.215803174466 291 31644 11170.215803174466 290
"29348" 31647 11239.0624213589 293 31646 11239.0624213589 292
"29348" 31649 11311.93092099322 295 31648 11311.93092099322 294
"29348" 31651 11372.83491202416 297 31650 11372.83491202416 296
"29348" 31653 11452.656351903195 299 31652 11452.656351903195 298
"29348" 31655 11504.330641230728 301 31654 11504.330641230728 300
"29348" 31657 11575.025974841266 303 31656 11575.025974841266 302
"29348" 31659 11668.123889282315 305 31658 11668.123889282315 304
"29348" 31661 11766.7070075163 307 31660 11766.7070075163 306
"29348" 31663 11843.045444343596 309 31662 11843.045444343596 308
"29348" 31665 11923.419288067753 311 31664 11923.419288067753 310
"29348" 31667 11987.170447511828 313 31666 11987.170447511828 312
"29348" 31669 12051.205900909112 315 31668 12051.205900909112 314
"29348" 31671 12104.815576121939 317 31670 12104.815576121939 316
"29348" 31673 12195.67884769796 319 31672 12195.67884769796 318
"29348" 31675 12270.338456277312 321 31674 12270.338456277312 320
"29348" 31677 12334.56469675806 323 31676 12334.56469675806 322
"29348" 31679 12404.635013398802 325 31678 12404.635013398802 324
"29348" 31681 12488.898363161885 327 31680 12488.898363161885 326
"29348" 31683 12555.291532844754 329 31682 12555.291532844754 328
"29348" 31685 12630.25189188432 331 31684 12630.25189188432 330
"29348" 31687 12683.329675209832 333 31686 12683.329675209832 332
"29348" 31689 12768.488798691396 335 31688 12768.488798691396 334
"29348" 31691 12844.31302968643 337 31690 12844.31302968643 336
"29348" 31693 12924.62887475979 339 31692 12924.62887475979 338
"29348" 31695 13020.230892739082 341 31694 13020.230892739082 340
"29348" 31697 13124.131589053522 343 31696 13124.131589053522 342
"29348" 31699 13216.670390610165 345 31698 13216.670390610165 344
fast_travel_between_consecutive_stops WARNING 6

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.
10 "310-1" "6484" 260.96263588428565 8.698754529476188 154 2 "11637340" "Brunson's Bus Stop" "05:11:00" 155 3 "10782526" "Shaw Dr at Hardee's" "05:12:00"
10 "310-1" "6484" 169.22764053536667 19.743224729126112 161 9 "10795489" "E Carolina Ave at Elm St" "05:33:00" 162 10 "10851816" "Grays Hwy at Keith's Country Store" "05:39:00"
10 "310-1" "6484" 151.9922703361717 32.93165857283721 165 13 "10851819" "Morgan Dollar Rd Opp. Coosawhatchie Baptist Church" "05:48:00" 166 14 "10794977" "McDonalds / Dunkin at Exit 8" "06:00:00"
232 "804-1" "6488" 242.7829964904111 8.09276654968037 2350 15 "10672379" "Fording Island Rd at Candlewood Suites" "07:35:00" 2351 16 "10664073" "Fording Island Rd at Plantation Business Park" "07:36:00"
7 "308-2" "6482" 178.00337686121551 5.9334458953738505 115 14 "10627307" "Hwy 601 at Tye Branch Rd" "19:02:00" 116 15 "10627308" "Way's Grocery" "19:03:00"
11 "310-2" "6484" 259.1177419703284 8.637258065677612 188 16 "10815389" "Elm St W Opp. Hardee's" "18:53:00" 189 17 "11637340" "Brunson's Bus Stop" "18:54:00"
fast_travel_between_far_stops WARNING 2

fast_travel_between_far_stops

A transit vehicle moves too fast between two far stops.

Two stops are considered "far" if they are more than 10 km apart. This normally indicates a more serious problem than too fast travel between consecutive stops.

The speed threshold depends on route type and are the same as fast_travel_between_consecutive_stops.

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.
10 "310-1" "6484" 169.22764053536667 19.743224729126112 161 9 "10795489" "E Carolina Ave at Elm St" "05:33:00" 162 10 "10851816" "Grays Hwy at Keith's Country Store" "05:39:00"
7 "308-2" "6482" 154.78974806269835 10.319316537513224 115 14 "10627307" "Hwy 601 at Tye Branch Rd" "19:02:00" 117 16 "10627310" "Lena Expy Opp. Stove Pipe Rd" "19:05:00"
leading_or_trailing_whitespaces WARNING 24

leading_or_trailing_whitespaces

The value in CSV file has leading or trailing whitespaces.

This notice is emitted for values protected with double quotes since whitespaces for non-protected values are trimmed automatically by CSV parser.

The validator strips whitespaces from protected values. We do not see any use case when such a whitespace may be needed. On the other hand, some real-world feeds use trailing whitespaces for some values and omit them for the others. This is causing the largest problem when a primary key and a foreign key differ just by a whitespace: it is clear that they are intended to be the same, that is why we always strip whitespaces.

You can see more about this notice here.

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"stops.txt" 11 "stop_name" "Fording Island Rd at Walmart/Sam's Club "
"stops.txt" 30 "stop_name" "S Forest Beach Dr at Marriott's Grande Ocean Resort "
"stops.txt" 60 "stop_name" "Deer Run Apartments "
"stops.txt" 82 "stop_name" "Way's Grocery "
"stops.txt" 110 "stop_name" "Fording Island Rd at Plantation Business Park "
"stops.txt" 181 "stop_name" "Grays Hill Community Center "
"stops.txt" 199 "stop_name" "Moss Creek "
"stops.txt" 211 "stop_name" "Bay Meadows Apartments "
"stops.txt" 218 "stop_name" "Nelson's Store "
"stops.txt" 221 "stop_name" "Mt Nebo Baptist Church "
"stops.txt" 223 "stop_name" "Harold's "
"stops.txt" 238 "stop_name" "Snell & Associates Nursery "
"stops.txt" 241 "stop_name" "Fiddler Cove "
"stops.txt" 245 "stop_name" "Whale Branch High Entrance "
"stops.txt" 265 "stop_name" "Trolley Stop 10 - Coligny Beach Park "
"stops.txt" 296 "stop_name" "Bridge Pointe Apts "
"stops.txt" 317 "stop_name" "Bluffton Pkwy at Shell Hall "
"stops.txt" 375 "stop_name" "Fording Island Rd at Jim n Nicks "
"routes.txt" 8 "route_short_name" "502 "
"routes.txt" 19 "route_short_name" "811 "
"routes.txt" 20 "route_long_name" "802 HHI / Coligny Beach "
"routes.txt" 21 "route_long_name" "508 USCB Shuttle "
"routes.txt" 22 "route_short_name" "820 "
"routes.txt" 23 "route_long_name" "702 AM Beaufort / Port Royal Loop "
missing_feed_info_date WARNING 1

missing_feed_info_date

One of feed_start_date or feed_end_date is specified, but not both.

Even though feed_info.start_date and feed_info.end_date are optional, if one field is provided the second one should also be provided.

You can see more about this notice here.

csvRowNumber (?) The row number of the faulty record. fieldName (?) Either `feed_end_date` or `feed_start_date`.
2 "feed_end_date"
missing_recommended_field WARNING 1

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_end_date"
mixed_case_recommended_field WARNING 2

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.

filename (?) Name of the faulty file. fieldName (?) Name of the faulty field. fieldValue (?) Faulty value. csvRowNumber (?) The row number of the faulty record.
"routes.txt" "route_short_name" "702 AM" 23
"routes.txt" "route_short_name" "702 PM" 24
route_long_name_contains_short_name WARNING 23

route_long_name_contains_short_name

Long name should not contain short name for a single route.

In routes.txt, route_long_name should not contain the value for route_short_name, because when both are provided, they are often combined by transit applications. Note that only one of the two fields is required. If there is no short name used for a route, use route_long_name only.

Good examples:

route_short_name/route_long_name Dataset
"N"/"Judah" Muni San Fransisco
"6"/"ML King Jr Blvd" Trimet Portland Streetcar
"55"/"Boulevard Saint Laurent" STM Montreal
"1"/"Rangiora/Cashmere" Metro Christchurch

Bad examples:

route_short_name/route_long_name
"604"/"604"
"14"/"Route 14"
"2"/"Route 2: Bellows Falls In-Town"

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`. routeLongName (?) The faulty record's `route_long_name`.
"6390" 2 "505" "505 Breeze Trolley Mid-Island (Seasonal)"
"6391" 3 "505" "505 Breeze Trolley South Island (Seasonal)"
"6392" 4 "511" "511 Bluffton Breeze"
"6393" 5 "512" "512 Okatie Breeze"
"6396" 6 "429" "429 Walterboro Works"
"6397" 7 "501" "501 Sheldon, Seabrook, Beaufort, Port Royal"
"6450" 8 "502" "502 St. Helena Shuttle"
"6480" 9 "307" "307 Gifford Commuter"
"6481" 10 "302" "302 St. Helena Commuter"
"6482" 11 "308" "308 Ridgeland Commuter"
"6483" 12 "309" "309 Sheldon Commuter"
"6484" 13 "310" "310 Fairfax Commuter"
"6485" 14 "311" "311 Allendale Commuter"
"6486" 15 "320" "320 Walterboro Commuter"
"6488" 16 "804" "804 Bluffton / Okatie"
"6489" 17 "807" "807 HHI / Sea Pines"
"6490" 18 "810" "810 Palmetto Dunes"
"6491" 19 "811" "811 HHI / Pope Avenue"
"6619" 20 "802" "802 HHI / Coligny Beach"
"6627" 21 "508" "508 USCB Shuttle"
"6931" 22 "820" "820 Squire Pope / Hilton Head Hospital / The Westin"
"6942" 23 "702 AM" "702 AM Beaufort / Port Royal Loop"
"6979" 24 "702 PM" "702 PM Beaufort / Port Royal Loop"
same_name_and_description_for_route WARNING 3

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`.
6 "6396" "429" "route_short_name"
7 "6397" "501" "route_short_name"
21 "6627" "508 USCB Shuttle" "route_long_name"
stop_too_far_from_shape_using_user_distance WARNING 18

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.
2 "25105" "302-1" 7 "9829977" "Hwy 21 at Lady's Island Walmart" [32.405836086007014,-80.63417930218422] 102.76705753657075
2 "25105" "302-1" 8 "9829868" "Lady's Island Dr at Wells Fargo" [32.41384706868208,-80.65042311891433] 102.82578155853963
2 "25105" "302-1" 10 "9829870" "Ribaut Rd at Circle K" [32.3991346190532,-80.68509937472962] 114.68451412845712
2 "25105" "302-1" 11 "9829871" "Ribaut Rd at Maryland Fried Chicken" [32.43760464904344,-80.68583985406956] 114.71765589182168
2 "25105" "302-1" 12 "9829872" "Boundary St at Shell Station" [32.44130696322518,-80.69995947108899] 114.10335071698788
2 "25105" "302-1" 13 "9829873" "Robert Smalls Pkwy at McDonalds" [32.44016972638871,-80.70529342009037] 111.22822568123652
2 "25105" "302-1" 14 "9829874" "Robert Smalls Pkwy at Longhorn" [32.43070732052027,-80.71748051371658] 114.30377748536564
2 "25105" "302-1" 16 "9829876" "Parris Island Gtwy at Love House Ministries" [32.40655624748932,-80.7342625008855] 114.66853180942061
2 "25105" "302-1" 18 "9829877" "Robert Smalls Pkwy at Broad River Blvd" [32.39772475177811,-80.76485399384107] 239.92226557657864
2 "25105" "302-1" 19 "9829878" "Hwy 170 Opp. Chelsea Clinic" [32.362425007030225,-80.87047218182386] 239.92622143267602
2 "25105" "302-1" 20 "9829879" "Hwy 170 Opp. Old Field Mews" [32.3542074738614,-80.90499017769312] 239.37921825615908
2 "25105" "302-1" 21 "9829880" "Hwy 170 at Builders First Source" [32.339445474947055,-80.92846631414328] 240.5703208025152
2 "25105" "302-1" 22 "10138177" "Island West Toyota Eastbound" [32.289641126730785,-80.92409356451326] 239.4690829898847
2 "25105" "302-1" 23 "9829881" "Fording Island Rd at Jim n Nicks" [32.26863127030306,-80.8619674978401] 239.82115527542018
2 "25105" "302-1" 24 "10138178" "Fording Island Rd at Walmart/Sam's Club" [32.26406951520002,-80.85683200166928] 239.91930386385587
2 "25105" "302-1" 25 "10138179" "Enmarket at Kitties Crossing" [32.25892887023925,-80.8517102280352] 240.19072537149128
2 "25105" "302-1" 26 "9802840" "Bluffton Transfer Center" [32.22934717663374,-80.85359340751175] 196.60992885954005
22 "25229" "429 - Loop 7" 302 "10230287" "Colleton Heights Apts" [32.88833754547085,-80.69355673048528] 111.0584628804521
stop_without_stop_time WARNING 4

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.
40 "10249705" "Adult Education Walterboro"
76 "10424458" "Opp. Beach House - S Forest Beach"
78 "10524825" "Beach House - S Forest Beach"
196 "11417868" "Roseida Road @ Rosieda Road"
trip_distance_exceeds_shape_distance_below_threshold WARNING 25

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.

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.
"307-1" "25103" 96020.19166070015 95995.93764521259 0.0
"309-1" "28262" 46213.432985179046 46116.37881871316 0.0
"309-2" "25110" 50811.70910378235 50713.2638357591 0.0
"310-1" "25111" 119959.51578051005 119936.51368143606 0.0
"310-2" "25112" 119774.88829296896 119753.68944135089 0.0
"311-2" "25114" 120220.38500095125 120218.26738055535 0.0
"320-1" "25115" 139921.03687989636 139903.95345929737 0.0
"320-2" "25116" 138587.20291296876 138583.2482645703 0.0
"501-1" "30447" 66969.22194634496 66969.18954035202 0.0
"501-2" "30583" 27023.06403365955 27022.881997148954 0.0
"502-1" "30477" 81336.32359006477 81336.16557888828 0.0
"502-3" "30477" 81336.32359006477 81336.16557888828 0.0
"511-51-1" "30266" 11035.03587440765 11029.888929253075 0.0
"511-51-9" "30266" 11035.03587440765 11029.888929253075 0.0
"511-52-8" "30266" 11035.03587440765 11029.888929253075 0.0
"512-10" "29076" 12009.061825367113 12009.061825367107 0.0
"512-12" "29076" 12009.061825367113 12009.061825367107 0.0
"512-2" "29076" 12009.061825367113 12009.061825367107 0.0
"512-4" "29076" 12009.061825367113 12009.061825367107 0.0
"512-6" "29076" 12009.061825367113 12009.061825367107 0.0
"512-8" "29076" 12009.061825367113 12009.061825367107 0.0
"807-1" "29346" 32245.99911963386 32216.65342326933 0.0
"807-2" "29345" 28125.65643850546 28091.509955342637 0.0
"807-3" "29347" 29945.693611088303 29907.734257853008 0.0
"807-4" "29348" 30425.026229677565 30390.888183318795 0.0
unknown_file INFO 3

unknown_file

A file is unknown.

You can see more about this notice here.

filename (?) The name of the unknown file.
"calendar_attributes.txt"
"realtime_routes.txt"
"directions.txt"