GTFS Schedule Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-01-23T18:34:41Z,
for the dataset file:///shared/clarksville.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
N/A
Publisher URL:
N/A
Feed Email:
N/A
Feed Language:
N/A

Files included


  1. agency.txt
  2. calendar.txt
  3. calendar_dates.txt
  4. fare_attributes.txt
  5. fare_rules.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: 1
  • Blocks: 33
  • Routes: 13
  • Shapes: 18
  • Stops: 752
  • Trips: 328

Specification Compliance report

8202 notices reported (0 errors, 8194 warnings, 8 infos)

Notice Code Severity Total
equal_shape_distance_same_coordinates WARNING 6251

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 6251 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`.
"4 - Peachers Mill" 712 25.44471654991843 4 711 25.44471654991843 3
"4 - Peachers Mill" 714 47.92826693017441 6 713 47.92826693017441 5
"4 - Peachers Mill" 718 87.77806550354586 10 717 87.77806550354586 9
"4 - Peachers Mill" 720 105.06461492964264 12 719 105.06461492964264 11
"4 - Peachers Mill" 722 124.7352905239948 14 721 124.7352905239948 13
"4 - Peachers Mill" 724 146.55633434256677 16 723 146.55633434256677 15
"4 - Peachers Mill" 726 169.68399589931838 18 725 169.68399589931838 17
"4 - Peachers Mill" 728 192.81165307297115 20 727 192.81165307297115 19
"4 - Peachers Mill" 730 216.19734348676653 22 729 216.19734348676653 21
"4 - Peachers Mill" 732 240.3984888067299 24 731 240.3984888067299 23
"4 - Peachers Mill" 734 263.5261326104747 26 733 263.5261326104747 25
"4 - Peachers Mill" 736 286.6537720307354 28 735 286.6537720307354 27
"4 - Peachers Mill" 742 332.6513903313025 34 741 332.6513903313025 33
"4 - Peachers Mill" 744 351.0872026733408 36 743 351.0872026733408 35
"4 - Peachers Mill" 746 370.67897993683124 38 745 370.67897993683124 37
"4 - Peachers Mill" 750 392.59334995609635 42 749 392.59334995609635 41
"4 - Peachers Mill" 752 404.28618398055363 44 751 404.28618398055363 43
"4 - Peachers Mill" 754 419.1934751413213 46 753 419.1934751413213 45
"4 - Peachers Mill" 756 435.40726203200524 48 755 435.40726203200524 47
"4 - Peachers Mill" 758 455.0779003294188 50 757 455.0779003294188 49
"4 - Peachers Mill" 760 477.9795464600944 52 759 477.9795464600944 51
"4 - Peachers Mill" 762 502.18066287519355 54 761 502.18066287519355 53
"4 - Peachers Mill" 764 525.3082764330356 56 763 525.3082764330356 55
"4 - Peachers Mill" 766 549.5093842604671 58 765 549.5093842604671 57
"4 - Peachers Mill" 768 572.6369888320122 60 767 572.6369888320122 59
"4 - Peachers Mill" 772 620.0053795123389 64 771 620.0053795123389 63
"4 - Peachers Mill" 774 645.2834037334877 66 773 645.2834037334877 65
"4 - Peachers Mill" 776 672.9417874241324 68 775 672.9417874241324 67
"4 - Peachers Mill" 778 701.6769019400261 70 777 701.6769019400261 69
"4 - Peachers Mill" 780 729.3352739009705 72 779 729.3352739009705 71
"4 - Peachers Mill" 782 758.0703771263408 74 781 758.0703771263408 73
"4 - Peachers Mill" 784 786.805474591377 76 783 786.805474591377 75
"4 - Peachers Mill" 786 815.5405662952967 78 785 815.5405662952967 77
"4 - Peachers Mill" 788 849.0394443985571 80 787 849.0394443985571 79
"4 - Peachers Mill" 790 883.3918289512654 82 789 883.3918289512654 81
"4 - Peachers Mill" 792 917.9647457270447 84 791 917.9647457270447 83
"4 - Peachers Mill" 794 951.2359398138738 86 793 951.2359398138738 85
"4 - Peachers Mill" 796 986.0509642880237 88 795 986.0509642880237 87
"4 - Peachers Mill" 798 1019.7996267703844 90 797 1019.7996267703844 89
"4 - Peachers Mill" 800 1053.5482784960773 92 799 1053.5482784960773 91
"4 - Peachers Mill" 802 1088.5078513600893 94 801 1088.5078513600893 93
"4 - Peachers Mill" 804 1121.7971862141653 96 803 1121.7971862141653 95
"4 - Peachers Mill" 806 1157.109635251071 98 805 1157.109635251071 97
"4 - Peachers Mill" 808 1191.407346281201 100 807 1191.407346281201 99
"4 - Peachers Mill" 810 1226.087759162582 102 809 1226.087759162582 101
"4 - Peachers Mill" 812 1260.7681479044932 104 811 1260.7681479044932 103
"4 - Peachers Mill" 814 1295.8498638584429 106 813 1295.8498638584429 105
"4 - Peachers Mill" 816 1330.9315530594056 108 815 1330.9315530594056 107
"4 - Peachers Mill" 818 1367.00588703778 110 817 1367.00588703778 109
"4 - Peachers Mill" 820 1402.5068658882053 112 819 1402.5068658882053 111
expired_calendar WARNING 45

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

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.

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

filename (?) The name of the faulty file. csvRowNumber (?) The row of the faulty record. fieldName (?) Faulty record's field name. fieldValue (?) Faulty value.
"shapes.txt" 12445 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12446 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12447 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12448 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12449 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12450 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12451 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12452 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12453 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12454 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12455 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12456 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12457 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12458 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12459 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12460 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12461 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12462 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12463 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12464 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12465 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12466 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12467 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12468 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12469 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12470 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12471 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12472 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12473 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12474 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12475 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12476 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12477 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12478 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12479 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12480 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12481 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12482 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12483 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12484 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12485 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12486 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12487 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12488 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12489 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12490 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12491 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12492 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12493 "shape_id" "Rt. 5 A.M. express run "
"shapes.txt" 12494 "shape_id" "Rt. 5 A.M. express run "
missing_recommended_field WARNING 13

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.
"routes.txt" 2 "agency_id"
"routes.txt" 3 "agency_id"
"routes.txt" 4 "agency_id"
"routes.txt" 5 "agency_id"
"routes.txt" 6 "agency_id"
"routes.txt" 7 "agency_id"
"routes.txt" 8 "agency_id"
"routes.txt" 9 "agency_id"
"routes.txt" 10 "agency_id"
"routes.txt" 11 "agency_id"
"routes.txt" 12 "agency_id"
"routes.txt" 13 "agency_id"
"routes.txt" 14 "agency_id"
missing_recommended_file WARNING 1

missing_recommended_file

A recommended file is missing.

You can see more about this notice here.

filename (?) The name of the faulty file.
"feed_info.txt"
mixed_case_recommended_field WARNING 3

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" "8EXP" 11
"stops.txt" "stop_name" "1594 VISTA LN" 559
"stops.txt" "stop_name" "8th & college" 609
route_color_contrast WARNING 2

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.
"5" 5 "#E6B122" "#F5F5F5"
"12" 6 "#95FF1C" "#F5F5F5"
route_long_name_contains_short_name WARNING 8

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`.
"11" 2 "1" "1 - Ft. Campbell"
"10" 3 "2" "2 - Tiny Town Road"
"9" 4 "3" "3 - Cunningham Loop"
"5" 5 "4" "4 - Peachers Mill RD"
"12" 6 "5" "5 - Hilldale"
"6" 9 "7" "7 - Governor's Square Mall"
"7" 10 "8" "8 - Hospital/101 Express"
"1" 14 "1000" "1000 - Industrial Park Shuttle"
stop_without_stop_time WARNING 127

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 127 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.
232 "313" "State Line Rd and Durrett Dr"
395 "590" "FtC Walmart"
396 "591" "College St & N 2nd"
397 "593" "Providence & Walnut"
398 "600" "Providence Blvd & Riverside Dr"
399 "601" "Riverside Dr & Jefferson St"
400 "604" "Peachers Mill & Pine Mountain"
401 "606" "Pollard & Peachers Mill Rd"
402 "608" "Peachers Mill & Providence"
403 "613" "Riverside & Cumberland"
404 "621" "Madison St. Walmart"
405 "624" "Daniel & Richardson"
406 "626" "Riverside @ College"
407 "627" "Riverside @ N 2nd"
408 "628" "S 2nd & Commerce"
409 "630" "S 2nd & Crossland"
410 "633" "Madison St. & Pageant"
411 "634" "Madison & Liberty"
412 "637" "Memorial Dr & Publix Plaza"
413 "640" "Greenwood & Washington St"
414 "644" "Wilma & Dunbar"
415 "646" "Austin Square"
416 "647" "Governor's Square Mall"
417 "648" "St. B Walmart"
418 "649" "Wilma & 101st"
419 "650" "Wilma & W Dunbar"
420 "651" "Wilma & Centerpoint"
421 "652" "Franklin & University"
422 "655" "Ted Crozier & Dunlop"
423 "656" "Tennova Medical Center"
424 "657" "Holiday & Wilma"
425 "659" "Needmore & Trenton"
426 "661" "Whitfield & 101st"
427 "663" "101st & Whitfield"
428 "666" "College & Home"
429 "667" "Hand Village"
430 "668" "Castle Heights"
431 "669" "Castle Heights & Marion"
432 "670" "Drane & Govs Lane"
433 "671" "Morgan University Center"
434 "672" "Marian & Henry"
435 "673" "Marion & 8th"
436 "674" "8th & Marion"
437 "675" "Trahern Building"
438 "677" "Marion & Robb"
439 "678" "Dunn Center"
440 "679" "Robb & Patrick"
441 "680" "Polk & Patrick"
442 "681" "Robb & Farris"
443 "682" "Marion & Drane"
stops_match_shape_out_of_order WARNING 1

stops_match_shape_out_of_order

Two stop entries are different than their arrival-departure order defined by shapes.txt.

This could indicate a problem with the location of the stops, the path of the shape, or the sequence of the stops for their trip.

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. stopTimeCsvRowNumber1 (?) The row number of the first faulty record from `stop_times.txt`. stopId1 (?) The id of the first stop that is referred to. stopName1 (?) The name of the first stop that is referred to. match1 (?) Latitude and longitude pair of the first matching location. stopTimeCsvRowNumber2 (?) The row number of the second faulty record from `stop_times.txt`. stopId2 (?) The id of the second stop that is referred to. stopName2 (?) The name of the second stop that is referred to. match2 (?) Latitude and longitude pair of the second matching location.
88 "111" "1938" 3034 "19" "State Line Rd and TM Liquor and Wine" [36.6409000003994,-87.43468475008396] 3033 "474" "Stateline Rd and Durrett Center" [36.64090000003294,-87.43476105003633]
trip_coverage_not_active_for_next7_days WARNING 1

trip_coverage_not_active_for_next7_days

Trips data should be valid for at least the next seven days.

This notice is triggered if the date range where a significant number of trips are running ends in less than 7 days.

You can see more about this notice here.

currentDate (?) Current date (YYYYMMDD format). serviceWindowStartDate (?) The start date of the majority service window. serviceWindowEndDate (?) The end date of the majority service window.
"20260123" "20210315" "20230222"
unknown_column INFO 8

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.
"calendar.txt" "service_name" 11
"calendar.txt" "eta_schedule_id" 12
"routes.txt" "eta_corridor_id" 11
"shapes.txt" "eta_pattern_id" 6
"stops.txt" "eta_station_id" 12
"trips.txt" "eta_train_id" 9
"trips.txt" "block_service_id" 10
"trips.txt" "block_name" 11