service_date date32 | trip_id string | route_id string | stop_sequence int64 | stop_id string | stop_position string | scheduled_arrival_utc timestamp[us] | scheduled_departure_utc timestamp[us] | held_arrival_utc timestamp[us] | held_departure_utc timestamp[us] | arrival_marker bool | departure_marker bool | last_stop_relationship string | last_seen_utc timestamp[us] | in_scope bool | is_timing_stop bool | status string | delay_s int64 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2026-09-01 | 76110000043899102 | 9011007012300000 | 56 | 9022007065056001 | intermediate | 2026-09-01T16:05:08 | 2026-09-01T16:05:08 | 2026-09-01T16:10:04 | 2026-09-01T16:10:38 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 330 |
2026-09-01 | 76110000043899102 | 9011007012300000 | 57 | 9022007065055001 | intermediate | 2026-09-01T16:06:36 | 2026-09-01T16:06:36 | 2026-09-01T16:11:59 | 2026-09-01T16:11:59 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 323 |
2026-09-01 | 76110000043899102 | 9011007012300000 | 58 | 9022007065054001 | intermediate | 2026-09-01T16:09:02 | 2026-09-01T16:09:02 | 2026-09-01T16:13:17 | 2026-09-01T16:13:17 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 255 |
2026-09-01 | 76110000043899102 | 9011007012300000 | 59 | 9022007065053001 | intermediate | 2026-09-01T16:10:14 | 2026-09-01T16:10:14 | 2026-09-01T16:14:10 | 2026-09-01T16:14:25 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 251 |
2026-09-01 | 76110000043899102 | 9011007012300000 | 60 | 9022007065130007 | final | 2026-09-01T16:15:00 | 2026-09-01T16:15:00 | 2026-09-01T16:17:02 | 2026-09-01T16:17:02 | false | false | SCHEDULED | 2026-09-01T16:18:19 | true | true | null | null |
2026-09-01 | 76110000043924436 | 9011007015700000 | 29 | 9022007065059001 | intermediate | 2026-09-01T16:08:49 | 2026-09-01T16:08:49 | 2026-09-01T16:08:10 | 2026-09-01T16:08:10 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -39 |
2026-09-01 | 76110000043947254 | 9011007024200000 | 38 | 9022007080213002 | intermediate | 2026-09-01T16:06:27 | 2026-09-01T16:06:27 | 2026-09-01T16:08:24 | 2026-09-01T16:08:24 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 117 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 24 | 9022007080128001 | intermediate | 2026-09-01T15:55:35 | 2026-09-01T15:55:35 | 2026-09-01T16:08:24 | 2026-09-01T16:08:35 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 780 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 25 | 9022007080129002 | intermediate | 2026-09-01T15:56:59 | 2026-09-01T15:56:59 | 2026-09-01T16:09:47 | 2026-09-01T16:09:47 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 768 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 26 | 9022007080133002 | intermediate | 2026-09-01T15:57:33 | 2026-09-01T15:57:33 | 2026-09-01T16:10:17 | 2026-09-01T16:10:17 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 764 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 27 | 9022007080134002 | intermediate | 2026-09-01T15:58:13 | 2026-09-01T15:58:13 | 2026-09-01T16:10:49 | 2026-09-01T16:11:02 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 769 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 28 | 9022007080135002 | intermediate | 2026-09-01T15:59:20 | 2026-09-01T15:59:20 | 2026-09-01T16:11:57 | 2026-09-01T16:11:57 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 757 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 29 | 9022007080137002 | intermediate | 2026-09-01T16:00:40 | 2026-09-01T16:00:40 | 2026-09-01T16:13:11 | 2026-09-01T16:13:32 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 772 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 30 | 9022007080138002 | intermediate | 2026-09-01T16:01:44 | 2026-09-01T16:01:44 | 2026-09-01T16:14:21 | 2026-09-01T16:14:21 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 757 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 31 | 9022007080139002 | intermediate | 2026-09-01T16:02:48 | 2026-09-01T16:02:48 | 2026-09-01T16:15:30 | 2026-09-01T16:15:30 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 762 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 32 | 9022007080772002 | intermediate | 2026-09-01T16:03:45 | 2026-09-01T16:03:45 | 2026-09-01T16:16:17 | 2026-09-01T16:16:17 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 752 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 33 | 9022007080744001 | intermediate | 2026-09-01T16:04:57 | 2026-09-01T16:04:57 | 2026-09-01T16:17:36 | 2026-09-01T16:17:36 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 759 |
2026-09-01 | 76110000044221656 | 9011007000400000 | 34 | 9022007080262001 | final | 2026-09-01T16:08:00 | 2026-09-01T16:08:00 | 2026-09-01T16:18:12 | 2026-09-01T16:18:13 | false | false | SCHEDULED | 2026-09-01T16:18:19 | true | true | null | null |
2026-09-01 | 76110000043630658 | 9011007027300000 | 31 | 9022006003054002 | intermediate | 2026-09-01T16:08:43 | 2026-09-01T16:08:43 | 2026-09-01T16:08:31 | 2026-09-01T16:08:31 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -12 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 27 | 9022007064167001 | intermediate | 2026-09-01T16:08:44 | 2026-09-01T16:08:44 | 2026-09-01T16:08:29 | 2026-09-01T16:08:29 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -15 |
2026-09-01 | 76110000043927081 | 9011007017500000 | 20 | 9022007081295002 | intermediate | 2026-09-01T16:06:32 | 2026-09-01T16:06:32 | 2026-09-01T16:08:42 | 2026-09-01T16:08:42 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 130 |
2026-09-01 | 76110000044426688 | 9011007031000000 | 23 | 9022007080486001 | intermediate | 2026-09-01T16:01:45 | 2026-09-01T16:01:45 | 2026-09-01T16:08:20 | 2026-09-01T16:08:40 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 415 |
2026-09-01 | 76110000041839374 | 9011007015000000 | 28 | 9022007067023001 | intermediate | 2026-09-01T16:06:24 | 2026-09-01T16:06:24 | 2026-09-01T16:08:22 | 2026-09-01T16:08:22 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 118 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 23 | 9022007080003001 | intermediate | 2026-09-01T16:09:06 | 2026-09-01T16:09:06 | 2026-09-01T16:08:43 | 2026-09-01T16:08:55 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -11 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 24 | 9022007080222001 | intermediate | 2026-09-01T16:10:20 | 2026-09-01T16:10:20 | 2026-09-01T16:09:37 | 2026-09-01T16:09:37 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -43 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 25 | 9022007080004001 | intermediate | 2026-09-01T16:11:43 | 2026-09-01T16:11:43 | 2026-09-01T16:10:37 | 2026-09-01T16:10:52 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -51 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 26 | 9022007080005001 | intermediate | 2026-09-01T16:13:41 | 2026-09-01T16:13:41 | 2026-09-01T16:12:49 | 2026-09-01T16:13:00 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -41 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 27 | 9022007080006001 | intermediate | 2026-09-01T16:15:22 | 2026-09-01T16:15:22 | 2026-09-01T16:14:06 | 2026-09-01T16:14:26 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -56 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 28 | 9022007080007001 | intermediate | 2026-09-01T16:16:28 | 2026-09-01T16:16:28 | 2026-09-01T16:14:56 | 2026-09-01T16:14:56 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -92 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 29 | 9022007080008001 | intermediate | 2026-09-01T16:17:37 | 2026-09-01T16:17:37 | 2026-09-01T16:15:59 | 2026-09-01T16:15:59 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -98 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 30 | 9022007080009001 | intermediate | 2026-09-01T16:18:40 | 2026-09-01T16:18:40 | 2026-09-01T16:16:32 | 2026-09-01T16:16:32 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -128 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 31 | 9022007080010001 | intermediate | 2026-09-01T16:19:38 | 2026-09-01T16:19:38 | 2026-09-01T16:17:09 | 2026-09-01T16:17:09 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -149 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 32 | 9022007080011001 | intermediate | 2026-09-01T16:20:14 | 2026-09-01T16:20:14 | 2026-09-01T16:17:29 | 2026-09-01T16:17:29 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -165 |
2026-09-01 | 76110000042492034 | 9011007000100000 | 33 | 9022007080012002 | final | 2026-09-01T16:23:00 | 2026-09-01T16:23:00 | 2026-09-01T16:18:13 | 2026-09-01T16:18:13 | true | false | SCHEDULED | 2026-09-01T16:18:19 | true | true | null | null |
2026-09-01 | 76110000044221698 | 9011007000400000 | 22 | 9022007080152002 | intermediate | 2026-09-01T16:06:57 | 2026-09-01T16:06:57 | 2026-09-01T16:08:42 | 2026-09-01T16:08:42 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 105 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 19 | 9022007080057002 | intermediate | 2026-09-01T16:07:10 | 2026-09-01T16:07:10 | 2026-09-01T16:08:49 | 2026-09-01T16:09:02 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 112 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 20 | 9022007080058002 | intermediate | 2026-09-01T16:08:05 | 2026-09-01T16:08:05 | 2026-09-01T16:09:40 | 2026-09-01T16:09:50 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 105 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 21 | 9022007080059002 | intermediate | 2026-09-01T16:08:53 | 2026-09-01T16:08:53 | 2026-09-01T16:10:16 | 2026-09-01T16:10:16 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 83 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 22 | 9022007080224002 | intermediate | 2026-09-01T16:09:44 | 2026-09-01T16:09:44 | 2026-09-01T16:10:55 | 2026-09-01T16:10:55 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 71 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 23 | 9022007080061002 | intermediate | 2026-09-01T16:10:54 | 2026-09-01T16:10:54 | 2026-09-01T16:11:44 | 2026-09-01T16:11:44 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 50 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 24 | 9022007080060002 | intermediate | 2026-09-01T16:11:49 | 2026-09-01T16:11:49 | 2026-09-01T16:12:04 | 2026-09-01T16:12:04 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 15 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 25 | 9022007080227002 | intermediate | 2026-09-01T16:12:44 | 2026-09-01T16:12:44 | 2026-09-01T16:12:45 | 2026-09-01T16:12:45 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 1 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 26 | 9022007080062002 | intermediate | 2026-09-01T16:14:02 | 2026-09-01T16:14:02 | 2026-09-01T16:13:50 | 2026-09-01T16:13:58 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -4 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 27 | 9022007080063002 | intermediate | 2026-09-01T16:14:56 | 2026-09-01T16:14:56 | 2026-09-01T16:14:30 | 2026-09-01T16:14:30 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -26 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 28 | 9022007080064002 | intermediate | 2026-09-01T16:15:32 | 2026-09-01T16:15:32 | 2026-09-01T16:14:51 | 2026-09-01T16:14:51 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -41 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 29 | 9022007080065002 | intermediate | 2026-09-01T16:16:23 | 2026-09-01T16:16:23 | 2026-09-01T16:15:18 | 2026-09-01T16:15:18 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -65 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 30 | 9022007080282002 | intermediate | 2026-09-01T16:18:03 | 2026-09-01T16:18:03 | 2026-09-01T16:16:16 | 2026-09-01T16:16:16 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -107 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 31 | 9022007080068002 | intermediate | 2026-09-01T16:19:07 | 2026-09-01T16:19:07 | 2026-09-01T16:17:11 | 2026-09-01T16:17:11 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -116 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 32 | 9022007080292002 | intermediate | 2026-09-01T16:19:31 | 2026-09-01T16:19:31 | 2026-09-01T16:17:37 | 2026-09-01T16:17:37 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -114 |
2026-09-01 | 76110000042496211 | 9011007000100000 | 33 | 9022007080293002 | final | 2026-09-01T16:22:00 | 2026-09-01T16:22:00 | 2026-09-01T16:18:24 | 2026-09-01T16:18:24 | false | false | SCHEDULED | 2026-09-01T16:18:19 | true | true | null | null |
2026-09-01 | 76110000042492074 | 9011007000100000 | 18 | 9022007080052001 | intermediate | 2026-09-01T16:08:39 | 2026-09-01T16:08:39 | 2026-09-01T16:06:17 | 2026-09-01T16:06:17 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -142 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 16 | 9022007080086002 | intermediate | 2026-09-01T16:07:58 | 2026-09-01T16:07:58 | 2026-09-01T16:08:51 | 2026-09-01T16:08:51 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 53 |
2026-09-01 | 76110000042521654 | 9011007000700000 | 11 | 9022007080223001 | intermediate | 2026-09-01T16:08:05 | 2026-09-01T16:08:05 | 2026-09-01T16:08:24 | 2026-09-01T16:08:24 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 19 |
2026-09-01 | 76110000044221740 | 9011007000400000 | 9 | 9022007080027001 | intermediate | 2026-09-01T16:05:25 | 2026-09-01T16:05:25 | 2026-09-01T16:08:17 | 2026-09-01T16:08:30 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 185 |
2026-09-01 | 76110000043637777 | 9011007036100000 | 7 | 9022007063342001 | intermediate | 2026-09-01T16:06:14 | 2026-09-01T16:06:14 | 2026-09-01T16:08:48 | 2026-09-01T16:08:48 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 154 |
2026-09-01 | 76110000043944920 | 9011007024000000 | 7 | 9022007063351002 | intermediate | 2026-09-01T16:05:41 | 2026-09-01T16:05:41 | 2026-09-01T16:08:32 | 2026-09-01T16:08:32 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 171 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 7 | 9022007080466002 | intermediate | 2026-09-01T16:10:11 | 2026-09-01T16:10:11 | 2026-09-01T16:08:19 | 2026-09-01T16:08:19 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -112 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 8 | 9022007080454002 | intermediate | 2026-09-01T16:11:14 | 2026-09-01T16:11:14 | 2026-09-01T16:09:07 | 2026-09-01T16:09:07 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -127 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 9 | 9022007080455002 | intermediate | 2026-09-01T16:13:11 | 2026-09-01T16:13:11 | 2026-09-01T16:10:37 | 2026-09-01T16:10:37 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -154 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 10 | 9022007080513002 | intermediate | 2026-09-01T16:15:03 | 2026-09-01T16:15:03 | 2026-09-01T16:12:09 | 2026-09-01T16:12:09 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -174 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 11 | 9022007080499002 | intermediate | 2026-09-01T16:16:55 | 2026-09-01T16:16:55 | 2026-09-01T16:14:16 | 2026-09-01T16:14:16 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -159 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 12 | 9022007080500002 | intermediate | 2026-09-01T16:18:01 | 2026-09-01T16:18:01 | 2026-09-01T16:15:00 | 2026-09-01T16:15:00 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -181 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 13 | 9022007080501002 | intermediate | 2026-09-01T16:19:39 | 2026-09-01T16:19:39 | 2026-09-01T16:16:16 | 2026-09-01T16:16:16 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -203 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 14 | 9022007080870002 | intermediate | 2026-09-01T16:21:09 | 2026-09-01T16:21:09 | 2026-09-01T16:17:40 | 2026-09-01T16:17:40 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -209 |
2026-09-01 | 76110000044379435 | 9011007034000000 | 15 | 9022007080503002 | final | 2026-09-01T16:25:00 | 2026-09-01T16:25:00 | 2026-09-01T16:18:46 | 2026-09-01T16:18:46 | false | false | SCHEDULED | 2026-09-01T16:18:19 | true | true | null | null |
2026-09-01 | 76110000043895731 | 9011007010600000 | 3 | 9022007064017002 | intermediate | 2026-09-01T16:08:46 | 2026-09-01T16:08:46 | 2026-09-01T16:07:07 | 2026-09-01T16:07:07 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | -99 |
2026-09-01 | 76110000044224295 | 9011007000400000 | 6 | 9022007080135001 | intermediate | 2026-09-01T16:08:46 | 2026-09-01T16:08:46 | 2026-09-01T16:08:42 | 2026-09-01T16:08:55 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 9 |
2026-09-01 | 76110000042346585 | 9011007000700000 | 5 | 9022007080009002 | intermediate | 2026-09-01T16:07:39 | 2026-09-01T16:07:39 | 2026-09-01T16:08:45 | 2026-09-01T16:08:45 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 66 |
2026-09-01 | 76110000043928773 | 9011007021500000 | 5 | 9022007080361001 | intermediate | 2026-09-01T16:07:23 | 2026-09-01T16:07:23 | 2026-09-01T16:08:36 | 2026-09-01T16:08:36 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 73 |
2026-09-01 | 76110000043578467 | 9011007000500000 | 4 | 9022007080195001 | intermediate | 2026-09-01T16:08:01 | 2026-09-01T16:08:01 | 2026-09-01T16:08:42 | 2026-09-01T16:08:42 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | false | observed | 41 |
2026-09-01 | 76110000042420901 | 9011007000300000 | 4 | 9022007080268001 | intermediate | 2026-09-01T16:08:00 | 2026-09-01T16:08:00 | 2026-09-01T16:07:38 | 2026-09-01T16:08:35 | true | true | SCHEDULED | 2026-09-01T16:18:19 | true | true | observed | 35 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 28 | 9022007064168001 | intermediate | 2026-09-01T16:10:04 | 2026-09-01T16:10:04 | 2026-09-01T16:09:35 | 2026-09-01T16:09:35 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -29 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 29 | 9022007064270001 | intermediate | 2026-09-01T16:12:00 | 2026-09-01T16:12:00 | 2026-09-01T16:10:16 | 2026-09-01T16:10:16 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | true | observed | -104 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 30 | 9022007064173001 | intermediate | 2026-09-01T16:13:37 | 2026-09-01T16:13:37 | 2026-09-01T16:13:28 | 2026-09-01T16:13:28 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -9 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 31 | 9022007064162001 | intermediate | 2026-09-01T16:14:52 | 2026-09-01T16:14:52 | 2026-09-01T16:15:08 | 2026-09-01T16:15:08 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 16 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 32 | 9022007064174001 | intermediate | 2026-09-01T16:15:37 | 2026-09-01T16:15:37 | 2026-09-01T16:15:55 | 2026-09-01T16:15:55 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 18 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 33 | 9022007064055001 | intermediate | 2026-09-01T16:16:33 | 2026-09-01T16:16:33 | 2026-09-01T16:16:52 | 2026-09-01T16:16:52 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 19 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 34 | 9022007064054002 | intermediate | 2026-09-01T16:17:48 | 2026-09-01T16:17:48 | 2026-09-01T16:18:08 | 2026-09-01T16:18:08 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 20 |
2026-09-01 | 76110000044112145 | 9011007014200000 | 35 | 9022007064175001 | final | 2026-09-01T16:20:00 | 2026-09-01T16:20:00 | 2026-09-01T16:19:23 | 2026-09-01T16:19:23 | false | false | SCHEDULED | 2026-09-01T16:18:55 | true | true | null | null |
2026-09-01 | 76110000043940743 | 9011007024000000 | 26 | 9022007080355001 | intermediate | 2026-09-01T16:05:27 | 2026-09-01T16:05:27 | 2026-09-01T16:09:09 | 2026-09-01T16:09:09 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 222 |
2026-09-01 | 76110000043943527 | 9011007024000000 | 25 | 9022007080332002 | intermediate | 2026-09-01T16:06:33 | 2026-09-01T16:06:33 | 2026-09-01T16:08:46 | 2026-09-01T16:09:07 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 154 |
2026-09-01 | 76110000044224254 | 9011007000400000 | 18 | 9022007080800006 | intermediate | 2026-09-01T16:06:53 | 2026-09-01T16:06:53 | 2026-09-01T16:07:39 | 2026-09-01T16:09:00 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 127 |
2026-09-01 | 76110000042420879 | 9011007000300000 | 5 | 9022007080273001 | intermediate | 2026-09-01T15:55:05 | 2026-09-01T15:55:05 | 2026-09-01T16:08:44 | 2026-09-01T16:08:59 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 834 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 17 | 9022007080085001 | intermediate | 2026-09-01T16:10:00 | 2026-09-01T16:10:00 | 2026-09-01T16:09:38 | 2026-09-01T16:09:38 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | true | observed | -22 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 18 | 9022007080084001 | intermediate | 2026-09-01T16:11:29 | 2026-09-01T16:11:29 | 2026-09-01T16:10:38 | 2026-09-01T16:10:38 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -51 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 19 | 9022007080083001 | intermediate | 2026-09-01T16:13:17 | 2026-09-01T16:13:17 | 2026-09-01T16:11:29 | 2026-09-01T16:11:43 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -94 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 20 | 9022007080082001 | intermediate | 2026-09-01T16:14:10 | 2026-09-01T16:14:10 | 2026-09-01T16:12:09 | 2026-09-01T16:12:09 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -121 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 21 | 9022007080080001 | intermediate | 2026-09-01T16:15:01 | 2026-09-01T16:15:01 | 2026-09-01T16:12:31 | 2026-09-01T16:12:31 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -150 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 22 | 9022007080079001 | intermediate | 2026-09-01T16:16:14 | 2026-09-01T16:16:14 | 2026-09-01T16:13:30 | 2026-09-01T16:13:57 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -137 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 23 | 9022007080879001 | intermediate | 2026-09-01T16:17:36 | 2026-09-01T16:17:36 | 2026-09-01T16:14:38 | 2026-09-01T16:14:38 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -178 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 24 | 9022007080076001 | intermediate | 2026-09-01T16:19:20 | 2026-09-01T16:19:20 | 2026-09-01T16:15:36 | 2026-09-01T16:15:36 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -224 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 25 | 9022007080087002 | intermediate | 2026-09-01T16:20:50 | 2026-09-01T16:20:50 | 2026-09-01T16:16:42 | 2026-09-01T16:16:42 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -248 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 26 | 9022007080800005 | intermediate | 2026-09-01T16:22:25 | 2026-09-01T16:22:25 | 2026-09-01T16:17:39 | 2026-09-01T16:17:48 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -277 |
2026-09-01 | 76110000042519616 | 9011007000600000 | 27 | 9022007080001013 | final | 2026-09-01T16:25:00 | 2026-09-01T16:25:00 | 2026-09-01T16:18:54 | 2026-09-01T16:18:54 | true | false | SCHEDULED | 2026-09-01T16:18:55 | true | true | null | null |
2026-09-01 | 76110000044421087 | 9011007014200000 | 10 | 9022007064159002 | intermediate | 2026-09-01T16:08:40 | 2026-09-01T16:08:40 | 2026-09-01T16:08:48 | 2026-09-01T16:09:05 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 25 |
2026-09-01 | 76110000043890641 | 9011007003300000 | 8 | 9022007065019001 | intermediate | 2026-09-01T16:09:11 | 2026-09-01T16:09:11 | 2026-09-01T16:08:57 | 2026-09-01T16:08:57 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | -14 |
2026-09-01 | 76110000043944920 | 9011007024000000 | 8 | 9022007063352002 | intermediate | 2026-09-01T16:06:16 | 2026-09-01T16:06:16 | 2026-09-01T16:09:06 | 2026-09-01T16:09:06 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 170 |
2026-09-01 | 76110000042492114 | 9011007000100000 | 9 | 9022007080227001 | intermediate | 2026-09-01T16:08:05 | 2026-09-01T16:08:05 | 2026-09-01T16:09:08 | 2026-09-01T16:09:08 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 63 |
2026-09-01 | 76110000044331827 | 9011007014500000 | 3 | 9022007081232002 | intermediate | 2026-09-01T16:08:28 | 2026-09-01T16:08:28 | 2026-09-01T16:09:12 | 2026-09-01T16:09:12 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | false | observed | 44 |
2026-09-01 | 76110000044337231 | 9011007021800000 | 2 | 9022007061048003 | intermediate | 2026-09-01T16:08:00 | 2026-09-01T16:08:00 | 2026-09-01T16:07:08 | 2026-09-01T16:09:12 | true | true | SCHEDULED | 2026-09-01T16:18:55 | true | true | observed | 72 |
Kronoberg transit punctuality
Stop-level departure data for public transport in Kronoberg county, Sweden, run by Länstrafiken Kronoberg. Each row in the main table is one scheduled stop event: when the bus was due to leave, when the realtime feed recorded it leaving, and the difference in seconds. The data starts on 1 September 2026 and grows by one service date a day.
I built it as part of a portfolio project on how punctual public transport in Kronoberg is, where and when it falls behind, and how far the realtime data can be trusted to say so. The pipeline code, the metric definitions and the decision log behind every rule are on GitHub: Iskarioth/kronoberg-transit.
Tables
Each table is a separate config, partitioned by service date as data/<table>/service_date=YYYY-MM-DD/part-0.parquet. Every file also carries service_date as a column. The row counts are for Monday 21 September 2026.
| Config | One row per | Rows on 21 Sep 2026 |
|---|---|---|
stop_events (default) |
Scheduled stop event: one stop on one trip | 49,314 |
trips |
Trip scheduled on the service date | 2,161 |
routes |
Route in that day's static schedule | 136 |
stops |
Stop in that day's static schedule | 4,623 |
feed_quality |
Service date: snapshot counts and data-quality checks | 1 |
feed_gaps |
Stretch of more than 300 seconds without a realtime snapshot | 2 |
Every column of every table is documented in data_dictionary.md. The ones most analyses need are in stop_events:
| Column | Meaning |
|---|---|
service_date, trip_id, stop_sequence |
The key. Join on stop_sequence, since a looping trip can visit the same stop_id twice |
scheduled_departure_utc |
Timetabled departure |
held_departure_utc |
Departure time from the last realtime snapshot the stop appeared in |
delay_s |
Recorded minus scheduled departure, in seconds. Set only when status = 'observed' |
status |
out_of_scope, cancelled, skipped, dst_ambiguous, observed or unobserved. Null at a trip's final stop |
is_timing_stop |
True at stops the timetable marks as timing stops (GTFS timepoint) |
All timestamps are UTC, stored without a time zone. All IDs are strings.
How it is measured
These are summaries. The exact definitions are in definitions.md, and the reasoning behind each rule is in decisions.md under the decision number given.
- A departure counts as observed only when its time comes from the last realtime snapshot the stop appeared in and carries the feed's recorded-time marker,
uncertainty = 0(D-007). The feed keeps a passed stop for about ten minutes, so a stop dropping out of the feed says nothing about when the bus left. Compared with GPS positions on 7 September 2026, the recorded times were within 15 seconds for 91.8% and within 60 seconds for 98.8% of 44,608 departures. - Only departures are measured. A trip's final stop has no status, because trips leave the feed before their final stop gets a recorded time (D-008).
- On time means between 60 seconds early and 180 seconds late, both inclusive. Anything earlier is early and anything later is late. I also publish +60 s and +300 s versions with the same early limit (D-018).
- Coverage is observed departures divided by observed plus unobserved departures. An unobserved departure is never counted as on time. Cancelled and skipped stops are left out of coverage and counted separately (D-009).
- My headline figures use timing stops, where the timetable gives whole-minute times. Times at the other stops look computed between timing stops, and 98% of them carry seconds (D-019).
- Some trips in the Kronoberg timetable are run by neighbouring counties' transport authorities and don't appear in the Kronoberg realtime feed. They stay in the tables with status
out_of_scope(D-013). - A scheduled trip that never appears in the feed gets
trip_status = 'no_realtime_data'intrips. It is not assumed cancelled (D-010). - On the two nights a year when the clocks change, stop events timetabled between 02:00 and 03:59 local time are marked
dst_ambiguousand excluded (D-021).
Example
On-time share at timing stops in September 2026, with coverage and counts, in DuckDB:
SELECT
count(*) FILTER (WHERE status IN ('observed', 'unobserved')) AS eligible_departures,
count(*) FILTER (WHERE status = 'observed') AS observed_departures,
round(observed_departures / eligible_departures, 4) AS coverage_share,
round(count(*) FILTER (WHERE status = 'observed' AND delay_s BETWEEN -60 AND 180)
/ observed_departures, 4) AS on_time_share
FROM read_parquet(
'hf://datasets/Traumenteize/kronoberg-transit-punctuality/data/stop_events/*/*.parquet',
hive_partitioning = false)
WHERE is_timing_stop
AND service_date BETWEEN DATE '2026-09-01' AND DATE '2026-09-30';
Filtering on status = 'observed' already leaves out out-of-scope trips, final stops and the daylight-saving window, so the query needs no other filters.
With the datasets library:
from datasets import load_dataset
stop_events = load_dataset(
"Traumenteize/kronoberg-transit-punctuality", "stop_events", split="train"
)
Known limitations
- Recorded times at a trip's first stop run a median 16 seconds earlier than GPS (7 September 2026). About 40% of timing-stop departures are first stops, so on-time shares at timing stops lean optimistic, by roughly 1 percentage point at +180 s and 4 points at +60 s on that day's data.
- The GPS comparison covers one weekday. I haven't repeated it on a weekend or in another month.
- The realtime feed goes dark most nights. In September 2026 that was roughly 01:00 to 04:40 on weekday nights, 03:30 to 05:30 at weekends, and from about 23:35 on Sunday to 04:40 on Monday. Every gap is in
feed_gaps, and a missing trip whose whole schedule falls inside one is flaggedno_data_in_outageintrips. - The figures can't be compared directly with an operator's official punctuality statistics, which use their own thresholds and stop selection. Västtrafik, for example, counts −30 s to +3 min at timing stops as on time.
routesandstopshold the full lists from each day's static schedule, including routes that didn't run that day.
Updates
A GitHub Actions workflow runs once a day. It adds each service date two days after it ends: the archive publishes a day only after it is over, and each date also needs the next day's early hours. Each date is its own commit, data: add service date YYYY-MM-DD.
When a definition changes, I reprocess the earlier dates and record the change in decisions.md. Reprocessing replaces a date's files, so no date ever holds duplicate rows, but the same date can hold different values at different commits. For a reproducible analysis, load a fixed commit with the revision argument.
Source and licence
Built from Trafiklab's KoDa archive, which keeps past versions of the GTFS Regional data for Länstrafiken Kronoberg (operator code krono): the realtime TripUpdates feed and each day's static timetable. KoDa was created by RISE and Vinnova in cooperation with Trafiklab. KoDa and GTFS Regional data are published under CC0, and so is this dataset.
This is an independent project and is not affiliated with Länstrafiken Kronoberg or Trafiklab.
- Downloads last month
- 737