birmingham-jefferson-usa — Source Data Validation Report

This report was generated by the Canonical GTFS Schedule validator, version 7.1.0 at 2026-03-28T02:46:01Z,
for the dataset file:///shared/birmingham-jefferson-usa_f1a5a5ac.zip. No country code was provided.

Use this report alongside our documentation.

Summary

Agencies included


Feed Info


Publisher Name:
Birmingham Jefferson County Transit Authority
Publisher URL:
https://www.bjcta.org/
Feed Email:
N/A
Feed Language:
English
Feed Start Date:
2024-06-03
Feed End Date:
2035-02-01

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: 1
  • Blocks: 78
  • Routes: 18
  • Shapes: 58
  • Stops: 1224
  • Trips: 1627

Specification Compliance report

4103 notices reported (0 errors, 4103 warnings, 0 infos)

Notice Code Severity Total
equal_shape_distance_diff_coordinates_distance_below_threshold WARNING 258

equal_shape_distance_diff_coordinates_distance_below_threshold

Two consecutive points have equal shape_dist_traveled and different lat/lon coordinates in shapes.txt and the distance between the two points is greater than 0 but less than 1.11m.

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 small difference of coordinates (greater than 0 but less than 1.11 m distance) result in a warning.

You can see more about this notice here.

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

shapeId (?) The id of the faulty shape. csvRowNumber (?) The row number from `shapes.txt`. shapeDistTraveled (?) The faulty record's `shape_dist_traveled` value. shapePtSequence (?) The faulty record's `shapes.shape_pt_sequence`. prevCsvRowNumber (?) The row number from `shapes.txt` of the previous shape point. prevShapeDistTraveled (?) The previous shape point's `shape_dist_traveled` value. prevShapePtSequence (?) The previous record's `shapes.shape_pt_sequence`. actualDistanceBetweenShapePoints (?) Actual distance traveled along the shape from the first shape point to the previous shape point.
"13997_shp" 20990 15333.322977 94 20989 15333.322977 93 1.131718718738739E-8
"13997_shp" 21019 21244.875291 123 21018 21244.875291 122 4.456142455033785E-8
"13997_shp" 21032 23422.356858 136 21031 23422.356858 135 1.131718718738739E-8
"13997_shp" 21186 47204.897129 290 21185 47204.897129 289 1.131718718738739E-8
"13997_shp" 21190 47557.765926 294 21189 47557.765926 293 1.131718718738739E-8
"13989_shp" 16613 3600.081535 22 16612 3600.081535 21 2.1927050175563068E-8
"13989_shp" 16639 7515.394359 48 16638 7515.394359 47 1.131718718738739E-8
"13989_shp" 16902 54431.160392 311 16901 54431.160392 310 1.0609862988175678E-8
"13989_shp" 17048 72257.397136 457 17047 72257.397136 456 1.131718718738739E-8
"13989_shp" 17069 74000.808901 478 17068 74000.808901 477 1.131718718738739E-8
"13962_shp" 2802 3579.988019 44 2801 3579.988019 43 1.0609862988175678E-8
"13962_shp" 2847 9932.241626 89 2846 9932.241626 88 1.131718718738739E-8
"13962_shp" 3009 28860.790044 251 3008 28860.790044 250 1.131718718738739E-8
"13962_shp" 3066 36849.086449 308 3065 36849.086449 307 1.0609862988175678E-8
"13962_shp" 3199 61602.764615 441 3198 61602.764615 440 1.0609862988175678E-8
"13962_shp" 3378 86369.548922 620 3377 86369.548922 619 1.131718718738739E-8
"13962_shp" 3417 89920.331013 659 3416 89920.331013 658 1.131718718738739E-8
"13970_shp" 7833 20156.118772 122 7832 20156.118772 121 1.131718718738739E-8
"14009_shp" 26014 10690.603638 115 26013 10690.603638 114 1.131718718738739E-8
"14009_shp" 26110 22097.46642 211 26109 22097.46642 210 1.131718718738739E-8
"14009_shp" 26172 33331.623448 273 26171 33331.623448 272 1.131718718738739E-8
"14009_shp" 26191 34760.030594 292 26190 34760.030594 291 1.131718718738739E-8
"14009_shp" 26216 37930.189067 317 26215 37930.189067 316 1.0609862988175678E-8
"13963_shp" 3535 8122.166088 78 3534 8122.166088 77 1.0609862988175678E-8
"13963_shp" 3701 34704.354393 244 3700 34704.354393 243 1.131718718738739E-8
"13963_shp" 3713 36285.550683 256 3712 36285.550683 255 1.131718718738739E-8
"13963_shp" 3737 39853.295214 280 3736 39853.295214 279 1.131718718738739E-8
"13963_shp" 3748 42303.321397 291 3747 42303.321397 290 1.0609862988175678E-8
"13963_shp" 3835 59279.120923 378 3834 59279.120923 377 1.0609862988175678E-8
"13963_shp" 3879 65512.233426 422 3878 65512.233426 421 1.0609862988175678E-8
"13963_shp" 3912 71239.585525 455 3911 71239.585525 454 1.131718718738739E-8
"13963_shp" 4053 88059.961538 596 4052 88059.961538 595 1.131718718738739E-8
"13963_shp" 4080 90926.43365 623 4079 90926.43365 622 1.131718718738739E-8
"13963_shp" 4101 92669.845415 644 4100 92669.845415 643 1.131718718738739E-8
"14016_shp" 27659 9285.481238 86 27658 9285.481238 85 1.131718718738739E-8
"14016_shp" 27682 11163.705865 109 27681 11163.705865 108 1.131718718738739E-8
"13998_shp" 21457 9890.808488 64 21456 9890.808488 63 1.131718718738739E-8
"13998_shp" 21486 15802.360802 93 21485 15802.360802 92 4.456142455033785E-8
"13998_shp" 21499 17979.84237 106 21498 17979.84237 105 1.131718718738739E-8
"13998_shp" 21653 41762.38264 260 21652 41762.38264 259 1.131718718738739E-8
"13998_shp" 21657 42115.251437 264 21656 42115.251437 263 1.131718718738739E-8
"13980_shp" 11117 5092.764925 66 11116 5092.764925 65 1.0609862988175678E-8
"13980_shp" 11151 8215.697973 100 11150 8215.697973 99 1.131718718738739E-8
"13980_shp" 11171 10206.351537 120 11170 10206.351537 119 1.0609862988175678E-8
"13980_shp" 11289 22665.852426 238 11288 22665.852426 237 1.0609862988175678E-8
"13980_shp" 11337 29282.5093 286 11336 29282.5093 285 1.0609862988175678E-8
"13980_shp" 11346 30619.794791 295 11345 30619.794791 294 8.98301732998874E-8
"13980_shp" 11502 49534.361723 451 11501 49534.361723 450 1.131718718738739E-8
"13996_shp" 20532 5365.477144 58 20531 5365.477144 57 1.131718718738739E-8
"13996_shp" 20750 29779.259123 276 20749 29779.259123 275 1.0609862988175678E-8
equal_shape_distance_same_coordinates WARNING 2107

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 2107 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`.
"13997_shp" 20900 473.700822 4 20899 473.700822 3
"13997_shp" 20907 1421.436568 11 20906 1421.436568 10
"13997_shp" 20912 2855.913941 16 20911 2855.913941 15
"13997_shp" 20917 3593.964567 21 20916 3593.964567 20
"13997_shp" 20924 4712.36442 28 20923 4712.36442 27
"13997_shp" 20927 5442.514489 31 20926 5442.514489 30
"13997_shp" 20931 5823.497586 35 20930 5823.497586 34
"13997_shp" 20935 6216.35477 39 20934 6216.35477 38
"13997_shp" 20943 6954.233664 47 20942 6954.233664 46
"13997_shp" 20949 7920.887325 53 20948 7920.887325 52
"13997_shp" 20959 8849.254465 63 20958 8849.254465 62
"13997_shp" 20966 10851.261495 70 20965 10851.261495 69
"13997_shp" 20969 11332.196803 73 20968 11332.196803 72
"13997_shp" 20975 12288.379231 79 20974 12288.379231 78
"13997_shp" 20979 13251.497613 83 20978 13251.497613 82
"13997_shp" 20987 15013.356693 91 20986 15013.356693 90
"13997_shp" 21003 18186.613103 107 21002 18186.613103 106
"13997_shp" 21010 19371.165599 114 21009 19371.165599 113
"13997_shp" 21037 24325.599144 141 21036 24325.599144 140
"13997_shp" 21047 26622.92319 151 21046 26622.92319 150
"13997_shp" 21056 27460.734962 160 21055 27460.734962 159
"13997_shp" 21074 29509.332869 178 21073 29509.332869 177
"13997_shp" 21098 32288.611138 202 21097 32288.611138 201
"13997_shp" 21163 43788.855098 267 21162 43788.855098 266
"13997_shp" 21168 44916.39631 272 21167 44916.39631 271
"13997_shp" 21175 45581.078053 279 21174 45581.078053 278
"13997_shp" 21181 46377.933025 285 21180 46377.933025 284
"13997_shp" 21196 48248.093341 300 21195 48248.093341 299
"13997_shp" 21200 48585.922912 304 21199 48585.922912 303
"13997_shp" 21214 49704.620905 318 21213 49704.620905 317
"13997_shp" 21227 50432.377621 331 21226 50432.377621 330
"13997_shp" 21232 51014.060277 336 21231 51014.060277 335
"13997_shp" 21242 53293.954959 346 21241 53293.954959 345
"13997_shp" 21252 54566.992431 356 21251 54566.992431 355
"13997_shp" 21261 56520.796448 365 21260 56520.796448 364
"13997_shp" 21267 57769.697117 371 21266 57769.697117 370
"13997_shp" 21274 58501.853068 378 21273 58501.853068 377
"13997_shp" 21278 58992.863818 382 21277 58992.863818 381
"13997_shp" 21285 60120.416164 389 21284 60120.416164 388
"13997_shp" 21292 61458.144463 396 21291 61458.144463 395
"13997_shp" 21304 62931.771256 408 21303 62931.771256 407
"13997_shp" 21312 64091.965367 416 21311 64091.965367 415
"13997_shp" 21322 66112.701081 426 21321 66112.701081 425
"13997_shp" 21325 66572.529642 429 21324 66572.529642 428
"13997_shp" 21331 67788.928473 435 21330 67788.928473 434
"13997_shp" 21334 68285.935717 438 21333 68285.935717 437
"13997_shp" 21340 68765.550185 444 21339 68765.550185 443
"13997_shp" 21350 70147.23554 454 21349 70147.23554 453
"13997_shp" 21363 71112.441465 467 21362 71112.441465 466
"13997_shp" 21374 72272.966217 478 21373 72272.966217 477
expired_calendar WARNING 3

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 "1002"
3 "1"
4 "1003"
fast_travel_between_consecutive_stops WARNING 17

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.
952 "t708-b36B1-sl3EA" "40" 322.17009153823216 0.3579667683758135 52049 1140 "1891" "27th St N and 30th Ave N" "18:19:00" 52050 1144 "2301" "30th Ave N and 24th St N" "18:19:04"
952 "t708-b36B1-sl3EA" "40" 249.88960542763724 0.20824133785636437 52050 1144 "2301" "30th Ave N and 24th St N" "18:19:04" 52051 1147 "2302" "24th St N and 32nd St N" "18:19:07"
952 "t708-b36B1-sl3EA" "40" 290.7614367247515 0.24230119727062627 52051 1147 "2302" "24th St N and 32nd St N" "18:19:07" 52052 1150 "2303" "24th St N and 34th Ave N" "18:19:10"
952 "t708-b36B1-sl3EA" "40" 195.63741008039847 0.10868745004466582 52052 1150 "2303" "24th St N and 34th Ave N" "18:19:10" 52053 1152 "2304" "24th St N and 35th St N" "18:19:12"
952 "t708-b36B1-sl3EA" "40" 336.25150963272716 0.373612788480808 52053 1152 "2304" "24th St N and 35th St N" "18:19:12" 52054 1156 "2305" "24th St and 39th Ave N" "18:19:16"
952 "t708-b36B1-sl3EA" "40" 258.78557904508835 0.2156546492042403 52054 1156 "2305" "24th St and 39th Ave N" "18:19:16" 52055 1159 "2306" "24th St N and 39th Court N (IB)" "18:19:19"
952 "t708-b36B1-sl3EA" "40" 220.96822872580833 0.6751806988844143 52055 1159 "2306" "24th St N and 39th Court N (IB)" "18:19:19" 52056 1170 "2307" "Daniel Payne Ct and Trax Dr" "18:19:30"
952 "t708-b36B1-sl3EA" "40" 216.40438659866757 0.5410109664966689 52056 1170 "2307" "Daniel Payne Ct and Trax Dr" "18:19:30" 52057 1179 "2308" "40th Ave W and Center St" "18:19:39"
952 "t708-b36B1-sl3EA" "40" 215.01945211745945 0.23891050235273273 52057 1179 "2308" "40th Ave W and Center St" "18:19:39" 52058 1183 "2309" "1st St W and 39th Ave" "18:19:43"
952 "t708-b36B1-sl3EA" "40" 351.1451242829529 0.1950806246016405 52058 1183 "2309" "1st St W and 39th Ave" "18:19:43" 52059 1185 "2310" "1st St W and 38th Ave" "18:19:45"
952 "t708-b36B1-sl3EA" "40" 179.7379935421781 0.14978166128514842 52059 1185 "2310" "1st St W and 38th Ave" "18:19:45" 52060 1188 "2311" "38th Ave W and 2nd St W (IB)" "18:19:48"
952 "t708-b36B1-sl3EA" "40" 251.93192764625033 0.13996218202569463 52060 1188 "2311" "38th Ave W and 2nd St W (IB)" "18:19:48" 52061 1190 "2312" "38th Ave W and 4th St W" "18:19:50"
952 "t708-b36B1-sl3EA" "40" 292.23883327055955 0.16235490737253308 52061 1190 "2312" "38th Ave W and 4th St W" "18:19:50" 52062 1192 "2313" "4th St W and 37th Ct W" "18:19:52"
952 "t708-b36B1-sl3EA" "40" 305.4332972001556 0.3393703302223951 52062 1192 "2313" "4th St W and 37th Ct W" "18:19:52" 52063 1196 "2314" "4th St W and 3rd St W" "18:19:56"
952 "t708-b36B1-sl3EA" "40" 324.98665366960995 0.18054814092756108 52063 1196 "2314" "4th St W and 3rd St W" "18:19:56" 52064 1198 "2315" "4th St W and 35th Ave W" "18:19:58"
952 "t708-b36B1-sl3EA" "40" 161.77086102404252 0.08987270056891251 52064 1198 "2315" "4th St W and 35th Ave W" "18:19:58" 52065 1200 "2316" "4th St and 34th Ave W" "18:20:00"
890 "t396-b332E-sl3EA" "31" 151.5273417921641 0.6313639241340171 14872 45 "2104" "Hwy 31 and Buena Vista Dr. (Quality Inn)" "09:18:45" 14873 60 "2105" "OLD TOWNE PLAZA" "09:19:00"
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
mixed_case_recommended_field WARNING 1713

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 1713 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" "CENTRAL STATION" 2
"stops.txt" "stop_name" "2ND AVE & 19TH ST" 5
"stops.txt" "stop_name" "COTTON AVE & 7TH STREET SW" 19
"stops.txt" "stop_name" "WESTEND ACADEMY" 27
"stops.txt" "stop_name" "JEFFERSON AVE & 40TH ST" 40
"stops.txt" "stop_name" "5TH AVE & 19TH ST-BESSEMER" 56
"stops.txt" "stop_name" "WESTLAKE MALL" 59
"stops.txt" "stop_name" "SOCIAL SECURITY BLDG" 70
"stops.txt" "stop_name" "WALMART - BESSEMER" 71
"stops.txt" "stop_name" "UABMEDICAL CENTER WEST" 74
"stops.txt" "stop_name" "5TH AVE & 18TH ST- BESSEMER" 83
"stops.txt" "stop_name" "JEFFERSON AVE & 31ST ST" 104
"stops.txt" "stop_name" "PEARSON AVE and 18TH PL SW. (WESTEND ACA" 111
"stops.txt" "stop_name" "JEFFERSON AVE & 18TH WAY" 139
"stops.txt" "stop_name" "WILSON & HOWARD" 160
"stops.txt" "stop_name" "3RD AVE W & 12TH ST" 181
"stops.txt" "stop_name" "3RD AVE & 12TH ST" 205
"stops.txt" "stop_name" "1ST AVE & 19TH ST" 206
"stops.txt" "stop_name" "4TH AVE & 19TH ST" 210
"stops.txt" "stop_name" "8TH AVE & CENTER ST" 222
"stops.txt" "stop_name" "PRATT CITY 2ND AVE & AVE W" 240
"stops.txt" "stop_name" "ENSLEY AVE F & 18TH ST" 256
"stops.txt" "stop_name" "5TH AVE & 22ND ST" 311
"stops.txt" "stop_name" "UABAND KIRKLIN CLINIC" 317
"stops.txt" "stop_name" "FIVE POINTS SOUTH" 320
"stops.txt" "stop_name" "HIGHLAND & 21ST ST" 321
"stops.txt" "stop_name" "20TH ST & 11 AVE SO" 322
"stops.txt" "stop_name" "12TH AVE & 14TH PL" 341
"stops.txt" "stop_name" "IDLEWILD CIRCLE" 344
"stops.txt" "stop_name" "OXMOOR ROAD & BARBER COURT" 360
"stops.txt" "stop_name" "IDLEWILD CIRCLE (IB)" 378
"stops.txt" "stop_name" "3RD AVE SO & 43RD ST" 401
"stops.txt" "stop_name" "GEORGIA ROAD & KIMBERLY AVENUE" 418
"stops.txt" "stop_name" "BRUSSELS CIRCLE & DUBLIN" 427
"stops.txt" "stop_name" "EASTWOOD WALMART" 429
"stops.txt" "stop_name" "3RD AVE S AND 43RD ST (IB)" 450
"stops.txt" "stop_name" "10TH AVE & COOSA ST" 520
"stops.txt" "stop_name" "43RD ST & 43RD PLACE" 531
"stops.txt" "stop_name" "30TH AVENUE & 27TH ST" 590
"stops.txt" "stop_name" "43RD AVENUE & 37TH ST" 615
"stops.txt" "stop_name" "8TH AVE & 24TH ST" 642
"stops.txt" "stop_name" "1ST AVENUE & 68TH ST" 644
"stops.txt" "stop_name" "ROEBUCK SHOPPING CENTER" 645
"stops.txt" "stop_name" "CENTERPOINT PKWY & 23RD AVE" 661
"stops.txt" "stop_name" "JEFFERSON STATE COLLEGE" 669
"stops.txt" "stop_name" "23RD AVE & CENTERPOINT PKWY" 677
"stops.txt" "stop_name" "RED LANE ROAD AND WALMART" 694
"stops.txt" "stop_name" "RED LANE & SHOPPING CENTER" 720
"stops.txt" "stop_name" "2ND AVE SO & 80TH ST" 727
"stops.txt" "stop_name" "VESTAVIA CITY CENTER" 744
route_color_contrast WARNING 3

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" 4 "#80CEE4" "#FFFFFF"
"40" 14 "#94F0B5" "#FFFFFF"
"48" 16 "#ECB7B0" "#FFFFFF"
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.
"20260328" "20240603" "20250530"