GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-04-23T21:27:53Z,
for the dataset file:///shared/palmettobreeze_5c6ecba9.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-21
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: 26
  • Routes: 22
  • Shapes: 57
  • Stops: 386
  • Trips: 251

Specification Compliance report

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

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" 262 "stop_name" "Trolley Stop 10 - Coligny Beach Park "
"stops.txt" 293 "stop_name" "Bridge Pointe Apts "
"stops.txt" 314 "stop_name" "Bluffton Pkwy at Shell Hall "
"stops.txt" 372 "stop_name" "Fording Island Rd at Jim n Nicks "
"routes.txt" 7 "route_short_name" "502 "
"routes.txt" 18 "route_short_name" "811 "
"routes.txt" 19 "route_long_name" "802 HHI/Coligny Beach "
"routes.txt" 20 "route_long_name" "508 USCB Shuttle "
"routes.txt" 21 "route_short_name" "820 "
"routes.txt" 22 "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 1

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.
"trips.txt" "trip_headsign" "811 AM" 237
route_long_name_contains_short_name WARNING 20

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"
"6450" 7 "502" "502 St. Helena Shuttle"
"6480" 8 "307" "307 Gifford Commuter"
"6481" 9 "302" "302 St. Helena Commuter"
"6482" 10 "308" "308 Ridgeland Commuter"
"6483" 11 "309" "309 Sheldon Commuter"
"6484" 12 "310" "310 Fairfax Commuter"
"6485" 13 "311" "311 Allendale Commuter"
"6486" 14 "320" "320 Walterboro Commuter"
"6488" 15 "804" "804 Bluffton / Okatie"
"6489" 16 "807" "807 HHI/ Sea Pines"
"6490" 17 "810" "810 Palmetto Dunes"
"6491" 18 "811" "811 HHI/Pope Avenue"
"6619" 19 "802" "802 HHI/Coligny Beach"
"6627" 20 "508" "508 USCB Shuttle"
"6931" 21 "820" "820 Squire Pope/ Hilton Head Hospital/ The Western"
route_short_name_too_long WARNING 2

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`.
"6942" 22 "Beaufort, Shell Point, Port Royal Loop"
"6979" 23 "Beaufort, Shell Point, Port Royal Loop"
same_name_and_description_for_route WARNING 2

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"
20 "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
"502-1" "30477" 81336.32359006477 81336.20594231678 0.0
"502-2" "30466" 75119.34507828155 75118.69249836655 0.0
"502-3" "30477" 81336.32359006477 81336.20594231678 0.0
"502-4" "30466" 75119.34507828155 75118.69249836655 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"